Some checks failed
tamq-ci / test (push) Failing after 6s
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc
102 lines
2.9 KiB
Markdown
102 lines
2.9 KiB
Markdown
---
|
|
id: TAMQ-WP-0005
|
|
type: workplan
|
|
title: "Terminal-neutral sessions and safe manual messaging"
|
|
domain: communication
|
|
repo: tmux-amq
|
|
status: active
|
|
owner: codex
|
|
topic_slug: coulomb-social
|
|
planning_priority: P0
|
|
planning_order: 10
|
|
created: "2026-08-24"
|
|
updated: "2026-08-24"
|
|
---
|
|
|
|
# Terminal-neutral sessions and safe manual messaging
|
|
|
|
Correct the operator-alpha contract so tamq owns repository-aware tmux topology
|
|
and durable messages without assuming that a coding agent—or any particular
|
|
interactive program—owns a pane.
|
|
|
|
## Required operator contract
|
|
|
|
```bash
|
|
tamq start flex-auth audit-core
|
|
```
|
|
|
|
This opens or reuses ordinary interactive shells in the exact registered
|
|
repository paths. It runs no initial command, installs no PTY observer, and
|
|
never injects a queued message into an active terminal input line.
|
|
|
|
```bash
|
|
tamq start --command codex flex-auth audit-core
|
|
```
|
|
|
|
`--command` is explicit opt-in and runs exactly the supplied initial command in
|
|
newly created windows. It does not imply that the command is an agent or that it
|
|
accepts tamq message injection.
|
|
|
|
Manual exchange uses durable commands from repository shells:
|
|
|
|
```bash
|
|
tamq send '@audit-core: please review the auth boundary'
|
|
tamq inbox --repo audit-core
|
|
tamq ack <message-id>
|
|
```
|
|
|
|
The sender defaults to the repository identity of the current managed window.
|
|
|
|
## Make repository sessions terminal-neutral
|
|
|
|
```task
|
|
id: TAMQ-WP-0005-T01
|
|
status: progress
|
|
priority: high
|
|
```
|
|
|
|
Remove the implicit Codex default. Leave tmux's ordinary shell untouched when
|
|
`--command` is absent; when present, parse and execute only the requested
|
|
command. Set a trustworthy per-window `TAMQ_REPO` identity without changing the
|
|
user's shell or terminal behavior. Retain explicit compatibility aliases where
|
|
they do not weaken the neutral default.
|
|
|
|
## Separate durable messaging from pane input
|
|
|
|
```task
|
|
id: TAMQ-WP-0005-T02
|
|
status: todo
|
|
priority: high
|
|
```
|
|
|
|
Register neutral endpoints in a manual delivery mode and prohibit the service
|
|
from turning their queued messages into `send-keys` input. Make any legacy PTY
|
|
observation/injection path explicit opt-in, visible in status, and absent from
|
|
the default startup path.
|
|
|
|
## Add a practical manual inbox
|
|
|
|
```task
|
|
id: TAMQ-WP-0005-T03
|
|
status: todo
|
|
priority: high
|
|
```
|
|
|
|
Add a concise inbox command for pending messages by repository, retain JSON for
|
|
automation, use the current window's `TAMQ_REPO` as sender identity, validate
|
|
targets, and preserve explicit acknowledgement. Manual exchange must work
|
|
without corrupting either terminal's current input.
|
|
|
|
## Prove and document the neutral workflow
|
|
|
|
```task
|
|
id: TAMQ-WP-0005-T04
|
|
status: wait
|
|
priority: high
|
|
```
|
|
|
|
Exercise real tmux shells with no initial keystrokes, exact opt-in commands,
|
|
per-window repository identity, durable send/inbox/ack exchange, and proof that
|
|
pending manual messages never appear as pane input. Update the install/start
|
|
quickstart and practical-usability assessment, then record the local acceptance
|
|
evidence. This task follows T01-T03.
|