backnotprop / backnotprop/plannotator

Plan mode: adopt the unified decision control and retire the Add Feedback First dialog

Open
#1,457 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
8.7k
Forks
649
Avg merge
11h 12m
Merged PRs (30d)
109

Description

Follow-up assigned by the decision-control implementation spec (DESIGN_decision-control.md section 7, PR7 notes).

The decision-control stack unifies the header decision surface on every annotate surface and both code-review destinations, but plan review deliberately kept its incumbent header (Approve / Request Changes plus the Add Feedback First dialog) because plan mode was out of the stack's scope.

Remaining work:
- Wire plan review's header onto buildDecisionSpec / DecisionControl (empty state [Approve], feedback state [Send Feedback n], caret alternates), reusing the deny/approve transports unchanged.
- The Add Feedback First dialog dies with the adoption: the adaptive primary makes the zero-feedback deny path unrepresentable, which is the dialog's whole job.
- Mod+Enter follows the visible-primary rule with the confirm-dialog sentinel guard, matching the other surfaces.

Two related deferred items to consider bundling:
- packages/ui/components/html-viewer/HtmlViewer.tsx mints global-comment ids with Date.now(); the equivalent Viewer.tsx site moved to crypto.randomUUID() in the stack. Same treatment applies.
- Annotate's two positive-finish decision kinds (feedback without a gate, approved with one) remain transport-shaped; an additive flag on /api/feedback in both runtimes would reconcile them if ever desired.

Contributor guide

Open the contributing guide

Research direction

Read DESIGN_decision-control.md section 7 and the PR7 notes, then trace plan review's header into buildDecisionSpec and DecisionControl. Compare the existing plan-review transport and keyboard behavior with the other decision-control surfaces, and inspect packages/ui/components/html-viewer/HtmlViewer.tsx alongside Viewer.tsx if bundling the id fix. Done means plan review uses the unified states and Mod+Enter behavior, the Add Feedback First dialog is removed, and the relevant flows still work.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.