Skip to content

fix(status): hold queued messages on a Claude question whose legend wraps - #308

Open
tfyl wants to merge 2 commits into
mainfrom
feat/gate-inbox-multiselect
Open

tfyl wants to merge 2 commits into
mainfrom
feat/gate-inbox-multiselect

Conversation

@tfyl

@tfyl tfyl commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

Why

Gate Inbox ticks boxes on a Claude Code multi-select question before the user has chosen anything. A child session that stops on the question while a message waits in its inbox gets the message pasted into the dialog, and the Enter that submits the paste ticks whichever box the cursor is on. The answer the parent or user then gives starts from a box nobody chose.

Summary

  • The trigger is a pane narrower than the question's keybinding legend. Claude Code wraps the legend (… · Esc over to cancel at 40 columns; the ctrl+g to edit in nano segment it adds on the free-text row wraps it below 76 columns). The legend rule only matched the legend on one line, so DeliveryHold returned nothing, the dialog read as idle, and the inbox delivered. Reproduced live on Claude Code 2.1.296 on a scratch tmux server: at 45 columns, a pasted message plus Enter left [✔] Build ticked.
  • The legend rule now accepts a line break wherever the legend has a space, and lets each middle segment wrap once. Both ends stay anchored to a line start and a line end, so prose quoting the keys still reads idle.
  • The review page a stepper question ends on draws no legend: "Ready to submit your answers?" is what says it is up, and below 29 columns it wraps too. Its cursor opens on "Submit answers", so there a queued message's Enter submitted every answer at once. That rule takes a line break for any space as well.
  • Verified on live 2.1.296 captures at 160, 100, 80, 60, 45, 40, 30, 24 and 20 columns: a single-select question (on an option and on its free-text row), and a three-question stepper on each tab (single-select, multi-select, its free-text row) and on its review page. All 63 frames now hold delivery. Before this change, every frame narrower than its legend or review line read as idle.
  • A config that carries either old one-line pattern verbatim is upgraded in place, the same way the bare Enter to confirm rule already is. A hand-edited pattern is left alone.
  • Not a board render change: a narrow dialog now reads as waiting where it used to read idle, and the board draws that row the same way it draws any waiting row. No capture.

Test plan

  • TestAWrappedQuestionLegendHoldsDelivery: DeliveryHold is waiting on four new live 2.1.296 captures (a 40-column multi-select, a 72-column one on its free-text row, a 20-column stepper and a 24-column review page) and five existing narrow fixtures. It fails on all of them without the rule change.
  • TestAWrappedLegendNeedsBothEnds: legend wording in prose still reads as a resting prompt.
  • TestLoadDirUpgradesTheOneLineQuestionRules: both old patterns are replaced in place. It fails without the upgrade call.
  • Compat goldens re-recorded with GATE_INBOX_GOLDEN=write over ./compat/. The only changes are the two rule patterns and their comments.
  • go vet ./... clean. The full suite passes all 68 packages on a scratch TMUX_TMPDIR.

🤖 Generated with Claude Code

…raps

A pane narrower than an AskUserQuestion legend wraps it, and the rule
that recognises the dialog only read the legend on one line. The dialog
then read as idle, the inbox pasted the next queued message into it, and
the Enter that submits the paste ticked the box under the cursor.

The legend rule now accepts a line break wherever the legend has a space,
and a config carrying the old one-line pattern is upgraded in place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tfyl tfyl added the claude PR primarily authored by Claude label Oct 10, 2026
The page a stepper question ends on draws no legend; "Ready to submit
your answers?" is what says it is up, and below 29 columns it wraps.
The rule only read it on one line, so the page read as idle, and a
queued message's Enter landed on its preselected "Submit answers".

The review rule now takes a line break for any space too, and a config
carrying its old one-line pattern is upgraded alongside the legend's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude PR primarily authored by Claude

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant