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
90 lines
3.3 KiB
Markdown
90 lines
3.3 KiB
Markdown
---
|
|
id: TAMQ-WP-0011
|
|
type: workplan
|
|
title: "Hash-prefixed routing for pushy agent sessions"
|
|
domain: communication
|
|
repo: tmux-amq
|
|
status: finished
|
|
owner: codex
|
|
topic_slug: coulomb-social
|
|
planning_priority: P0
|
|
planning_order: 16
|
|
created: "2026-08-24"
|
|
updated: "2026-08-25"
|
|
state_hub_workstream_id: "9a38f0c3-bd98-51ae-a6ad-502bef94a38f"
|
|
---
|
|
|
|
# Hash-prefixed routing for pushy agent sessions
|
|
|
|
Avoid coding-agent `@` completion/template behavior by accepting `#repo:` as a
|
|
direct-address alias and make commanded pushy sessions observe it end to end.
|
|
|
|
## Required operator contract
|
|
|
|
Within a coding-agent session launched by
|
|
`tamq --mode pushy --command COMMAND REPO...`, typing
|
|
`#activity-core: Hello!` queues the same durable message as
|
|
`@activity-core: Hello!`. Tamq observes but does not rewrite the source input.
|
|
|
|
Pushy input delivered to the target must not itself match the routing grammar,
|
|
or the target tap would route it back and create a feedback loop. The inbound
|
|
envelope is therefore `# from sender: body [message-id]`, still a safe shell
|
|
comment and a clear coding-agent prompt.
|
|
|
|
## Add the hash routing alias
|
|
|
|
```task
|
|
id: TAMQ-WP-0011-T01
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "d50b09b2-e4ad-5eb4-b833-2d9a62b5ff1f"
|
|
```
|
|
|
|
Accept exactly one leading `#` or `@` before a validated repository slug and
|
|
colon. Preserve strict start-of-line matching, non-empty bodies, registry
|
|
validation, sender identity, and ordinary-input pass-through.
|
|
|
|
## Connect pushy mode to PTY observation
|
|
|
|
```task
|
|
id: TAMQ-WP-0011-T02
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "1170ae19-a2ce-5f50-8a43-41b9625621e7"
|
|
```
|
|
|
|
Automatically wrap explicit commands in `tamq tap` when pushy mode creates new
|
|
windows, using the endpoint instance identity. Preserve neutral shells when no
|
|
command is supplied and keep legacy `--tap` behavior distinct.
|
|
|
|
## Prevent feedback and prove the full path
|
|
|
|
```task
|
|
id: TAMQ-WP-0011-T03
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "2a355d88-5272-58c2-a4f8-82df6cac7c3e"
|
|
```
|
|
|
|
Change pushy input to the non-routable `# from` envelope. Add routing, broker,
|
|
CLI, PTY, and real two-window tmux coverage proving one `#repo:` source line
|
|
creates one durable message, one target submission, and no bounced message.
|
|
Document the interaction, run full checks, install, and exercise a controlled
|
|
live commanded pushy session if it can be isolated from user input.
|
|
|
|
## Completion evidence
|
|
|
|
- `make check`: 120 tests passed, including a real isolated two-window tmux
|
|
test proving one `#activity-core:` source line creates one durable message,
|
|
one submitted target prompt, an `injected` transition, and no feedback or
|
|
duplicate delivery on a second service pass.
|
|
- Coverage: 77% overall; routing is 100%, tmux management is 82%, terminal
|
|
framing is 85%, and the service is 77%.
|
|
- `make install`: installed `tmux-amq==0.1.0` with hash routing and automatic
|
|
PTY observation for newly created commanded pushy windows.
|
|
- The inbound `# from sender:` envelope is deliberately outside the outbound
|
|
route grammar, preventing tapped targets from bouncing injected messages.
|
|
- The operator's existing session was not recreated or modified. Existing
|
|
windows must be recreated to gain PTY observation; this preserves live input.
|
|
- Bounded retry and acknowledgement-policy residuals remain owned by
|
|
`TAMQ-WP-0003`; this workplan creates no additional residual record.
|