fix: route case-insensitive worker messages
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-25 22:13:32 +02:00
parent fbb56f5981
commit cd73b954e9
14 changed files with 183 additions and 37 deletions

View file

@ -66,3 +66,27 @@ rather than a traceback.
- Plain `make` lists `help`, `install`, `uninstall`, `test`, and `check` with
descriptions. `make check` passes 136 tests and `make install` refreshes the
installed `tmux-amq==0.1.0` tool.
## Case-insensitive protocol and full-screen worker output
```task
id: TAMQ-WP-ADHOC-2026-08-25-T03
status: done
priority: high
```
Make the `To:`, `From:`, and `Cmd:` protocol keywords case-insensitive and
restore agent-authored routing when a full-screen terminal interface renders
worker content behind a presentation gutter.
### Evidence
- All four representative letter-case variants route for `To:` and parse for
`Cmd:`; delivered `From:` envelopes remain inert regardless of case. Plain
shell panes install matching harmless absorbers for every keyword variant.
- Worker output accepts a conservative full-screen output gutter (including
Codex's `•`) but rejects operator, shell, and markup gutters such as ``,
`>`, `$`, `#`, `*`, and `-`.
- A real tmux/PTY integration fixture emits a cursor-positioned, mixed-case,
bullet-framed worker message. It is durably attributed as `worker_output`
while the operator echo is suppressed.

View file

@ -27,8 +27,9 @@ old address aliases and changes `pushy` so that submission requires the new
## Required protocol contract
The normalized line grammar is case-sensitive and recognized only at the start
of a logical line:
The normalized line keywords are case-insensitive and recognized only at the
start of logical content. A terminal program's conservative worker-output
gutter may precede worker content:
| Observed source | Line | Effect |
| --- | --- | --- |
@ -254,8 +255,10 @@ while a worker output replay can duplicate an operator message.
## Completion evidence
- The readable, case-sensitive `To:` parser is shared by attributed operator
input and normalized worker output. Durable provenance renders exactly as
- The readable, case-insensitive `To:` parser is shared by attributed operator
input and normalized worker output. Conservative full-screen worker-output
gutters are removed before worker parsing, while operator prompt gutters stay
inert. Durable provenance renders exactly as
`From:sender/o:` or `From:sender:`; `From:` and worker-output `Cmd:` lines are
inert. Legacy `@/#` routing, reply/composer code, and generated v1 shims were
removed from the active contract.