From 604c5582879ed2613c316348083982408f008b89 Mon Sep 17 00:00:00 2001 From: Ben Stull Date: Fri, 12 Jun 2026 00:20:00 -0700 Subject: [PATCH] F10 SLICE-3: wire ProposalController into the review preview (#29) Co-Authored-By: Claude Opus 4.8 (1M context) --- src/extension.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index f4a388e..c29b13a 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -89,21 +89,23 @@ export function activate(context: vscode.ExtensionContext): CowritingApi | undef const attributionController = new AttributionController(sidecarRouter, root, versionGuard); context.subscriptions.push(attributionController); - // --- F7: rendered track-changes preview (Feature #21) + F9 authorship mode --- + // --- F4: propose/accept (Feature #12) — constructed before the preview so F10 + // can route ✓/✗ through it --- + const proposalController = new ProposalController(sidecarRouter, attributionController, root, versionGuard); + context.subscriptions.push(proposalController); + + // --- F7/F10: the review preview is the single interactive review surface --- // Workspace-INDEPENDENT (works on any markdown doc, reuses the F6 baseline, - // INV-20). Constructed AFTER attribution so F9's authorship view can read F3 - // spans (AttributionController.spansFor). + // INV-20). Constructed AFTER attribution (reads F3 spans) and proposals (routes + // F4 accept/reject from the webview ✓/✗). const trackChangesPreviewController = new TrackChangesPreviewController( diffViewController, context.extensionUri, attributionController, + proposalController, ); context.subscriptions.push(trackChangesPreviewController); - // --- F4: propose/accept (Feature #12) --- - const proposalController = new ProposalController(sidecarRouter, attributionController, root, versionGuard); - context.subscriptions.push(proposalController); - // --- F6 machine-landing wiring — now for ANY authorable doc --- // The seam's single machine-landing signal advances the F6 baseline (INV-18); // the seam can now fire on out-of-folder files too, so wire it unconditionally.