tmux-amq/workplans/TAMQ-WP-0003-delivery-reliability.md
tegwick 6d2ccc7760
Some checks failed
tamq-ci / test (push) Failing after 5s
feat: complete reliable coordination adapter
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc
2026-08-26 08:11:09 +02:00

105 lines
3.9 KiB
Markdown

---
id: TAMQ-WP-0003
type: workplan
title: "Delivery reliability and practical integration evidence"
domain: communication
repo: tmux-amq
status: finished
owner: codex
topic_slug: coulomb-social
created: "2026-08-24"
updated: "2026-08-26"
state_hub_workstream_id: "7961275b-8f1f-5827-b9fc-46b3ac35fb73"
---
# Delivery reliability and practical integration evidence
Close the reliability gaps found during the 2026-08-24 intent and usability
assessment before treating tmux-amq as an unattended local transport or as a
stable coordination-engine dependency.
## Enforce bounded delivery attempts
```task
id: TAMQ-WP-0003-T01
status: done
priority: high
state_hub_task_id: "52c43745-5c28-599e-b74c-0386d5b51e68"
```
Persist attempt counts and failure reasons, apply the selected policy profile's
retry cap, define lease-expiry behavior, and introduce an inspectable terminal
failure state. Prove restart-safe behavior and avoid tight retry loops.
Completed with schema-v6 persistent attempt, deadline, and failure fields.
Lease acquisition consumes an attempt; write failure or lease expiry releases
ownership into configured bounded backoff. The selected endpoint policy caps
attempts from one to nine, exhaustion becomes `failed`, and `tamq retry` is the
explicit recovery action. Protocol events retain attempt, cap, reason, and
retry timing without raw terminal output.
## Enforce acknowledgement semantics
```task
id: TAMQ-WP-0003-T02
status: done
priority: high
state_hub_task_id: "ff88d6c9-f4d7-52c7-9645-7c3a7a34ccb4"
```
Make `delivery_ack_mode` control whether injection completes delivery or waits
for explicit recipient acknowledgement. Specify timeout, redelivery, duplicate,
and late-acknowledgement behavior. This task follows the state model from T01.
Completed for every automatic delivery mode. `injected` completes after a
successful terminal write. `acknowledged` enters `awaiting_ack`, schedules
same-message-ID redelivery after the configured deadline, records `ack_timeout`
on retries and exhaustion, and accepts a late acknowledgement even after
`failed`. The contract warns that redelivery can duplicate terminal
presentation and never represents task completion.
## Add real tmux and PTY lifecycle coverage
```task
id: TAMQ-WP-0003-T03
status: done
priority: high
state_hub_task_id: "9a3d84b4-55a5-5d18-b4ee-99ac4f111875"
```
Exercise a real tmux server, managed windows, control-mode injection, `tamq tap`,
service shutdown, endpoint disappearance, and restart recovery without starting
an external coding agent. Keep fast unit tests while adding a bounded integration
suite.
Completed with a real isolated-tmux PTY fixture that proves initial dimensions,
`SIGWINCH` resize propagation, raw mouse-sequence forwarding without newline
buffering, and bounded cleanup. The installed-package lifecycle smoke now also
proves service shutdown/restart, stable pane reuse, disappeared-session endpoint
retirement, and clean recovery into a new tmux instance. The PTY proxy restores
terminal state and forwards termination signals; `--no-service` bypasses the tap
entirely as documented.
## Align CI and operator documentation
```task
id: TAMQ-WP-0003-T04
status: done
priority: medium
state_hub_task_id: "44939829-a52e-582a-b06b-60337b36080e"
```
Run the integration suite in Forgejo CI with explicit tmux and gita setup. Update
README claims about retries, acknowledgement, prerequisites, and maturity from
verified behavior. This task follows T01-T03.
Forgejo CI now runs `make check`, including generated-gita and isolated tmux
installation fixtures, compile/diff checks, and CLI/capture help smokes on
Python 3.11. README, SCOPE, configuration examples, and the agent introduction
describe the implemented state machine and terminal-comprehension boundary.
## Residuals
Long-duration and arbitrary-terminal soak coverage remains a maturity gate in
SCOPE rather than a missing part of this bounded reliability contract. The
coordination runtime above TAMQ remains owned by coordination-engine.