0.7.0 — a native VS Code panel
aico gets its own tab in the Secondary Side Bar beside Chat — the same mechanism Claude Code and Codex use, with no proposed APIs.
It is not the web workspace in a frame, and not a second implementation either: the state layer, the reducer and every transcript component are the browser client's, imported unchanged. The panel is a view over them, styled from your editor theme, so tool cards and diffs match the file next to them.
Edits arrive through the front door. A write applies as a WorkspaceEdit, so Ctrl+Z takes it back and it shows in Source Control. A file changed behind the editor's back can do neither.
It knows what you are looking at. Active file, selection with its line range, and that file's Problems — as removable chips, so it is never a guess what a message will carry. # points at another file or a symbol. The rule: inline what nothing else can recover, merely name files that Read can fetch.
Approvals are real dialogs. Auto (unchanged, still the default), ask-but-not-for-edits, or ask every time. Terminal is deliberately not in the edits pass-through list.
Fixed
- The extension registered a second project for the folder you had open — VS Code reports Windows paths with a lowercase drive letter while everything else uses uppercase, and the registry compares strings. Sessions started from a terminal stopped appearing in the panel.
- An untrusted folder disabled the extension in silence. The manifest now declares
capabilities.untrustedWorkspaces, so Restricted Mode explains it and offers a Trust button. - Opening the panel started a fresh conversation every time, losing the model with it. It now resumes the folder's last conversation.
- A turn could block forever on stdin when permissions were gated with no callback registered.
Not in this release
VS Code as a tool surface — workspace creation, terminal and diagnostics as tools the agent can call. It needs a per-run source of tool definitions plus execution dispatch, and deserves its own pass.
The extension is not on the Marketplace; build it from vscode-extension/.