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
Ben Stull
a3f9688a91
feat(f7): sealed webview asset + esbuild preview bundle ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:45:18 -07:00
Ben Stull
6c3b137ebb
feat(f7): per-block error-chip fallback (PUC-6, #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:44:13 -07:00
Ben Stull
3b0ec4f53e
feat(f7): render annotated track-changes HTML ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:43:38 -07:00
Ben Stull
6ffbf67871
feat(f7): block-level diff with atomic fences ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:42:51 -07:00
Ben Stull
247a450e10
feat(f7): block splitter for the render engine ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:42:11 -07:00
Ben Stull
f6b3efe7a5
feat(f7): add markdown-it + diff + mermaid deps ( #21 )
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 08:41:38 -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
e5374e0c66
claim vscode-cowriting-plugin session 0021 (placeholder) + sessions.json entry
2026-06-11 08:33:25 -07:00
Ben Stull
0b63a474fc
add sessions/0020/SESSION-0020.0-TRANSCRIPT-2026-06-11T08-19--2026-06-11T08-29.md + replace placeholder/variant SESSION-0020.0-TRANSCRIPT-2026-06-11T08-19--INPROGRESS.md
2026-06-11 08:30:32 -07:00
Ben Stull
1c2da43c55
claim vscode-cowriting-plugin session 0020 (placeholder) + sessions.json entry
2026-06-11 08:19:42 -07:00
Ben Stull
b38d364972
add sessions/0019/SESSION-0019.0-TRANSCRIPT-2026-06-11T07-41--2026-06-11T07-53.md + replace placeholder/variant SESSION-0019.0-TRANSCRIPT-2026-06-11T07-41--INPROGRESS.md
2026-06-11 07:55:14 -07:00
benstull
259f1672e6
Merge pull request 'F6: diff-view toggle on any file (global storage, untitled in-memory)' ( #20 ) from f6-any-file into main
2026-06-11 14:53:19 +00:00