* Codex: support OpenAI subscription account switching
Add shared account selection UI and agent-host protocol support for switching Codex between GitHub Copilot and OpenAI authentication. Restart connections safely on source changes, preserve account state across views, and override persisted model providers when resuming sessions after a switch.
* Codex: harden subscription account switching
Reuse existing ChatGPT credentials before starting OAuth, preload optional Copilot auth for source changes, and serve the Codex model catalog probe through the CAPI proxy. Add regression coverage for account activation, protected resources, and proxy startup.
* Codex: add harness settings editor
Add shared Codex account and global configuration management, and expose account, personality, auto-review, and config controls through a modal editor in both Agents and editor windows.
* Codex: move harness settings into customizations
Expose account selection, personality, auto-review policy, and config access through a shared Codex Settings section in Agent Customizations for both editor and Agents windows.
* Codex: wait for account login cancellation
Keep the account controls disabled until the App Server has cancelled login and refreshed account state, then allow another sign-in attempt.
* drop auth and sign in flow, only wire up through agent host setting, make customization settings widget more generic
* Reuse Agent Host root config for harness settings
Remove the custom account and global configuration protocol extensions. Publish provider-backed Codex settings through RootState.config and namespaced root metadata, route edits through root/configChanged, keep config.toml values out of agent-host persistence, and reuse the shared settings widget for local and remote hosts.
* Codex: reset threads when switching providers
Refresh provider-backed configuration after authentication becomes available and preserve those values during root config replacement. Recreate Codex threads when moving between Copilot and OpenAI because persisted rollout content is provider-bound.
* Codex: remove unrelated test changes
* Codex: address settings integration review feedback
Seed Codex provider configuration before the initial root snapshot, move the shared settings widget into the workbench layer, and harden provider switching and configuration writes against races and connection loss.
* Codex: initialize contributed sections in editor test
* Codex: update exported policy description
* add vscode-pet
* chat: refine VS Code pet interactions
- Adds product-specific, optimized chat buddies to make the pet lightweight enough to remain visible across chat surfaces.
- Keeps the pet anchored to the composer so confirmations, empty states, and scroll controls remain usable without layout shifts.
- Adds accessible hover and toggle interactions so the feature feels discoverable while respecting reduced motion.
- Executes action-style slash commands immediately during active turns so UI commands do not become queued prompts.
- Excludes GIF binaries from text hygiene checks, matching the existing treatment of other image formats.
(Commit message generated by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* cursor tracking + address feedback
* Address chat pet review feedback
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix clipping issue
* sync eyes
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* perf: consolidate style-override CSS selectors
Merge the duplicate .tab.sticky-compact geometry blocks in tabs.css and collapse the focus selector lists in keyboardFocusOnly.css with :is() (specificity preserved) to reduce the number of matched selector entries.
* style: update surface color tokens and unify font weights across components
Co-authored-by: Copilot <copilot@github.com>
---------
Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
* Revert "Chat dictation: always use Nemotron model, remove model setting (#326718)"
This reverts commit 6d02468e2c.
* Revert "Dictation: migrate on-device runtime to Foundry Local streaming ASR (#326678)"
This reverts commit 6b3ff3c7f0.
* chore: remove old context menu code from code.iss
* chore: remove old app name symlink on macOS
* chore: update comment for windows fs workaround
* chore: update issue link for context menu workaround
* chore: remove stale comment from libcxx-fetcher
Include statically named dynamic imports in the remote Agent Host dependency graph while excluding exact dev-only and test-only imports.
(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix remote Agent Host dependencies
Include fs-copyfile in REH packages and verify that startup imports are declared in the remote manifest.
(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Smoke test packaged remote Agent Host
Launch the packaged Agent Host with its bundled Node after native REH builds and require it to bind a WebSocket listener.
(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Support platform-specific built-in extensions from GitHub releases
Adds support for downloading platform-specific built-in extension VSIXs
from GitHub releases, keyed by marketplace target platform. Also downloads
the latest pre-release assets for insiders builds, ignoring the pinned
version and checksum.
- extensionTarget.ts: resolve build target + release asset name
- builtInExtensions.ts: platformSpecific checksum map + insiders detection
- extensions.ts/fetch.ts: fromGithub asset selection + prerelease support
- CI: platform-aware cache key and target env plumbing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Insiders downloads the latest release instead of latest pre-release
Insiders builds should always be on the newest published release, so the
GitHub download now resolves the most recently published release (including
pre-releases) rather than filtering to pre-releases only.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address code review feedback for platform-specific extensions
- Sort latest releases by published_at instead of created_at
- Log a warning when skipping checksum validation in latest mode
- Document that platform-specific extensions always download from GitHub
- Skip gracefully on unsupported platforms; keep a clear error for a
known target missing from the platformSpecific map
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address CCR feedback: restrict targets and harden helpers
- Restrict getExtensionTarget to the supported marketplace targets, returning
undefined for unsupported OS/arch (e.g. win32-ia32, linux-riscv64) so callers
skip gracefully instead of failing with a missing-asset error
- Remove the bogus ia32 -> x86 mapping (no win32-x86 target exists)
- Validate the target format in getPlatformSpecificAssetName and throw a clear
error for malformed targets
- Guard the latest-release sort against NaN timestamps (missing published_at
sorts to the end deterministically)
- Update tests accordingly
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Align asset naming with VS Code convention and support product.overrides.json
The platform-specific extension this feature targets (typescript-go's
TypeScriptTeam.native-preview) publishes VSIX assets named
<name>-<target>.vsix using the raw marketplace target platform, not the
node-vsce-sign osx/win/arm aliasing. Update getPlatformSpecificAssetName to
the standard <name>-<target>.vsix convention and validate against the
supported target set.
- fetch.ts: in latest mode, select the newest published release that actually
contains the requested asset, so releases shipping only other artifacts
(e.g. tarballs) without a matching VSIX are skipped
- builtInExtensions.ts: merge product.overrides.json (gitignored, local) so
overridden built-in extensions are downloaded, mirroring bootstrap-meta
- Update tests for the new naming convention
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Detect extensions project by path segment, not substring
ESBuildTranspiler decided CJS vs ESM output via configFilePath.includes('extensions').
When the repo is checked out (e.g. as a git worktree) into a folder whose name
merely contains the substring 'extensions', the 'src' project was wrongly treated
as an extension and transpiled to CJS, breaking top-level await in src/cli.ts,
src/server-cli.ts and src/server-main.ts. Match an 'extensions' path segment instead.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove product.overrides.json support from built-in extensions download
Revert the download script to read product.json directly, per review feedback.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>