benstull
06d4f87bf7
Merge pull request 'F7.1: intra-diagram mermaid diffing ( #22 )' ( #28 ) from f7.1-intra-diagram-mermaid-diff into main
2026-06-11 23:36:57 +00: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
3b45e784c1
test(f7.1): host E2E — changed flowchart augments emitted source ( #22 )
...
Adds a renderHtmlFor test seam to TrackChangesPreviewController.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:34:42 -07:00
Ben Stull
ea96b4861c
feat(f7.1): mermaid diff legend styles ( #22 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:33:17 -07:00
Ben Stull
6702490497
feat(f7.1): render augmented mermaid diff in changed-block branch ( #22 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:33:12 -07:00
Ben Stull
e938572ebc
feat(f7.1): sequence participant/message diff + rect emission ( #22 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:32:08 -07:00
Ben Stull
96931f245d
feat(f7.1): sequence-diagram parser ( #22 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:31:44 -07:00
Ben Stull
1454c7792a
feat(f7.1): flowchart node/edge diff + styling emission ( #22 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:31:09 -07:00
Ben Stull
78352c2922
feat(f7.1): flowchart parser ( #22 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:30:32 -07:00
Ben Stull
d8ce4f12e1
feat(f7.1): mermaid diff dispatcher + type detection ( #22 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 16:29:36 -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
b5cd0f67b7
claim vscode-cowriting-plugin session 0027 (placeholder) + sessions.json entry
2026-06-11 16:17:10 -07:00
Ben Stull
480742c649
add sessions/0024/SESSION-0024.0-TRANSCRIPT-2026-06-11T12-36--2026-06-11T12-50.md + replace placeholder/variant SESSION-0024.0-TRANSCRIPT-2026-06-11T12-36--INPROGRESS.md
2026-06-11 16:12:15 -07:00
Ben Stull
b17f30297c
add sessions/0026/SESSION-0026.0-TRANSCRIPT-2026-06-11T14-29--2026-06-11T14-42.md + replace placeholder/variant SESSION-0026.0-TRANSCRIPT-2026-06-11T14-29--INPROGRESS.md
2026-06-11 14:42:56 -07:00
benstull
96be1dd070
Merge pull request 'F9: authorship view in the rendered preview' ( #27 ) from f9-authorship-preview into main
2026-06-11 21:40:57 +00: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
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
ca2ea6c2cf
claim vscode-cowriting-plugin session 0026 (placeholder) + sessions.json entry
2026-06-11 14:29:17 -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
8998879917
add sessions/0025/SESSION-0025.0-TRANSCRIPT-2026-06-11T12-51--2026-06-11T13-21.md + replace placeholder/variant SESSION-0025.0-TRANSCRIPT-2026-06-11T12-51--INPROGRESS.md
2026-06-11 13:22:18 -07:00
benstull
7e17ff8b23
Merge pull request 'F8: out-of-workspace authoring — hybrid sidecar persistence ( #25 )' ( #26 ) from f8-out-of-workspace into main
2026-06-11 20:18:45 +00: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
5030cad612
test(f8): host E2E — out-of-folder file + untitled + in-workspace regression; folder-less suite
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 13:14:45 -07:00
Ben Stull
7892e2fe87
feat(f8): wire SidecarRouter; authoring commands live folder-less ( #19 precedent)
...
Spec §6.4: construct GlobalSidecarStore + SidecarRouter (CoauthorStore when root);
remove the no-root early-return + command stubs so F2/F3/F4 are real folder-less;
renderIfOpen gated by isAuthorable; editor-context menus widened to untitled;
export sidecarRouter on CowritingApi. activate now always returns the API.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 13:13:26 -07:00
Ben Stull
7387366e28
refactor(f8): controllers depend on SidecarRouter + isAuthorable (key via keyOf)
...
Spec §6.4: constructor store CoauthorStore→SidecarRouter, rootDir→string|undefined;
isInRoot/isTracked gate → isAuthorable(scheme); per-doc key via store.keyOf(docIdentity).
Seam + artifact logic unchanged. currentAuthor omits git email when no root (fail-open).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 13:11:39 -07:00
Ben Stull
94aaff71e9
refactor(f8): VersionGuard depends on SidecarStore not CoauthorStore
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 13:08:27 -07:00
Ben Stull
dca12f4f50
feat(f8): SidecarRouter — keyOf + per-document routing (spec §6.2)
...
Routes by #24 's isUnderRoot: in-workspace file: → CoauthorStore (repo-relative key,
.threads/), out-of-folder file: + untitled: → GlobalSidecarStore (URI-string key).
keyOf is the single document identity. vscode-free; CoauthorStore conforms
structurally (unmodified, INV-2).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 13:08:01 -07:00
Ben Stull
bc77cee0bd
feat(f8): isAuthorable + widened selectionRejection (file|untitled)
...
Spec §6.4: replace the scheme!=file / !isUnderRoot rejections with a single
!isAuthorable branch. isUnderRoot retained as a routing input. Per-condition
messaging (#24 ) kept for no-editor / empty-selection / non-{file,untitled}.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 13:06:58 -07:00
Ben Stull
515acb4868
feat(f8): SidecarStore interface + GlobalSidecarStore (sha256 key, untitled in-memory)
...
Spec §6.2/§6.4: out-of-workspace file: → <globalStorage>/sidecars/<sha256(uri)>.json
(INV-19/24); untitled: → in-memory only (F6 degrade). update() carries the INV-16
newer-major throw + anchor prune; consumeSelfWrite is a no-op (outside the .threads
watcher). Mirrors src/baselineStore.ts; vscode-free, unit-tested.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 13:06:08 -07:00
Ben Stull
568139d548
claim vscode-cowriting-plugin session 0025 (placeholder) + sessions.json entry
2026-06-11 12:52:46 -07:00
Ben Stull
43595d3af5
claim vscode-cowriting-plugin session 0024 (placeholder) + sessions.json entry
2026-06-11 12:36:29 -07:00
Ben Stull
17e8524958
add sessions/0023/SESSION-0023.0-TRANSCRIPT-2026-06-11T12-28--2026-06-11T12-30.md + replace placeholder/variant SESSION-0023.0-TRANSCRIPT-2026-06-11T12-28--INPROGRESS.md
2026-06-11 12:30:54 -07:00
Ben Stull
162912c068
claim vscode-cowriting-plugin session 0023 (placeholder) + sessions.json entry
2026-06-11 12:28:16 -07:00
Ben Stull
d0f995d027
add sessions/0022/SESSION-0022.0-TRANSCRIPT-2026-06-11T12-09--2026-06-11T12-14.md + replace placeholder/variant SESSION-0022.0-TRANSCRIPT-2026-06-11T12-09--INPROGRESS.md
2026-06-11 12:14:41 -07:00
benstull
0525c40eed
Merge pull request 'fix(edit-selection): accurate warnings + path-boundary workspace check' ( #24 ) from fix-editselection-guard into main
2026-06-11 19:13:04 +00:00
Ben Stull
0bdee1c286
fix(edit-selection): accurate per-condition warnings + path-boundary workspace check
...
cowriting.editSelection collapsed four distinct failures (no editor / no
selection / unsaved / outside the workspace folder) into one misleading
"select some text in a workspace document first" warning — so editing a
selection in a file OUTSIDE the EDH workspace root (e.g. a content-repo file
while the EDH opens sandbox/) was rejected as if no text were selected.
- New pure, vscode-free src/workspacePath.ts: isUnderRoot() (separator-bounded
membership, fixing a latent startsWith() prefix collision where a sibling
whose name prefixes the root — e.g. vscode-cowriting-plugin-content vs
vscode-cowriting-plugin — falsely matched) + selectionRejection() (one
message per condition). Unit-tested (8 cases), incl. the reported bug.
- Wire isUnderRoot into all five membership checks: extension.ts (editSelection
guard + renderIfOpen) and the thread/attribution/proposal controllers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 12:12:18 -07:00
Ben Stull
28f844d0bd
claim vscode-cowriting-plugin session 0022 (placeholder) + sessions.json entry
2026-06-11 12:09:21 -07:00
Ben Stull
5b5e46d142
add sessions/0021/SESSION-0021.0-TRANSCRIPT-2026-06-11T08-33--2026-06-11T11-52.md + replace placeholder/variant SESSION-0021.0-TRANSCRIPT-2026-06-11T08-33--INPROGRESS.md
2026-06-11 11:53:42 -07:00
benstull
ce01ef81b5
Merge pull request 'F7: rendered track-changes markdown preview ( #21 )' ( #23 ) from f7-rendered-preview into main
2026-06-11 15:50:33 +00: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
216a7f1ffe
test(f7): host E2E for the track-changes preview ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:48:13 -07:00
Ben Stull
1ab3cc5348
feat(f7): register showTrackChangesPreview command + keybinding, wire controller ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:46:49 -07:00
Ben Stull
8bf4b17e4a
feat(f7): TrackChangesPreviewController (sealed webview, test seam) ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:46:17 -07:00
Ben Stull
81a8370c41
feat(f7): additive onDidChangeBaseline event on DiffViewController ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:45:46 -07:00