Repository navigation
fix: ask-here pane approvals and card guards - #1833
Merged
Merged
Conversation
A call inside home's `ask here` errand that the approval policy grades "ask" blocks inside the errand's session until that agent is answered. errandEvent had no case for EventConsentRequest, and nothing else holds the errand's agent, so the errand sat `working` on a question no screen drew, and a `1` pressed at it went into the follow-up box. - The pane now draws the approval under the call it is about, with the conversation's own question builder and renderer: `1 allow once` and `3 deny`. There is no `always` from the pane. - The answer goes straight to the errand's agent (ResolveConsent), not through the block's door, whose receipt lands above the window's own box and whose `c change` would be answered by the window's engine. - The row says `waiting on you` and sorts first; the live block gives way while the turn waits; the call's row keeps `allowed`/`denied`. - The block's settle guard applies to the approval's digits and clicks, so a digit typed into a follow-up cannot allow an unread command. - Approvals are dropped when the turn ends; several in one step are asked oldest first. Results pair to rows by call id. - errandWait is renamed waitErrand so the harness's waiter law sees it and a test can hold a gated stream open. - asking-from-home.md says all of this, and no longer sends approvals to `continue as a conversation`, which ends the waiting call. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Home's `ask here` pane routed its standing card's keys straight into the block's router, past the guards the block keeps in front of it. - While a correction was being typed after `o`, the card still owned `1`, `3` and `0`: "make it 10 tomorrow" answered it yes at the `1`, set the reminder up as first proposed and lost the rest. Every key is text while the change is written now. - The card took a key or a click the instant it appeared. It now keeps the block's settle guard, counted from the first frame that drew it. - Its answer went through the block's door, which files a receipt above the window's own box, in a conversation that never asked. A question marked `elsewhere` leaves no receipt and counts no yes. - asking-from-home.md says all three, names the change key `o` (it said `c`), and two probes pin the asker's words. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #1833. - While a correction is being written after `o`, the box owns every key, approval included. With a card and an approval up together, "make it 10" allowed the call at its `1` and left "make it 0" in the box. - An approval arriving zeroes the card's settle stamp, so the card's answers settle again when they come back. A `1 1` allowed the call and set up the reminder in the same instant. - The routing comment names the change key `o`, not `c`. - The manual's run-on heading is two sections. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ZeroPoint95
marked this pull request as ready for review
October 14, 2026 21:32
ZeroPoint95
added a commit
that referenced
this pull request
Oct 14, 2026
#1833's settle guard drops a key that lands with the card, so the test pins the clock and moves it past questionSettle once the card has been drawn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ZeroPoint95
added a commit
that referenced
this pull request
Oct 14, 2026
…do (#1834) * fix: make home's ask-here hints and the /help digits name what the keys do - alt+enter on home belongs to the router (the composer layer); drop the unreachable alt+enter arm from home's ask-here case and keep ctrl+enter. - An errand row's foot says `enter or → answer this ask here` (and `enter answer this ask here · esc clear` over a draft); tab on the row is the next place. - The pane's `tab or esc back to the list` stays the last clause, so a 60-column frame keeps it; `/ commands` is not named while the pane has the keyboard. - /help numbers each place (`1 home · 2 AI teams · …`) instead of calling placeOrder the tab bar's order. - The manual pages say the same: ctrl+enter vs alt+enter, the row and pane feet, and which digit opens which place. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: give the ask-here pane's box its own words, and raise its sheet on a phone - While an errand's pane holds the keyboard, the box under it says `type a follow-up` (or `type the change` after `o` on a card) instead of home's `type to search or start something new`. - On a phone-width window an errand's sheet now follows the pane's focus, so `ask here`, its chord and `→` on the row show the box the keys type into; before, only `enter` raised it and typed letters went nowhere visible. - The phone sheet's box draws the same sentence at rest. - Manual: the pane's box, ask here on a phone-width window, and the card's correction key (`o`, not `c`). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: home's arrows never cross columns; say what → opens instead - keys.md, home.md, commands.md and places.md said ←/→ cross home's columns. Since 2026-09-17 every stop is in the field's one column and the rail is never walked: → opens the row's verbs, ← closes them, and on an ask-here row → hands the pane the keyboard. - The strip's words now match the code (x delete, p pause, s stop it), and the project row's `its chats` verb (removed in #1422) is no longer promised. - The phone inbox's folded project opens with → and folds with ←. - Comments in home.go, placekeys.go and verbstrip.go no longer cite the deleted homeView.crossColumns. - A truth test fails if any section repeats the crossing claims; three probes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: home's ctrl+e asks to delete, it does not close a tab - keys.md said ctrl+e closes, archives and reopens a conversation, that the strip's verb is `x close`, and that the card legend says `ctrl+e close`. Since #1750 ctrl+e on a conversation row opens the delete confirmation (legend `ctrl+e delete`), and enter reopens a dimmed row. - homeArchiveRow's comment says no key reaches it; tests still use it to make closed rows, so it stays. - A truth test fails if a section repeats the old claims; one probe, and the places heading for the box's rule gains the asker's words. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * changelog: entry for #1834 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * review: /help's digit row in commands.md, the o key, and leftovers - commands.md quoted /help's old `established shortcut order` row; it now quotes the numbered list, and a truth test refuses the old phrases. - asking-from-home: the way back is the last clause except while a change is being typed after `o`. - Comments call the correction key `o`, and the ctrl+x comment no longer says → crosses columns. - Remove the e2e rig's unused altEnter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test: let the pane's card settle before the box-sentence test presses o #1833's settle guard drops a key that lands with the card, so the test pins the clock and moves it past questionSettle once the card has been drawn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes two defects in home's
ask herepane: approvals had nowhere to be answered, and the reminder card skipped the question block's guards.What changed
Approvals inside an errand
errandEventignoredEventConsentRequest, and nothing else holds that agent. The row saidworkingforever, and1went into the follow-up box.1 allow once,3 deny. There is noalwaysfrom the pane.ResolveConsent), not through the shared answer path. That path's receipt lands above the window's own box, and itsc changewould ask the window's engine.waiting on you; the live strip gives way; the call's row keepsallowed/denied.errandWaitis renamedwaitErrandand added to the harness'sblockingCommands, so a test can hold a gated stream open.The reminder card
o,1/3/0still answered the card. "make it 10 tomorrow" said yes at the1. Every key is now text while the change is written, including when an approval is up beside the card.questionShown.elsewhere).Overlap with #1831
1831-automations.md). Merge order is being coordinated (likely 1833 → 1834 → 1831 → 1829).Manual
asking-from-home.md: three new sections, and the change key is namedo(it saidc). The line that sent approvals tocontinue as a conversationis gone, since that interrupts the waiting call.How it was checked
EventConsentRequest: pane⠋ running, no question,1reached nothing. Typing a correction: the card was answered yes.homeexchange_consent_test.go,homeexchange_cardguard_test.go). 323 related tests pass withmake test-focus.go test ./internal/manual/,make test-laws, untaggedgo test ./internal/e2e/.make pr-ready(GOFLAGS=-mod=readonly) passed after syncing withdev.Checklist
🤖 Generated with Claude Code