tmux-amq/SCOPE.md
tegwick eb3317dc1e
Some checks failed
tamq-ci / test (push) Failing after 6s
docs: assess scope and practical usability
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc
2026-08-24 14:43:27 +02:00

91 lines
4.5 KiB
Markdown

# SCOPE
## One-liner
Local durable message queue and tmux endpoint runtime for coordinating agent workers across gita-registered repositories.
## Core Idea
Keep tmux topology, terminal input observation, and durable local message state
behind a small CLI and Unix-socket protocol that agents can use without owning
a distributed coordination service.
## In Scope
- Local SQLite message history, leases, endpoint registrations, delivery state,
acknowledgements, replay, export, and bounded purging.
- Managed tmux endpoint lifecycle, control-mode output/injection, and the
full-duplex `tamq tap` PTY broker.
- Exact `gita` repository validation and direct `@repo: message` routing.
- Unix-socket operations for local clients and a future coordination-engine
adapter.
- Policy profiles, safety-gated retries, local diagnostics, tests, packaging,
shell completion, and operator documentation.
## Out of Scope
- Owning goal planning, workflow scheduling, or cross-host coordination; those
belong to `coordination-engine` and its consumers.
- Acting as a network-accessible or multi-host message broker.
- Bypassing `gita` registration or injecting arbitrary pane input outside the
supported tap/control-mode boundaries.
- Owning tmux, Codex, State Hub, or adjacent repositories' lifecycle.
## Current State
Version `0.1.0` is a usable local alpha for development and controlled
single-host experiments. It is not yet a dependable unattended coordination
transport.
| Intent capability | State | Evidence and remaining gap |
| --- | --- | --- |
| Direct repository addressing | Implemented | Exact `gita` validation and `@repo:` parsing are covered by tests. |
| Durable, inspectable local queue | Implemented | SQLite history, leases, endpoint records, inspect/history, JSONL export/replay, acknowledgement, and purge are present. |
| Local socket service | Implemented | Peer-credential checks and structured ping/register/send/history/ack/endpoints/disconnect operations are tested. |
| Tmux endpoint lifecycle and delivery | Implemented, integration confidence limited | The manager, control client, and delivery loop exist, but tests use fakes and CI does not exercise real tmux panes or agent processes. |
| Full-duplex input observation | Implemented, lightly proven | `tamq tap` preserves PTY traffic and observes complete address lines; PTY code coverage is 23%. |
| Bounded retry behavior | Not enforced | Failed injection remains pending and becomes claimable after lease expiry, but no attempt counter or terminal failure state applies the configured cap. |
| Acknowledgement policy | Partially implemented | Explicit acknowledgement and the configuration field exist; delivery always marks a successful tmux injection as `injected`, irrespective of `delivery_ack_mode`. |
| Coordination-engine interoperability | Not implemented | The adapter contract and implementation remain in `TAMQ-WP-0002`. |
## Practical Usability
The following operator path was exercised successfully on 2026-08-24 with an
isolated state directory: start the socket service, ping it, inspect status,
queue a message to registered repo `tmux-amq`, inspect history, export one JSONL
record, and stop the service.
Suitable today:
- Local queue, history, export/replay, and diagnostic use.
- Controlled experiments with gita-registered repositories and tmux endpoints.
- Developing and testing the future coordination-engine adapter against the
local socket boundary.
Not yet suitable:
- Unattended or high-confidence delivery where bounded retries and positive
recipient acknowledgement are required.
- Production-style operation without a real tmux/PTY integration test suite,
crash-recovery evidence, and stronger process supervision evidence.
- Cross-host messaging or use as a general-purpose broker.
The suite currently has 50 passing tests and 73% statement coverage. Coverage
is strongest in durable storage and registry handling, and weakest in the PTY
tap, control-mode process handling, and CLI orchestration. The Forgejo CI job
runs unit tests and CLI help/version smoke checks on Python 3.11, but does not
install or exercise tmux and gita end to end.
## Next Usability Gates
- `TAMQ-WP-0003` owns bounded retry state, acknowledgement enforcement,
lifecycle recovery, and real tmux/PTY integration evidence.
- `TAMQ-WP-0002` owns the coordination-engine adapter after the local delivery
contract is sufficiently reliable.
## Getting Oriented
- Start with: INTENT.md
- Agent instructions: AGENTS.md
- Workplans: workplans/
- Developer workflow: `uv sync --extra dev`, `make test`, and `make check`