Commit Graph

24 Commits

Author SHA1 Message Date
Ben Stull 8b9e61a1da feat(f11): SLICE-1 — Pin baseline toolbar button + reachability (#43)
Homes the orphaned cowriting.pinDiffBaseline command and gives the writer a
reachable Pin control in the preview toolbar. Per spec §7.2 SLICE-1
(docs/superpowers/specs/2026-06-12-f11-preview-toolbar-interaction-surface.md).

- trackChangesPreview: extract onDidReceiveMessage into handleWebviewMessage;
  add the F11 `pinBaseline` intent → DiffViewController.pin(previewedDoc) (the
  bound doc, not activeTextEditor — §6.7); ToolbarMsg union; receiveMessage test
  seam exercising the real message→seam wiring (INV-35).
- webview: ⌖ Pin baseline button in #cw-header posting { type: "pinBaseline" };
  theme-aware toolbar-button CSS (light/dark/high-contrast, disabled state).
- package.json: unhide pinDiffBaseline — commandPalette `when` false →
  editorLangId == markdown (resolves the #34 orphan from the command side).
- host E2E (test/e2e/suite/f11Toolbar.test.ts): pinBaseline message clears the
  change-marks + advances the baseline to `pinned`; palette `when` is reachable.

Also archives the F11 implementation plan to docs/superpowers/plans/.

197 unit + 47 host E2E green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 13:40:21 -07:00
Ben Stull b2de25ff99 design(f11): preview toolbar as the primary interaction surface
Solution Design for Feature #43 (F11): the F10 review preview's header
gains a Pin baseline button and a single adaptive Ask Claude button
(Edit Selection / Edit Document) beside the existing annotations
checkbox, plus a minimal right-click gateway that opens the preview.

Three forks locked in brainstorming session 0036:
- block-level preview-selection -> source mapping (data-src on blocks
  from BlockWithRange; union of intersected live-source blocks)
- document edit diffed into per-hunk F4 proposals (no model change)
- #43 lands a minimal editor/title -> Open Review Preview gateway
  (#41/#42 expand the menus)

Reuses F4 propose/F3 attribution/F6 baseline seams; sealed webview
posts intent only (INV-35/36/37). Resolves the orphaned pinDiffBaseline
reachability gap. Submitted to the content repo at finalize.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 12:15:44 -07:00
Ben Stull 0f5bc1b4ce F10 SLICE-4: manual smoke checklist + README F10 section (#29)
Adds docs/MANUAL-SMOKE-F10.md (clean editor → edit → propose → ✓/✗ →
Annotations toggle → status-bar PUC-6 → theming → cleanliness) following the
F7/F9 smoke format. Adds the F10 "write left / review right" section to the
README feature list and notes F6's two-pane diff and F9's authorship view are
retained only as data layers, not separate user surfaces.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 00:32:46 -07:00
Ben Stull 050bb21b84 F10: implementation plan for interactive track-changes review (#29)
Plan for #29 (F10) from specs/coauthoring-interactive-review.md — clean editor +
preview as the single interactive review surface (annotations on/off; ✓/✗ on
pending F4 proposals). 4 slices, 14 tasks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 23:56:00 -07:00
Ben Stull 4c4be84f37 docs(f7.1): manual webview-render smoke (#22)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 16:35:28 -07:00
Ben Stull c117552ea1 plan(f7.1): intra-diagram mermaid diffing implementation plan (#22)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 16:28:53 -07:00
Ben Stull 001adee34f docs(f9): manual smoke + README authorship-mode note
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:40:21 -07:00
Ben Stull 0eaca37d5e plan(f9): authorship preview implementation plan (7 TDD tasks)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:34:04 -07:00
Ben Stull 8fa83f68c8 design(f9): authorship view in the rendered preview
F7 gains an Authorship mode (segmented header toggle) that renders the current doc
with each span colored by its F3 author (Claude blue / human green), inline and
char-precise via PUA sentinel injection; code/mermaid fences get a block-level
author badge. Baseline-independent (INV-26), reads AttributionController.spansFor.
INV-26..28. Surfaced as friction during F8 testing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:04:18 -07:00
Ben Stull bfd951552c docs(f8): manual smoke runbook + README hybrid-model/non-shareability note + plan
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 13:15:54 -07:00
Ben Stull 36e153b7b5 docs(f7): manual smoke script + README section (#21)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 08:48:53 -07:00
Ben Stull 3347a77fde docs(f7): implementation plan for rendered track-changes preview (#21)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 08:40:56 -07:00
Ben Stull 5897fb7b26 docs(f6): any-file behavior + Ctrl+Alt+D wording (#19)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:52:31 -07:00
Ben Stull 2edb66fe4c docs(f6): manual smoke + README pointer (SLICE-4)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:20:16 -07:00
Ben Stull 6f0b903596 feat(f6): BaselineStore — vscode-free per-doc baseline persistence (SLICE-1)
F6 §6.2/§6.3, INV-19. One JSON per docPath under VS Code workspace storage,
never the repo. Mirrors CoauthorStore; unit-tested round-trip/paths/overwrite.

Also lands the F6 implementation plan
(docs/superpowers/plans/2026-06-11-f6-diff-view-toggle.md).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:11:42 -07:00
Ben Stull 0ddeaba5a6 chore: add ajv devDependency + F5 implementation plan (F5 SLICE-1, #14)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:53:18 -07:00
Ben Stull 169abf06c8 F4: document propose/accept — manual smoke, README, playground loop (#12)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:14:13 -07:00
Ben Stull 8fdea97d36 F4 SLICE-5: host E2E (propose/accept/reject/persist/stale/coexist) + seam fix: event-level net-effect matching survives host word-diff splitting (INV-9) (#12)
The accept E2E exposed a latent F3 limitation: VS Code word-diffs one
applied WorkspaceEdit into several minimal hunks when old/new share
interior tokens, so the registry's per-hunk exact match missed and seam
edits fell through as fragmented human spans. PendingEditRegistry.match
is replaced by matchEvent (all hunks inside the registered full range +
equal net delta — one applyEdit is one change event). Plan AMENDMENT 1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:12:15 -07:00
Ben Stull debd09fb97 F4: add implementation plan (just-in-time from coauthoring-propose-accept spec §7.2) (#12)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:00:42 -07:00
Ben Stull 9deb1f7c35 F3: add implementation plan (just-in-time from coauthoring-attribution spec §7.2) (#6)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 11:09:59 -07:00
Ben Stull 258d1fa914 F3 SLICE-5: correct manual-smoke failure-path doc to observed SDK binary discovery (#6)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 10:27:28 -07:00
Ben Stull c08dc075af F3 SLICE-5: live claude-code turn via applyAgentEdit seam + manual smoke (INV-8) (#6)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 10:25:56 -07:00
Ben Stull 9c9d4928bd F2: just-in-time implementation plan for region-anchored threads (#4)
Plan derived from vscode-cowriting-plugin-content/specs/coauthoring-inner-loop.md
§7.2 (SLICE-1..5). UI surface ⇒ @vscode/test-electron host E2E is a first-class
plan task, not a follow-up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 06:47:12 -07:00
Ben Stull 969502eba7 POC: F5 launch config, README, and implementation plan (Feature #2)
.vscode launch/tasks wire F5 -> Run Extension (preLaunchTask: npm build).
README documents run/dev. Plan archived under docs/superpowers/plans/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 23:55:39 -07:00