Skip to content

TPI: Agent Host Binaries Download Progress Notification #324229

Description

@Giuspepe

Refs: #322919

Complexity: 3

Authors: @Giuspepe

Create Issue


Context

VS Code ships the Claude and Codex agents but not their native SDK binaries for the agent host, those are downloaded on demand from the CDN the first time a session of that provider starts, then cached on disk. The tarballs are 70-95 MB, so on a cold cache the first session used to block for several seconds with no feedback. This feature shows a progress notification while the SDK downloads.

Set up

The download only fires on a cold cache, so you must clear it before each run:

rm -rf "$HOME/Library/Application Support/Code - Insiders/agent-host/sdk-cache/claude"
rm -rf "$HOME/Library/Application Support/Code - Insiders/agent-host/sdk-cache/codex"

Codex must be enabled, if it doesn't appear in the session-type picker, set "chat.agentHost.codexAgent.enabled": true (and "chat.agents.claude.preferAgentHost": true, "chat.agentHost.claudeAgent.enabled": true for Claude).

Test

  1. Quit Insiders
  2. Clear the SDK cache for Codex/Claude (see Set up)
  3. Open Insiders
  4. Start a New Session in a valid workspace folder, pick Codex in the "with ▾" picker, type any message, and Send. - ✅ A "Downloading Codex agent…" notification appears (bottom-right) with a progress bar that advances 0→100%.
    • ✅ When the download completes, the notification dismisses on its own and the session starts.
  5. Repeat steps 2–3 for Claude → expect a "Downloading Claude agent…" notification.

Verify no duplicate / stuck notifications

  1. Clear the Codex cache again, restart, start a Codex session and Send so the download begins.
  2. While it's still downloading, click New Session (⌘N / Ctrl+N) several times (Codex stays selected).
    • ✅ There is still exactly one download notification — clicking New Session does not stack additional ones.
  3. While a download is in progress, open a New Session and switch the picker to a different provider (e.g. Claude).
    • ✅ The in-progress notification keeps advancing and dismisses normally on completion — it does not freeze or get left behind.

Notes

  • The download runs in the agent-host process; the notification is rendered in the app regardless of whether the host is local or remote (WSL/SSH).
  • If AI features are disabled (chat.disableAIFeatures), no notification should appear.
  • A second session of the same provider started during a download shares the single notification (one download, one indicator).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions