You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Owner-directed design fix (2026-08-25, ruled during the 1049 dev-review session); drafted by the spir-1049 builder, verified and filed by main. Claims verified at source: DECK_FLAG_BODY at review-queue/feedback.ts:34, used at :121; the comment-controller authoring path exists in comments/builder-review.ts.
Problem
The review-flag feedback gestures (codev.feedbackCurrentHunkToBuilder, -CurrentFileToBuilder, -SelectionToBuilder, all in review-queue/feedback.ts → route()) enqueue a comment with a fixed, promptless body — DECK_FLAG_BODY = "Flagged for review from Stream Deck." — and never ask the reviewer for the actual comment. Wrong for both triggers:
Stream Deck dial: the dial is used with dictation, so it should open an input for the reviewer to speak/type the comment, not stamp a placeholder.
VS Code command / keybinding: flagging from the editor also skips any prompt and, worse, mislabels the comment "from Stream Deck" regardless of trigger.
Owner ruling: promptless flagging must not exist at all.
Desired behavior
A flag gesture (dial or keyboard; file / hunk / selection) opens a comment-authoring input at the anchor — the native inline comment thread reply box, the same UX as spec/plan comment authoring (comments/plan-review.ts / builder-review.ts: createCommentController + vscode.CommentReply). Multi-line and dictation-friendly, with Submit / Cancel / Edit / Delete. The typed/dictated text becomes the comment body. DECK_FLAG_BODY is deleted.
Scenarios to handle
Author, don't stamp. The gesture creates an empty, not-yet-queued comment thread at the anchor and focuses its reply box; on Submit the authored body enters the per-builder queue (ReviewQueueStore). The queue-mount machinery exists in builder-review.ts; the gap is an authoring entry point that does NOT pre-populate the queue with a placeholder.
Forward-mode parity. In codev.diffCodelensMode === 'forward' the gesture currently forwards a range ref to the PTY immediately with no prose. It must also prompt, then forward the ref + authored body together. No promptless branch remains.
Cancel / empty submit. Escape, or an empty/whitespace body, enqueues and forwards nothing and leaves no orphan empty thread mounted.
Validate the anchor before prompting. The existing guards (no active builder diff; cursor not in a changed hunk → "place the cursor in a changed hunk") fire BEFORE the input opens, so the reviewer never authors into a void.
All three verbs. File, hunk, and selection get the same authoring flow — not hunk-only.
Multi-line + dictation. The input must accept multi-line prose; a single-line showInputBox truncates dictated paragraphs — which is why the native comment thread reply, not an input box, is the correct surface.
Deck focus ergonomics. A dial press must bring the target builder-diff editor / comment box to focus so dictation lands in the right field; when no builder diff is active, the press surfaces a clear "focus a builder diff first" message rather than a silent no-op.
area/vscode. Core change is review-queue/feedback.ts (route()), reusing the comment-controller authoring path from comments/builder-review.ts. The Stream Deck side (apps/streamdeck, command-relay.ts) is unaffected: it only presses the existing feedback-* verbs; the behavior change is entirely VS Code-side.
Owner-directed design fix (2026-08-25, ruled during the 1049 dev-review session); drafted by the spir-1049 builder, verified and filed by main. Claims verified at source:
DECK_FLAG_BODYatreview-queue/feedback.ts:34, used at:121; the comment-controller authoring path exists incomments/builder-review.ts.Problem
The review-flag feedback gestures (
codev.feedbackCurrentHunkToBuilder,-CurrentFileToBuilder,-SelectionToBuilder, all inreview-queue/feedback.ts→route()) enqueue a comment with a fixed, promptless body —DECK_FLAG_BODY = "Flagged for review from Stream Deck."— and never ask the reviewer for the actual comment. Wrong for both triggers:Owner ruling: promptless flagging must not exist at all.
Desired behavior
A flag gesture (dial or keyboard; file / hunk / selection) opens a comment-authoring input at the anchor — the native inline comment thread reply box, the same UX as spec/plan comment authoring (
comments/plan-review.ts/builder-review.ts:createCommentController+vscode.CommentReply). Multi-line and dictation-friendly, with Submit / Cancel / Edit / Delete. The typed/dictated text becomes the comment body.DECK_FLAG_BODYis deleted.Scenarios to handle
ReviewQueueStore). The queue-mount machinery exists inbuilder-review.ts; the gap is an authoring entry point that does NOT pre-populate the queue with a placeholder.codev.diffCodelensMode === 'forward'the gesture currently forwards a range ref to the PTY immediately with no prose. It must also prompt, then forward the ref + authored body together. No promptless branch remains.showInputBoxtruncates dictated paragraphs — which is why the native comment thread reply, not an input box, is the correct surface.Acceptance criteria
DECK_FLAG_BODYand any "from Stream Deck" default body are gone.queueandforwardmodes, all prompt.Scope / area
area/vscode. Core change isreview-queue/feedback.ts(route()), reusing the comment-controller authoring path fromcomments/builder-review.ts. The Stream Deck side (apps/streamdeck,command-relay.ts) is unaffected: it only presses the existingfeedback-*verbs; the behavior change is entirely VS Code-side.Related (do not fold in)