feat: add shell-native message routing
Some checks failed
tamq-ci / test (push) Failing after 5s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc
This commit is contained in:
tegwick 2026-08-24 20:42:35 +02:00
parent 398fe316b4
commit e995cab1b8
12 changed files with 391 additions and 42 deletions

View file

@ -57,7 +57,24 @@ windows and never run another initial command in them.
## Exchange messages manually
Each managed shell exports its own repository slug as `TAMQ_REPO`. From the
`flex-auth` window, queue a message:
`flex-auth` window, queue a message using the repository command installed for
the session:
```bash
@audit-core: please review the auth boundary
```
The spelling without the trailing colon is equivalent:
```bash
@audit-core please review the auth boundary
```
These are tamq-owned executable commands beside the installed `tamq` command,
not shell-specific aliases. Set `TAMQ_COMMAND_DIR` before startup to select a
different writable command directory already present on your shell's `PATH`.
Tamq refuses to overwrite unrelated commands. The shims only use tamq's durable
send operation. The long form remains available:
```bash
tamq send '@audit-core: please review the auth boundary'
@ -70,14 +87,33 @@ tamq inbox
tamq ack <message-id>
```
Human inbox output is safe to paste into an ordinary shell because every line
is a comment. It includes the durable id needed by `ack`:
```text
#flex-auth: please review the auth boundary [m-...]
```
To explicitly consume pending messages through a command, use an inbox filter:
```bash
tamq inbox --filter 'cat >> msg.log'
```
The command runs once per pending message with the comment form on standard
input. `TAMQ_MESSAGE_ID`, `TAMQ_SENDER_REPO`, and `TAMQ_TARGET_REPO` are set in
its environment. A zero exit acknowledges that message; a non-zero exit leaves
it and all later messages pending. Filters never run in the background and
cannot be combined with `--all` or `--json`.
Outside a managed window, use `tamq inbox --repo audit-core` and optionally
`--json`. Manual messages remain durable and pending until acknowledged. They
are never injected as terminal keystrokes, so they cannot corrupt a command
being typed in the target pane.
After upgrading from the earlier Codex-default alpha, recreate the managed
session once so existing panes are replaced by neutral shells and the broker is
re-registered in manual delivery mode:
After upgrading from an earlier alpha, recreate the managed session once so
existing panes inherit the neutral shell contract, repository command `PATH`,
and manual broker registration:
```bash
tamq stop