30 lines
1.7 KiB
Markdown
30 lines
1.7 KiB
Markdown
# 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](session-transport.md) | Implemented | `Scripts/client.js` |
|
|
| [Conversation model](conversation-model.md) | Implemented | `Scripts/session.js` |
|
|
| [Transcript](transcript.md) | Implemented | `Scripts/transcript.js` |
|
|
| [Sidebar](sidebar.md) | Implemented | `Scripts/sidebar.js` |
|
|
| [Tool approvals](tool-approvals.md) | Implemented | `Scripts/permissions.js`, `Scripts/diff.js` |
|
|
| [Plan mode](plan-mode.md) | Implemented | `Scripts/permissions.js` |
|
|
| [Questions](questions.md) | Implemented | `Scripts/permissions.js` |
|
|
| [Authentication](authentication.md) | Implemented | `Scripts/auth.js`, `Scripts/cli.js` |
|
|
| [Context and prompting](context.md) | Implemented | `Scripts/main.js` |
|
|
| [Session history](session-history.md) | Implemented | `Scripts/sessions-store.js` |
|
|
| [IDE bridge](ide-bridge.md) | **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.
|