# 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. | Feature | Status | Code | | --- | --- | --- | | [Launching sessions](launching.md) | Implemented | `Scripts/launch.js` | | [Sessions sidebar](sessions.md) | Implemented | `Scripts/sidebar.js`, `Scripts/sessions-store.js` | | [Authentication](authentication.md) | Implemented | `Scripts/auth.js`, `Scripts/cli.js` | | [IDE bridge](ide-bridge.md) | **Next — not built** | — | ## Architecture Chat happens in a terminal running `claude`. The extension does not own a session and does not proxy the conversation; it prepares launch commands, tracks the project's sessions, and manages the account behind them. ``` Nova sidebar ──copy command──> clipboard ──you paste──> terminal running claude │ │ └── reads ~/.claude/projects//*.jsonl ───────────────────┘ (the same store the CLI uses) ``` Because a launched session is an ordinary CLI session, it is resumable from any terminal and eligible for `--remote-control` — nothing about it is specific to this extension. ## History The extension previously drove `claude --print` over its stream-json protocol and rendered the conversation into a Markdown tab, with approvals, plan review and question answering in Nova panels. That was removed: modal panels truncated long questions and lost their input whenever you clicked away to check something. The terminal TUI handles those interactions properly. That implementation — including the stream-json transport, the editable-proposal flow, and the change reconstruction in `Scripts/diff.js` — is preserved in commit `89d1a06` and is the starting point for the [IDE bridge](ide-bridge.md).