feat: add readable duplex messaging
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
This commit is contained in:
tegwick 2026-08-25 19:26:27 +02:00
parent 788eb8e2ed
commit 92881b6b56
35 changed files with 1206 additions and 806 deletions

View file

@ -4,7 +4,7 @@ type: workplan
title: "Readable duplex messaging, runtime commands, and line limits"
domain: communication
repo: tmux-amq
status: active
status: finished
owner: codex
topic_slug: coulomb-social
planning_priority: P0
@ -101,7 +101,7 @@ atomically resets all three counters for the current source window only.
```task
id: TAMQ-WP-0014-T01
status: todo
status: done
priority: critical
state_hub_task_id: "66ac5b8c-6435-5d62-8b3c-4516bddae75f"
```
@ -124,7 +124,7 @@ line/echo boundary and fixtures before routing worker output.
```task
id: TAMQ-WP-0014-T02
status: wait
status: done
priority: critical
state_hub_task_id: "95cf3b20-8b23-5155-8b6d-3431baf36486"
```
@ -145,7 +145,7 @@ deduplication, echo suppression, and feedback-chain containment.
```task
id: TAMQ-WP-0014-T03
status: wait
status: done
priority: high
state_hub_task_id: "3ae47806-9808-5b38-b0cd-1f63536ebce9"
```
@ -165,7 +165,7 @@ neither mode repeats after accepted delivery, and no mode turns delivered
```task
id: TAMQ-WP-0014-T04
status: wait
status: done
priority: high
state_hub_task_id: "67c3aa0d-ad5e-5fcd-bd7a-fe4bdcdebbcb"
```
@ -190,7 +190,7 @@ delay normal input, or implement an agent-specific erasure trick.
```task
id: TAMQ-WP-0014-T05
status: wait
status: done
priority: critical
state_hub_task_id: "5101a264-5fde-5e94-b924-bdaa114d18fd"
```
@ -214,7 +214,7 @@ sends, and notice feedback suppression.
```task
id: TAMQ-WP-0014-T06
status: wait
status: done
priority: high
state_hub_task_id: "5b630cab-e431-5f8f-83b0-cc1bd56c262c"
```
@ -236,7 +236,7 @@ new protocol until this workplan's local contract is proven.
```task
id: TAMQ-WP-0014-T07
status: wait
status: done
priority: critical
state_hub_task_id: "bae85317-60d0-5e12-8ffd-d08a70f9d9e7"
```
@ -251,3 +251,36 @@ unrelated panes or durable history, and leave runaway-safe cleanup available.
Do not mark the workplan finished while T01 attribution is only simulated or
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
`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.
- A real tmux PTY fixture echoed an operator `To:` line and then emitted a
distinct worker `To:` line. Exactly two records resulted, with operator and
worker provenance respectively; the echo was suppressed. ANSI normalization,
redraw deduplication, resize, raw mouse input, and byte forwarding are
covered.
- `pushy` now places one sanitized `From:` line without Enter. `trigger` places
the same line and submits exactly once. Startup requires readable framing,
trigger, and line-limit capabilities, and managed sessions without the new
tap marker fail with an explicit recreate instruction.
- `Cmd:` supports the allowlisted modes, three positive per-window limits, and
current-window `reset-limits`. It is operator-only. The selected transparent
contract leaves the command visible to the foreground program; shell
absorbers prevent ordinary-shell command-not-found noise.
- SQLite schema v4 holds atomic counters keyed by session generation and repo.
Tests prove equality blocking, deterministic precedence, overlapping
accounting, per-window isolation, persistence across reopen, fresh session
generations, atomic concurrent admission, reset, and the exact local block
notice. `tamq status` exposes the ledger.
- `make check`: 133 tests passed, including real tmux and the isolated installed
package workflow. `make install` refreshed `tmux-amq==0.1.0`. Installed
`tamq cleanup` dry-run verified the live broker identity, preserved all 26
durable records, and reported legacy owned shims and stale sockets without
mutation.
- Retry and acknowledgement residuals remain owned by `TAMQ-WP-0003`;
coordination-engine interoperability remains owned by `TAMQ-WP-0002`.