From 69efad2f9a844f7a5d57b127cb393c34643d23a3 Mon Sep 17 00:00:00 2001 From: code-infra-01 Date: Thu, 20 Aug 2026 11:31:44 -0500 Subject: [PATCH] fix(#1262): adoption follow-ups - enumeration exclusion, SEND-honoring verdict suite, retire rc=2-is-normal guide text - F5 (rev-code-02 blocker): sign test-send-message-glyph-agnostic.sh into test-enumeration-exclusions.txt beside its tmux siblings; the CI image ships no tmux, so the suite stays manually run (#1017 burndown). - Adoption finding: the verdict suite hard-coded SEND to its sibling and ignored the SEND env var, so a red-first run against the shipping blob silently measured the patched copy instead (measured: shipping run printed PASS=4; with SEND honored it is PASS=3 FAIL=1, fixture 2 red, matching the recorded review numbers). SEND is now honored with the sibling as default, same contract as the glyph suite. - F6/D19: framework FLEET-COMMS.md claimed 'rc=2 is the normal result when the target is an idle pi seat'. Post-fix rc=0 is normal for idle and busy pi seats; rc=2 on a healthy seat is a real report. Never-retry advice kept, softened to 'may be in the pane' for the unconfirmed arm. Live verification on sb-it-1-dt (tmux 3.7b, pi glm-5.3 low, scratch session): idle pi - shipping rc=2 'may be UNDELIVERED' while the seat consumed the message and answered; patched rc=0 delivered, answered. Busy pi mid-turn - shipping rc=2 while the pane accepted both messages as steering input ('Steering: ...', 'Alt+Up to edit all queued messages'); patched rc=0 delivered, both consumed and acted on after the turn. Both D11 signatures: verdict now matches reality. --- .../mosaic/framework/guides/FLEET-COMMS.md | 20 ++++++++++--------- .../quality/test-enumeration-exclusions.txt | 1 + .../tools/tmux/test-send-message-verdict.sh | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/mosaic/framework/guides/FLEET-COMMS.md b/packages/mosaic/framework/guides/FLEET-COMMS.md index 4a6a602b..99ec4f1a 100644 --- a/packages/mosaic/framework/guides/FLEET-COMMS.md +++ b/packages/mosaic/framework/guides/FLEET-COMMS.md @@ -53,21 +53,23 @@ sends, it does not auto-reply. ### Exit codes -| rc | Meaning | -| --- | ---------------------------------------------- | -| 0 | delivered or queued | -| 1 | target session not found | -| 2 | text reached the pane but is **still a draft** | -| 3 | usage error (bad class, missing `-s`) | +| rc | Meaning | +| --- | -------------------------------------------------------------------------------------------- | +| 0 | delivered or queued | +| 1 | target session not found | +| 2 | submission unconfirmed: draft still on the input line, or no positive evidence of submission | +| 3 | usage error (bad class, missing `-s`) | -**Never retry on rc=2.** The message is in the target pane; retrying double-sends it. Confirm -instead: +**Never retry on rc=2.** The message may be in the target pane, and a retry can double-send it. +Confirm instead: ```bash tmux capture-pane -p -t :0.0 | tail -20 ``` -rc=2 is the normal result when the target is an idle pi seat. +rc=0 is the normal result for both idle and busy pi seats (submission confirmed by draft +transition, not by prompt glyph). rc=2 on a healthy seat is exceptional — treat it as a real +report and investigate the pane. ## Durable comms diff --git a/packages/mosaic/framework/tools/quality/test-enumeration-exclusions.txt b/packages/mosaic/framework/tools/quality/test-enumeration-exclusions.txt index bbd1b34d..d88a2eef 100644 --- a/packages/mosaic/framework/tools/quality/test-enumeration-exclusions.txt +++ b/packages/mosaic/framework/tools/quality/test-enumeration-exclusions.txt @@ -30,6 +30,7 @@ packages/mosaic/framework/tools/git/test-lane-brief-pr-linkage.sh | unmeasured i # --- tools/tmux: require a live tmux server --- packages/mosaic/framework/tools/tmux/test-send-message-socket.sh | requires a real tmux server on a throwaway socket; CI image ships no tmux; #1017 burndown (needs tmux in image or a signed permanent exclusion) packages/mosaic/framework/tools/tmux/test-send-message-verdict.sh | requires real tmux-pane fixtures on a throwaway socket; CI image ships no tmux; #1017 burndown (same condition as its sibling) +packages/mosaic/framework/tools/tmux/test-send-message-glyph-agnostic.sh | requires real tmux-pane fixtures on a throwaway socket; CI image ships no tmux; #1017 burndown (same condition as its siblings) — signed at adoption of #1262 (rev-code-02 F5), red-first verified on sb-it-1-dt # --- single-suite directories: unmeasured in CI --- diff --git a/packages/mosaic/framework/tools/tmux/test-send-message-verdict.sh b/packages/mosaic/framework/tools/tmux/test-send-message-verdict.sh index a6214225..e50d9f79 100755 --- a/packages/mosaic/framework/tools/tmux/test-send-message-verdict.sh +++ b/packages/mosaic/framework/tools/tmux/test-send-message-verdict.sh @@ -16,7 +16,7 @@ set -uo pipefail HERE=$(cd -- "$(dirname -- "$0")" && pwd) -SEND="$HERE/send-message.sh" +SEND="${SEND:-$HERE/send-message.sh}" SOCKET="verdict-test-$RANDOM-$$" TMP=$(mktemp -d) trap 'tmux -L "$SOCKET" kill-server >/dev/null 2>&1 || true; rm -rf "$TMP"' EXIT