F8: out-of-workspace authoring — hybrid sidecar persistence (#25) #26
Reference in New Issue
Block a user
Delete Branch "f8-out-of-workspace"
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?
Implements F8 (Feature #25, out-of-workspace authoring) from the graduated Solution Design
specs/coauthoring-out-of-workspace.md(brainstorming session 0024). Planning-and-executing session 0025.What changes
"Ask Claude to Edit Selection" (and F2 threads / F3 attribution / F4 propose-accept) now work on any document the editor shows — saved in-folder, saved out-of-folder, or untitled — matching the already-universal F6 diff / F7 preview. Commands are live even with no folder open.
Hybrid persistence (one
SidecarStoreabstraction, routed per-document by#24'sisUnderRoot):file:→ the committable repo.threads/<repo-rel>.jsonsidecar (CoauthorStore, byte-for-byte unchanged, INV-2);file:+untitled:→ global-storage sidecar keyed bysha256(uri)(GlobalSidecarStore, mirroring F6'sBaselineStore, INV-19/24); untitled is in-memory only.The
Artifactshape +SCHEMA_VERSIONare identical either home, somergeArtifactsand the F5 cross-rung contract are untouched. A global artifact is not a committed file → never cross-rung-shareable (INV-25); URI-rename orphaning accepted & documented.How
sidecarStore.ts(interface),globalSidecarStore.ts,sidecarRouter.ts(keyOf+ routing);isAuthorableinworkspacePath.ts.VersionGuardonto the router; gateisInRoot/isTracked→isAuthorable; key viastore.keyOf.extension.ts: construct the router; removed the no-root early-return + command stubs (folder-less authoring);renderIfOpengated byisAuthorable.model.ts,mergeArtifacts.ts,store.ts(CoauthorStore) untouched — the INV-2 byte-for-byte guarantee by construction.Tests
GlobalSidecarStore,SidecarRouter,isAuthorable/selectionRejection).@vscode/test-electron, no LLM): 36 passing with-workspace (incl. 3 new F8: out-of-folder file, untitled, in-workspace byte-for-byte regression) + 5 passing no-workspace (folder-less authoring). All F2–F7 regressions green.Docs:
docs/MANUAL-SMOKE-F8.md, README F8 section.Plan:
docs/superpowers/plans/2026-06-11-f8-out-of-workspace.md.🤖 Generated with Claude Code