From d85194224f7553e484dc0c570a34ea5fe237ed8d Mon Sep 17 00:00:00 2001 From: Ben Stull Date: Wed, 10 Jun 2026 11:09:04 -0700 Subject: [PATCH] F3 polish: active-editor status bar + E2E for command wrapper and toggle (PUC-5) (#6) Co-Authored-By: Claude Opus 4.8 (1M context) --- src/attributionController.ts | 4 +++- test/e2e/suite/attribution.test.ts | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/attributionController.ts b/src/attributionController.ts index 09fd2c0..245d5e2 100644 --- a/src/attributionController.ts +++ b/src/attributionController.ts @@ -326,7 +326,9 @@ export class AttributionController implements vscode.Disposable { editor.setDecorations(this.humanType, humanRanges); } } - this.renderStatus(s); + if (document === vscode.window.activeTextEditor?.document) { + this.renderStatus(s); + } } private renderStatus(s: DocAttribution | undefined): void { diff --git a/test/e2e/suite/attribution.test.ts b/test/e2e/suite/attribution.test.ts index 386cd0e..5bc615d 100644 --- a/test/e2e/suite/attribution.test.ts +++ b/test/e2e/suite/attribution.test.ts @@ -131,4 +131,32 @@ suite("F3 live attribution (host E2E — seam-driven, no LLM)", () => { assert.ok(!spans.some((s) => s.authorKind === "agent"), "mangled agent span not rendered"); assert.ok(api.attributionController.getOrphanCount(DOC_REL) >= 1, "…it is orphaned instead (INV-1)"); }); + + test("the applyAgentEdit command wrapper and the toggle command work end-to-end", async () => { + const doc = await openDoc(); + const api = await getApi(); + const anchor = "stable first paragraph"; + const start = doc.getText().indexOf(anchor); + const ok = await vscode.commands.executeCommand("cowriting.applyAgentEdit", { + uri: doc.uri.toString(), + start, + end: start + anchor.length, + newText: "stable COMMAND-EDITED paragraph", + model: "sonnet", + sessionId: "e2e-cmd", + turnId: "turn-e2e-cmd", + }); + assert.strictEqual(ok, true, "command wrapper applies via the seam"); + await settle(); + const spans = api.attributionController.getSpans(DOC_REL); + const agent = spans.find((s) => s.turnId === "turn-e2e-cmd"); + assert.ok(agent, "command-driven agent span exists"); + assert.strictEqual(agent!.authorKind, "agent"); + + assert.strictEqual(api.attributionController.isVisible(), true); + await vscode.commands.executeCommand("cowriting.toggleAttribution"); + assert.strictEqual(api.attributionController.isVisible(), false, "toggle hides (PUC-5)"); + await vscode.commands.executeCommand("cowriting.toggleAttribution"); + assert.strictEqual(api.attributionController.isVisible(), true, "toggle restores"); + }); });