c08dc075af
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.2 KiB
2.2 KiB
F3 manual smoke — live claude-code turn (spec §6.8)
The live turn is deliberately NOT in CI (unit + host E2E drive the seam). It gets this documented smoke, run once per machine that has Claude Code installed and signed in (Pro/Max). The extension itself holds no credentials (INV-8) — auth is entirely the local Claude Code login.
1. Scripted smoke (the quick check)
npm run smoke:live
Expected: prints a replacement: line containing "The smoke test passed.",
the model id, a non-empty sessionId, and exits 0.
2. In-editor smoke (the real PUC-2)
npm run build, then F5 (Extension Development Host) opening this repo.- Open any markdown file in the workspace; type a sentence — it renders with the human gutter border (left edge) as you type.
- Select the sentence → run “Cowriting: Ask Claude to Edit Selection” →
instruction:
rewrite this more formally. - Expected: progress notification; on completion the replacement text lands
tinted (Claude-attributed), the human border remains on your other
edits, and after save the sidecar
.threads/<doc>.jsonhas anattributions[]entry withauthor.kind: "agent",agent.model,agent.sessionId, and aturnId. - Cowriting: Toggle Attribution hides/shows both decorations (PUC-5).
3. Failure paths (INV-8 — graceful, tracking unaffected)
- Signed out / no Claude Code:
PATH="" npm run smoke:live(or sign out) → the script exits 1 with a clear error; in-editor, the command shows an error notification and NO edit is applied. - Buffer edited mid-turn: start an edit-selection turn, type elsewhere in the
document before it completes → warning notification "document changed", no
partial application (stale
expectedVersion, spec §6.9).
Smoke log
| Date | Machine | Result |
|---|---|---|
| 2026-06-10 | benstull mac (darwin) | PASS — replacement: "The smoke test passed.", model sonnet, sessionId run_g_rYKGYl, 6.9s, exit 0. Failure-path note: with PATH="/usr/bin:/bin" the turn STILL succeeded (6.2s) — the SDK resolves claude via an absolute path (~/.local/bin/claude), not PATH, so a stripped PATH does not exercise the signed-out error; sign out of Claude Code to exercise it for real. |