1.7 KiB
1.7 KiB
Feature documentation
One file per capability. Each records what the feature does, how it is wired, the protocol facts it depends on, and the traps found while building it — so a future session does not have to re-derive them.
| Feature | Status | Code |
|---|---|---|
| Session transport | Implemented | Scripts/client.js |
| Conversation model | Implemented | Scripts/session.js |
| Transcript | Implemented | Scripts/transcript.js |
| Sidebar | Implemented | Scripts/sidebar.js |
| Tool approvals | Implemented | Scripts/permissions.js, Scripts/diff.js |
| Plan mode | Implemented | Scripts/permissions.js |
| Questions | Implemented | Scripts/permissions.js |
| Authentication | Implemented | Scripts/auth.js, Scripts/cli.js |
| Context and prompting | Implemented | Scripts/main.js |
| Session history | Implemented | Scripts/sessions-store.js |
| IDE bridge | Proposed — not built | — |
The one-paragraph architecture
The extension spawns one claude process per window and speaks its
newline-delimited JSON protocol over stdio. Session messages (assistant text,
tool calls, results) and control traffic (the initialize handshake, permission
prompts, interrupts) share that pipe. client.js owns the framing; session.js
turns messages into a conversation model; transcript.js, sidebar.js and
permissions.js are views over that model. Nothing else runs — no Node sidecar,
no bundled copy of Claude Code, no network access of the extension's own.