Some checks failed
tamq-ci / test (push) Failing after 5s
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc
70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
---
|
|
id: TAMQ-WP-0009
|
|
type: workplan
|
|
title: "Interactive recipient-aware message composer"
|
|
domain: communication
|
|
repo: tmux-amq
|
|
status: active
|
|
owner: codex
|
|
topic_slug: coulomb-social
|
|
planning_priority: P0
|
|
planning_order: 14
|
|
created: "2026-08-24"
|
|
updated: "2026-08-24"
|
|
---
|
|
|
|
# Interactive recipient-aware message composer
|
|
|
|
Make bare `@` safe for ordinary unquoted prose while keeping the selected
|
|
recipient visible and switchable.
|
|
|
|
## Required operator contract
|
|
|
|
Running `@` without arguments opens an inline composer whose prompt is the
|
|
selected repository, for example `@flex-auth: `. Plain text is read directly
|
|
from the terminal, so apostrophes and other shell punctuation do not require
|
|
quoting. Tab cycles through the other repository windows in the managed
|
|
session, preserving the draft. Enter queues the message and Ctrl-C cancels it.
|
|
|
|
The initial recipient is the latest durable inbound sender when available. If
|
|
there is no message history, use the first other repository in the session.
|
|
The existing `@ MESSAGE` shorthand remains a non-interactive fast path and
|
|
retains normal shell quoting rules.
|
|
|
|
## Expose session recipients to the generic command
|
|
|
|
```task
|
|
id: TAMQ-WP-0009-T01
|
|
status: progress
|
|
priority: high
|
|
```
|
|
|
|
Encode the addressable repository list in the tamq-owned generic `@` shim,
|
|
without changing shell configuration or trusting arbitrary repository names.
|
|
Exclude the current repository from the interactive recipient cycle.
|
|
|
|
## Implement the terminal composer
|
|
|
|
```task
|
|
id: TAMQ-WP-0009-T02
|
|
status: todo
|
|
priority: high
|
|
```
|
|
|
|
Add a small terminal-local editor that displays `@recipient: `, accepts literal
|
|
UTF-8 prose, handles backspace and Ctrl-U, cycles recipients on Tab without
|
|
losing the draft, submits on Enter, and restores terminal settings on every
|
|
exit path. Ctrl-C cancels without queuing a message.
|
|
|
|
## Prove and document the interaction
|
|
|
|
```task
|
|
id: TAMQ-WP-0009-T03
|
|
status: todo
|
|
priority: high
|
|
```
|
|
|
|
Cover recipient ordering, shim metadata, non-TTY rejection, punctuation,
|
|
editing and cancellation with pseudo-terminal tests. Run the full checks,
|
|
install the build, exercise the composer in the live two-window session, and
|
|
update README and SCOPE.
|