F9: authorship view in the rendered preview #27

Merged
benstull merged 9 commits from f9-authorship-preview into main 2026-06-11 21:40:58 +00:00

9 Commits

Author SHA1 Message Date
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 4212d90055 test(f9): host E2E — authorship mode marks Claude's landed span
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:39:54 -07:00
Ben Stull e0118bb835 feat(f9): webview segmented mode toggle + authorship legend + author CSS
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:38:50 -07:00
Ben Stull 399e3c5f70 feat(f9): preview gains authorship mode + attribution dep + setMode wiring
Per-panel mode (default changes); refresh branches to renderAuthorship reading
AttributionController.spansFor; webview setMode message; extension.ts reorders the
F7 controller after attribution. getMode/setMode test seams.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:38:05 -07:00
Ben Stull a84d72e69b feat(f9): AttributionController.spansFor — authorship spans for the preview
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:36:36 -07:00
Ben Stull 95eaf78891 feat(f9): renderAuthorship — inline author spans + atomic fence badges (INV-26/27/28)
PUA sentinel injection through markdown-it; adjacent-span ordering handled;
code/mermaid fences atomic with a block-level author badge.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:36:19 -07:00
Ben Stull 82d7c52983 feat(f9): splitBlocksWithRanges — block offsets aligned to the source
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 14:34:40 -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