v2.8.0

Released August 14, 2026 · View on GitHub →

The sidebar is rebuilt as an Agent Timeline: the active task and its live plan on top, the conversation collapsible underneath, grouped tool activity, and a run summary (actions / checks / next step). Icons now come from VS Code's own codicon set instead of unicode glyphs, and the view is renamed "Chat" → "Agent Timeline" to match what it actually shows.

Changed

now leads with the active task (title, subtitle, live plan), keeps the conversation in a collapsible section below it, groups the run's tool calls under "Recent tool activity" with a count and per-run collapse, and closes with a "Run summary" strip — actions taken, checks passed/failed, and the suggested next step. The composer moved into its own shell with attach and mode controls.

unchanged, so commands, keybindings and saved layouts keep working.

toolbar buttons use the codicon font instead of unicode glyphs, so they match the editor at every theme and zoom level. npm run build:webview copies the font and stylesheet into media/ (scripts/copy-codicons.mjs), and the webview CSP now allows img-src/font-src from the extension origin.

Fixed

"Building the plan..." placeholder in the plan area, but only a plan notification cleared it — so any prompt the agent answered without a plan ended on a permanent spinner, as did every restored transcript (session load and window reload both replay a task and complete it immediately). Completing a run without a plan now shows "No plan steps for this run."

picked by substring-matching the title with the read/search branch first, so "Edit src/webview/list.ts" and "Write README.md" drew a magnifying glass, and the execute kind wasn't recognised at all. The kind is now mapped directly (read/search, edit/write/delete/move, execute, fetch, think) and the title regex is only a fallback for CLIs that don't send one.

title matched test|check|lint|build|verify|command was counted, so simply reading chatPanel.test.ts scored a check — and a failed read painted the summary red. Only execute tool calls count now.

and Screenshot-2.png were still packaged although nothing references them.

Security

Math.random().toString(36). Not exploitable — every value interpolated into the page is an extension-controlled webview URI — but the nonce is the only thing that lets a script run in that document, and this release materially grows the webview's DOM surface. It's crypto.randomBytes(16) now.

Internal

packages whatever package.json says regardless of the --out filename, so a mismatched tag would have shipped the previous version's bits and then been rejected by the Marketplace as a duplicate. It now fails the job instead, mirroring the CLI's release-binaries.yml.

git-ignored, not just .vscodeignored.

Downloads

Install by downloading the codeep-2.8.0.vsix above, then run code --install-extension codeep-2.8.0.vsix — or open the Extensions view in VS Code and install from the menu → Install from VSIX…