docs(f8): manual smoke runbook + README hybrid-model/non-shareability note + plan
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -196,6 +196,33 @@ the manual smoke, not the sealed-sandbox E2E.
|
||||
Design: `vscode-cowriting-plugin-content/specs/coauthoring-rendered-preview.md`.
|
||||
Live smoke: [`docs/MANUAL-SMOKE-F7.md`](docs/MANUAL-SMOKE-F7.md).
|
||||
|
||||
## F8 — Out-of-workspace authoring (Feature #25)
|
||||
|
||||
"Ask Claude to Edit Selection" (and F2 threads / F3 attribution / F4
|
||||
propose-accept) now work on **any** document the editor shows — saved in the
|
||||
workspace folder, saved outside it, or untitled — matching the already-universal
|
||||
F6 diff and F7 preview. Authoring is no longer gated to in-workspace files, and
|
||||
the commands are live even with **no folder open**.
|
||||
|
||||
Persistence is **hybrid** (one `SidecarStore` abstraction, routed per-document):
|
||||
|
||||
- an **in-workspace** file keeps its committable `.threads/<repo-rel>.json`
|
||||
sidecar, **byte-for-byte unchanged** (INV-2) — the only home the F5 cross-rung
|
||||
contract ever sees;
|
||||
- an **out-of-workspace** file or **untitled** buffer stores its coauthoring
|
||||
artifact in VS Code **global storage** keyed by `sha256(uri)` (the same home
|
||||
and key F6's baseline uses, INV-19/24); untitled buffers are **in-memory
|
||||
only** (lost on reload/save).
|
||||
|
||||
A global-storage artifact is **not a committed file**, so it is **never
|
||||
cross-rung-shareable** (INV-25), and renaming/moving the file **orphans** its
|
||||
artifact (the key is the URI hash) — both stated as design contract, not
|
||||
discovered later. Routing leaves the in-workspace path untouched, so rollback is
|
||||
a plain PR revert with zero data migration.
|
||||
|
||||
Design: `vscode-cowriting-plugin-content/specs/coauthoring-out-of-workspace.md`.
|
||||
Live smoke: [`docs/MANUAL-SMOKE-F8.md`](docs/MANUAL-SMOKE-F8.md).
|
||||
|
||||
## Develop
|
||||
|
||||
- `npm run watch` — rebuild on change.
|
||||
|
||||
Reference in New Issue
Block a user