Optional notes on ask answers, and submittable empty multi-selects #228
No reviewers
Labels
No labels
Agent
Ignore
Agent
In Progress
Agent
Planned
Agent
Planning
Agent
Ready
Agent
Triage
Compat
Breaking
Kind
Bug
Kind
Documentation
Kind
Enhancement
Kind
Feature
Kind
Security
Kind
Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
lucas/omp-deck!228
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/issue-225-ask-notes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes: #225
What changed
Notes.
ExtUiDialogResponsegains an optionalnote. Every select question in the ask dialog now renders a collapsed+ Add noteexpander below the options; its text is sent alongsidevalue/values(never instead of it, never as a cancel). The note is shown under the answer in the collapsed card, the Summary tab and the transcript tool card, and reaches the agent as an indented line beneath the answer line:Enter inserts a newline in the note textarea (no submit-on-Enter), unlike the "Other" textarea whose text is the answer.
Empty multi-selects.
deckSelectnow returns aDeckSelectAnswer { values, note? }instead of a barestring[], so an emptyvaluesarray is a real answer rather than falling through toundefined(whichcreateDeckAskToolreads as X/Stop and aborts the turn). The dialog lets amulti: truequestion be submitted untouched — the button readsSubmit (none selected)— and the agent receives<question>: none selected. Cancelling via X still aborts exactly as before and discards any typed note.formatDetachedAnswer(dialogs restored after a server restart) also learned both: it previously dropped multi-select arrays and now renders notes too.The generic
select()/input()/editor()/confirm()extension methods are untouched.Verification
bun test apps/server/src/bridge/— 519 pass. Newext-ui-bridge.test.tscoversdeckSelectparsing through the real frame/response path (empty selection, note kept, blank note dropped, no-selection non-answer, plain cancel, dismiss-for-new-message);deck-tools.test.tscoversformatAskAnswer([], undefined) === "none selected"andformatAskNotesingle/multi-line.bun run typecheck— clean across all packages.createDeckAskToolagainst a realExtensionUIBridgewith a single-select + note and an empty multi-select produced exactly the result text and details payload above.The browser-side steps from the issue's verification list (manual cockpit walkthrough) were not run in this unattended session.
The deck's ask dialog could only replace an answer ("Other") or cancel it, so a caveat on an otherwise-fine option cost either the structured answer or the whole ask result. Every select question now has a collapsed "+ Add note" expander whose free text is sent alongside the answer and surfaced in the review card, the summary tab and the transcript tool card. A multi-select answered with nothing checked used to be indistinguishable from pressing X: the dialog refused to submit it and the bridge mapped an empty selection to a cancel, aborting the turn. An empty selection is now a real answer that reaches the agent as "none selected", while cancelling keeps aborting as before. Co-Authored-By: Claude Opus 5 via omp-deck