0f5bc1b4ce
Adds docs/MANUAL-SMOKE-F10.md (clean editor → edit → propose → ✓/✗ → Annotations toggle → status-bar PUC-6 → theming → cleanliness) following the F7/F9 smoke format. Adds the F10 "write left / review right" section to the README feature list and notes F6's two-pane diff and F9's authorship view are retained only as data layers, not separate user surfaces. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.3 KiB
3.3 KiB
Manual smoke — F10 interactive review in the preview (#29)
F10 makes the rendered preview the single interactive review surface: the
editor is clean (zero annotations), and you accept/reject Claude's proposals
inside the preview. The webview's visual rendering (theming, ✓/✗ buttons) is
verified here, not in the automated host E2E (the webview is a sealed sandbox).
Run once per change that touches F10. One live turn hits the SDK (or use the
proposeAgentEdit seam to stay key-free).
Setup
npm run build- Launch the Extension Development Host (F5 in VS Code, or the Run panel) with
sandbox/open. - Open a markdown document containing some prose (e.g. copy
test/e2e/fixtures/workspace/docs/preview.md).
Steps
- Clean editor. Look at the source editor: there is no attribution tint, no in-editor proposal comment threads, and no diff — the editor is a plain text buffer (F10/INV-32). All review lives in the preview.
- Open the preview. Run "Cowriting: Open Review Preview" (or
Ctrl+Alt+R). A preview opens beside the editor. The header shows an Annotations switch (on by default) and a summary. - Edit prose. In the source editor, change a word in a paragraph. The
preview updates (≈150 ms) in its on-state: the new word highlighted as a green
insertion (
<ins>/cw-by-human), the old word struck (<del>/cw-del); the summary increments. Your own typing is colored green (human). - Ask Claude to edit a selection. Select a sentence → "Ask Claude to Edit
Selection" → instruct (or invoke the
proposeAgentEditseam). A bluecw-proposalblock appears in the preview, showing the struck replaced text and the proposed replacement, with ✓ / ✗ buttons in acw-actionsspan. The editor itself does not change (INV-10 — propose never mutates the doc). - Accept one. Click ✓ on the proposal. Expect: the replacement lands in the document (the editor text updates), the proposal block clears from the preview, and the landed Claude text is not marked as a change (the baseline advanced past the landing; INV-18).
- Reject another. Propose a second edit, then click ✗ on it. Expect: the block vanishes from the preview and the document is unchanged.
- Toggle Annotations off. Flip the header Annotations switch off. Expect: the preview shows clean rendered markdown — no green/blue author colors, no struck deletions, no proposal blocks (INV-33). Flip it on again: the marks and any pending proposal blocks return.
- Status-bar indicator (PUC-6). Close the preview. With a pending proposal outstanding and no preview open, a status-bar item shows the pending count (e.g. "1 Claude proposal"). Click it — the review preview opens and the indicator disappears.
- Theme. Toggle light / dark / high-contrast (
Ctrl+K Ctrl+T). The proposal block and its ✓ / ✗ buttons, and the green/blue author colors, restyle to the theme and stay legible in each. - Cleanliness.
git statusshows nothing written to the document, sidecar, or repo by the preview (INV-20).
Pass criteria
All ten steps behave as described; no console errors in the webview devtools; the editor stays decoration-free throughout; nothing is persisted by the preview.