From db21e61ce565cb183ddb26b6fde6e97442b7c233 Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 24 Aug 2026 22:47:28 +0200 Subject: [PATCH] docs: plan reply shorthand and stable output Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc --- WORK-RECORDS.md | 5 + ...Q-WP-0008-reply-shorthand-stable-output.md | 92 +++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index 2a6edae..19f74c8 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -16,6 +16,7 @@ | workplan | TAMQ-WP-0005 | finished | — | workplans/TAMQ-WP-0005-terminal-neutral-manual-messaging.md | | workplan | TAMQ-WP-0006 | finished | — | workplans/TAMQ-WP-0006-shell-native-message-routing.md | | workplan | TAMQ-WP-0007 | finished | — | workplans/TAMQ-WP-0007-terminal-output-notifications.md | +| workplan | TAMQ-WP-0008 | active | — | workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md | | task | TAMQ-WP-ADHOC-2026-08-24-T01 | done | — | workplans/ADHOC-2026-08-24.md | | task | TAMQ-WP-0001-T01 | done | — | workplans/TAMQ-WP-0001-statehub-bootstrap.md | | task | TAMQ-WP-0001-T02 | done | — | workplans/TAMQ-WP-0001-statehub-bootstrap.md | @@ -46,3 +47,7 @@ | task | TAMQ-WP-0007-T03 | done | — | workplans/TAMQ-WP-0007-terminal-output-notifications.md | | task | TAMQ-WP-0007-T04 | done | — | workplans/TAMQ-WP-0007-terminal-output-notifications.md | | task | TAMQ-WP-0007-T05 | done | — | workplans/TAMQ-WP-0007-terminal-output-notifications.md | +| task | TAMQ-WP-0008-T01 | progress | — | workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md | +| task | TAMQ-WP-0008-T02 | todo | — | workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md | +| task | TAMQ-WP-0008-T03 | todo | — | workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md | +| task | TAMQ-WP-0008-T04 | todo | — | workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md | diff --git a/workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md b/workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md new file mode 100644 index 0000000..bda4070 --- /dev/null +++ b/workplans/TAMQ-WP-0008-reply-shorthand-stable-output.md @@ -0,0 +1,92 @@ +--- +id: TAMQ-WP-0008 +type: workplan +title: "Counterparty reply shorthand and stable terminal output" +domain: communication +repo: tmux-amq +status: active +owner: codex +topic_slug: coulomb-social +planning_priority: P0 +planning_order: 13 +created: "2026-08-24" +updated: "2026-08-24" +--- + +# Counterparty reply shorthand and stable terminal output + +Add a conversation-oriented reply convention and keep asynchronous message +output above the current input row instead of visually breaking the prompt. + +## Required operator contract + +If `audit-core` most recently received a message from `flex-auth`, this sends a +reply to `flex-auth`: + +```bash +@ Thanks, I will take a look. +``` + +The generic `@` command resolves the latest durable inbound message for the +current `TAMQ_REPO`, regardless of acknowledgement state. It excludes +self-addressed messages. If there is no counterparty, it fails visibly and +queues nothing. + +When a message arrives, tamq uses tmux's current pane cursor position and +VT100-compatible scroll margins to scroll only the rows above the input cursor, +write the comment immediately above it, restore the full scroll region, and +restore the cursor. The current input row and cursor position remain stable. + +## Add durable latest-counterparty resolution + +```task +id: TAMQ-WP-0008-T01 +status: progress +priority: high +``` + +Query the latest inbound message by creation order for the current repository, +excluding self-addressed rows. Add `tamq reply MESSAGE...` and a tamq-owned +generic `@` executable alongside the repository-specific shims. Preserve +argument boundaries, require `TAMQ_REPO`, reuse target validation and send +transport, and refuse collision with an unrelated existing `@` command. + +## Keep input position stable during output + +```task +id: TAMQ-WP-0008-T02 +status: todo +priority: high +``` + +Resolve `cursor_y`, `pane_height`, and the pane PTY atomically through tmux. +For a cursor with rows above it, generate a bounded DECSTBM scroll-region frame +that saves/restores the cursor and resets the full scrolling region. Sanitize +message content before framing and retain the simple output fallback when no +row exists above the cursor. Never emit input bytes. + +## Prove conversation and screen behavior + +```task +id: TAMQ-WP-0008-T03 +status: todo +priority: high +``` + +Test latest inbound selection across pending/acknowledged and self-addressed +messages, missing identity/counterparty errors, generic shim arguments and +ownership collision, cursor-aware frames, and real tmux behavior with a partial +input line. Prove the input text and cursor coordinates are unchanged while the +message becomes visible immediately above them. + +## Install and document the interaction convention + +```task +id: TAMQ-WP-0008-T04 +status: todo +priority: high +``` + +Update help, README, and SCOPE; run complete checks; install the build; exercise +`@ MESSAGE` in both directions in a live two-window session; and retain only +user messages pending after acknowledging controlled smoke records.