diff --git a/README.md b/README.md index 362701b..c7fd4e6 100644 --- a/README.md +++ b/README.md @@ -132,26 +132,32 @@ record per the contract; git push/pull is the transport, no re-homing ever. Design: `vscode-cowriting-plugin-content/specs/coauthoring-cross-rung-format.md`. -## F6 — Diff-view toggle (Feature #17) +## F6 — Diff-view toggle (Feature #17, #19) -**Cmd/Ctrl-Alt-D** (or **Cowriting: Toggle Diff View**) flips a tracked -document into a native `vscode.diff` against a **coauthoring baseline** — the -readonly baseline on the left, your **live, editable** document on the right -(so you keep writing inside the diff; toggling again closes it). The diff -answers "what did *I* change?" in one keystroke instead of git archaeology. +**`Ctrl+Alt+D`** (the same chord on macOS — not `Cmd`; or **Cowriting: Toggle +Diff View**) flips the focused document into a native `vscode.diff` against a +**coauthoring baseline** — the readonly baseline on the left, your **live, +editable** document on the right (so you keep writing inside the diff; toggling +again closes it). The diff answers "what did *I* change?" in one keystroke +instead of git archaeology. +- **Works on any file (#19):** any document you can edit — a file inside or + outside the workspace folder, or an **untitled** scratch buffer. Only a + non-text-editor focus warns. (Untitled buffers diff in-memory; saving makes + the baseline persist.) - **Machine-factored baseline (INV-18):** the baseline initializes when a doc - is first tracked and **advances automatically at every machine landing** - (every successful `applyAgentEdit` seam apply — INV-9). So text Claude landed - never shows as a change; everything the diff shows is operator-authored by + is first seen and **advances automatically at every machine landing** (every + successful `applyAgentEdit` seam apply — INV-9). So text Claude landed never + shows as a change; everything the diff shows is operator-authored by construction — no attribution filtering. - **Pin on demand:** **Cowriting: Pin Diff Baseline to Now** resets the baseline to the current buffer for a deliberate "review my next pass" epoch; the diff tab title names the epoch (`opened` / `Claude landed` / `pinned`). - **Pure view, repo-free (INV-19):** the baseline snapshot lives in VS Code - workspace storage, **never** the repo — `.threads/`, the cross-rung contract - (INV-14..17), and `SCHEMA_VERSION` are untouched. Storage-unavailable - degrades to in-memory baselines + one warning. + **global** extension storage, keyed by a hash of the document URI, **never** + the repo — `.threads/`, the cross-rung contract (INV-14..17), and + `SCHEMA_VERSION` are untouched. Storage-unavailable degrades to in-memory + baselines + one warning. - **No LLM in CI:** host E2E (`test/e2e/suite/diffView.test.ts`) drives the same programmatic seam ingress (propose + accept) the F4 suite uses. diff --git a/docs/MANUAL-SMOKE-F6.md b/docs/MANUAL-SMOKE-F6.md index f3279fe..e619a14 100644 --- a/docs/MANUAL-SMOKE-F6.md +++ b/docs/MANUAL-SMOKE-F6.md @@ -6,10 +6,11 @@ rest of F6 needs no credentials and no network. 1. `npm run build`, launch the extension (F5 in VS Code opens the committed `sandbox/` playground), open `playground.md`. -2. Edit a sentence by hand, then **Cmd/Ctrl-Alt-D** (or run **Cowriting: Toggle - Diff View**). ✅ A diff opens: the readonly baseline on the left, your live - document on the right; the tab title reads `playground.md — my changes since - opened