Some checks failed
tamq-ci / test (push) Failing after 7s
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc
92 lines
3.4 KiB
Markdown
92 lines
3.4 KiB
Markdown
---
|
|
id: TAMQ-WP-0010
|
|
type: workplan
|
|
title: "Experimental pushy input delivery mode"
|
|
domain: communication
|
|
repo: tmux-amq
|
|
status: finished
|
|
owner: codex
|
|
topic_slug: coulomb-social
|
|
planning_priority: P0
|
|
planning_order: 15
|
|
created: "2026-08-24"
|
|
updated: "2026-08-24"
|
|
state_hub_workstream_id: "6a6ec6f1-c704-5543-8879-6f6f7a09699c"
|
|
---
|
|
|
|
# Experimental pushy input delivery mode
|
|
|
|
Add an explicit, experimental mode that submits routed messages to the target
|
|
pane's input for interactive coding agents that manage queued user prompts.
|
|
|
|
## Required operator contract
|
|
|
|
`tamq --mode pushy REPO...` opts the whole managed endpoint into pushy
|
|
delivery. The default remains `--mode output`; `--mode inbox` retains durable
|
|
inbox-only behavior, and `--no-display` remains a compatibility alias for
|
|
inbox mode.
|
|
|
|
Pushy delivery injects exactly one sanitized, single-line comment of the form
|
|
`#sender: body [message-id]` and then one Enter key. This is deliberately safe
|
|
as a no-op when an ordinary shell has an empty prompt, while coding-agent TUIs
|
|
can receive it as submitted user input. The message becomes `injected` after
|
|
tmux accepts both operations. Pushy mode may append to input already being
|
|
edited and is therefore experimental and explicitly opt-in.
|
|
|
|
## Add explicit endpoint modes
|
|
|
|
```task
|
|
id: TAMQ-WP-0010-T01
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "ce704aaf-faf6-58d5-8a34-0e0a3c12f472"
|
|
```
|
|
|
|
Add `--mode output|inbox|pushy`, retain compatible `--no-display` behavior,
|
|
reject conflicting mode flags, register the selected endpoint mode, expose a
|
|
pushy service capability, and report the selected mode in startup status.
|
|
|
|
## Submit safely framed input
|
|
|
|
```task
|
|
id: TAMQ-WP-0010-T02
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "6b03d6fa-78e5-5a72-ad4c-65a035fb16ab"
|
|
```
|
|
|
|
Sanitize all controls and collapse multiline messages into escaped text. Use
|
|
one checked tmux command list to send the literal comment and a distinct Enter
|
|
operation. Do not reuse the terminal-output path, and mark the durable record
|
|
`injected` only after tmux accepts both operations.
|
|
|
|
## Prove and document the experiment
|
|
|
|
```task
|
|
id: TAMQ-WP-0010-T03
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "3957a42a-6151-5db2-af47-283789687eac"
|
|
```
|
|
|
|
Cover CLI conflicts and capability restart, store validation, exact framing,
|
|
one-time service delivery, and real tmux input submission. Update help, README,
|
|
and SCOPE with the risk boundary; run full checks, install, and exercise a
|
|
controlled live pushy session without altering user messages.
|
|
|
|
## Completion evidence
|
|
|
|
- `make check`: 117 tests passed, including a real isolated tmux shell proving
|
|
one submitted comment, one Enter, one durable transition to `injected`, and
|
|
no repeat delivery.
|
|
- Coverage: 77% overall; control handling is 86%, terminal framing is 85%, and
|
|
the service is 77%.
|
|
- `make install`: installed `tmux-amq==0.1.0`; `--mode pushy` forced a restart
|
|
of the older broker through the new `pushy_input` capability requirement.
|
|
- Live `flex-auth` to `audit-core`: `WP0010-live-smoke` appeared as submitted
|
|
shell input with its sender and message id, was treated as a comment, and the
|
|
record reached `injected`. Only that controlled record was acknowledged.
|
|
The live endpoint was restored to `--mode output`; user messages were not
|
|
modified.
|
|
- Bounded retry and acknowledgement-policy residuals remain owned by
|
|
`TAMQ-WP-0003`; this workplan creates no additional residual record.
|