F3: live human/Claude attribution on @cline/sdk claude-code (Feature #6) #7
Reference in New Issue
Block a user
Delete Branch "feat/f3-live-attribution"
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?
Summary
Implements F3 (#6) — live human/Claude attribution on the F2 model (#4), per
vscode-cowriting-plugin-content/specs/coauthoring-attribution.md(§7.2 SLICE-1..6).src/model.ts— typedAttributionRecordfills the reservedattributions[](sharedanchors/Provenance,schemaVersionstays 1 — INV-4) with stable serialization.src/attributionTracker.ts— pure span algebra (shift/split/clip/coalesce): char-honest attribution, both author directions (INV-6/INV-7).src/pendingEdits.ts+src/attributionController.ts— theapplyAgentEditseam (the only machine-edit ingress — INV-9) with a pending-edit registry that mirrors the host's WorkspaceEdit diff-minimization (transport-minimized, intent-honest full-extent attribution); human typing wiring; decorations (Claude tint / human border) + toggle (PUC-5).CoauthorStore.updatesection-merge + counted self-writes + one shared sidecar watcher so Thread/Attribution controllers co-own the sidecar without clobbering.updatedAtbumped only on change), load/external-change resolve-or-orphan on the F2 Anchorer ladder (INV-1), disk-compare sync detection (theisDirtyheuristic is host-unreliable), orphan status-bar count + output channel.src/liveTurn.ts— one@cline/sdkAgentturn on the built-inclaude-codeprovider (rides the local Claude Code Pro/Max login; the extension stores zero credentials — INV-8) behindCowriting: Ask Claude to Edit Selection; fence-aware replacement extraction; graceful failure paths. Live smoke performed and logged (docs/MANUAL-SMOKE-F3.md: PASS, sessionIdrun_g_rYKGYl, 6.9s).test/e2e/suite/attribution.test.ts): type → human span → seam edit → agent span (incl. via the command wrapper) → save → reload → re-anchor → orphan → toggle. No LLM in CI — E2E drives the seam.Verification
npm run typecheckclean ·npx vitest run69/69 ·npm run build(extension.cjs + liveTurn.mjs) ·npm run test:e2e10/10 (F2 threads 4/4 + F3 attribution 6/6)docs/superpowers/plans/2026-06-10-f3-live-attribution.md(incl. amendments). Session 0007 transcript to follow at finalize.F4 (propose/accept) inherits the seam contract and the attribution substrate.
Fixes #6
🤖 Generated with Claude Code