feat: add conversational replies and stable output
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-24 23:03:30 +02:00
parent 704eeea5c1
commit a4ba6e32e5
17 changed files with 363 additions and 59 deletions

View file

@ -77,6 +77,18 @@ The spelling without the trailing colon is equivalent:
@audit-core please review the auth boundary
```
After receiving a message, use the bare `@` command to answer its sender:
```bash
@ Thanks, I will take a look.
```
Bare `@` selects the sender of the latest durable inbound message for the
current repository, including an already acknowledged message. Self-addressed
messages are ignored. If this window has no prior counterparty, the command
reports an error and queues nothing. The explicit equivalent is `tamq reply
MESSAGE...`.
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`.
@ -94,10 +106,14 @@ With normal `output` delivery, the target pane visibly receives:
```
This uses the pane's tmux-reported `/dev/pts/<number>` device—the same Unix
terminal-output mechanism underlying tools such as `write(1)`. It does not use
`send-keys`, send Enter, or place bytes on the foreground process's stdin.
Output can visually interleave with a prompt and a full-screen program may
redraw over it, so the durable inbox remains authoritative.
terminal-output mechanism underlying tools such as `write(1)`. For an ordinary
shell with screen rows above its cursor, tamq confines scrolling to those rows,
writes the comment immediately above the input row, and restores the cursor.
Thus a partially typed command remains in place. If no safe row exists, tamq
uses ordinary line output; alternate-screen programs receive the conservative
fallback and may redraw over it. Neither path uses `send-keys`, sends Enter, or
places bytes on the foreground process's stdin, so the durable inbox remains
authoritative.
In the `audit-core` window, inspect and acknowledge it: