Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>WGA Developer Workspace SetupNew to Visual Studio Code? Get it now.
WGA Developer Workspace Setup

WGA Developer Workspace Setup

WGA

| (0) | Free
Configure shared WGA developer environment settings and tools.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

title: WGA Developer Workspace Setup description: Installable setup commands for WGA developer tools and workspace configuration, including AI Gateway models and shared commit-message guidance. ms.date: 2026-10-21

Setup

This extension is named WGA Developer Workspace Setup to support separate setup commands for WGA developer tools. Its commands configure the AI Gateway models and add commit-message guidance to the current VS Code profile's user settings.

Install wga-developer-workspace-setup-0.1.11.vsix with Extensions: Install from VSIX, then reload the window to load the runtime. Run WGA Developer Setup: Configure AI Gateway from the Command Palette to set up the models, or WGA Developer Setup: Configure Commit Messages to add the commit-message instruction to user settings. The AI Gateway command requires workspace trust and validates the bundled catalog before asking for X-WGA-Key in a masked prompt. It prompts before opening or reading any profile configuration and never prepopulates an existing key, even when all four managed models are configured.

Cancelling key input does not open the profile editor, read profile content, create a backup, or edit a document. After input, all destination, dirty-document, JSONC, and filesystem checks still run before confirmation or writes.

Confirm the fixed-name, count-only summary to replace the managed keys across both WGA groups. Blank values, Placeholder (case-insensitive, ignoring surrounding whitespace), line breaks, and null characters are rejected as supplied input. Cancelling confirmation makes no edits or backups.

The command opens the active profile through Chat: Open Language Models (JSON) when that installed action exists. If it is unavailable, explicitly open your active profile's chatLanguageModels.json in the editor and confirm the fallback. The extension never guesses an AppData or profile path. Only an existing local vscode-userdata document under User/ or User/profiles/<id>/ is accepted. Filesystem copies, remote authorities, workspace files, symlinks, hard links, non-UTF-8 files, and files larger than 2 MiB are refused.

Save or revert a dirty model document before running setup. Invalid JSONC, duplicate properties or group/model identities, and WGA names attached to another vendor are refused rather than repaired implicitly. A custom user-data location inside any Git repository is also refused, even when that repository is not an open workspace.

Commit-message guidance

Run WGA Developer Setup: Configure Commit Messages from any window and confirm the change. The command adds the ticket-first instruction to github.copilot.chat.commitMessageGeneration.instructions in the current VS Code profile's user settings. It applies across workspaces opened with that profile, preserves existing user-level entries, and does not duplicate the current instruction. Workspace-specific instructions remain separate and may also apply. Remove conflicting custom instructions manually if needed. User settings are profile-specific and are not committed to a repository.

The built-in message generator may not receive the branch name or be able to run Git commands. The instruction asks it to inspect the current branch, but the setup does not read or inject the branch ID, so ticket-ID detection is best effort, not guaranteed. The AI model is not changed.

Models and sign-in

The extension bundles a credential-free catalog in catalog/chatLanguageModels.json. It adds or updates these groups under the existing azure vendor:

  • WGA-AI-Gateway: Worker and Intelligent with 272k context
  • WGA-AI-Gateway-1M: Worker and Intelligent with 1M context

Use Chat: Manage Language Models and the existing Azure provider's Microsoft Entra sign-in. This extension registers no provider, requests no tokens, calls no gateway endpoint, and performs no Azure cloud operations. Access to the gateway and the installed Azure provider remain prerequisites. Existing apiKey configuration, if present, is preserved, not migrated or removed; the installed provider may prefer that authentication over Entra.

Catalog-owned model fields are refreshed by model ID. After confirmation, the trimmed supplied key replaces requestHeaders.X-WGA-Key on all four catalog-managed worker and intelligent models across the two WGA groups. This includes valid existing keys, missing keys, placeholders, and typos such as placehoder or placeholder. Other request headers, group metadata, other model fields, extra models, unrelated providers, and settings are preserved.

Group-level keys and keys on unrelated models are not rotated. Missing reasoning-effort defaults are filled with medium; existing user choices win. The planning helper retains fill-missing behavior by default; the Configure command explicitly opts into managed-key replacement.

The masked prompt protects input display only. The key is a plaintext local request header, not a SecretStorage entry. The bundled shared catalog contains neither keys nor placeholders. No key is prefilled, logged, or shown in messages. Repeating setup with the same trimmed supplied key still prompts but makes no edits, writes, or backups when the complete configuration already matches. JSONC comments and unrelated text are retained by targeted edits.

Backup and rollback

Before any edit, setup writes an exclusive .chatLanguageModels.wga-backup-<uuid>.json beside the actual user model file. It contains the original bytes and may contain secrets. POSIX permissions are 0600; Windows inherits the user directory ACL. Backups are never stored in this repository, extension global storage, telemetry, logs, or sync state by this extension. Other software may still sync the user directory. Delete backups manually after verifying setup.

Setup uses one minimal, version-checked document edit and the editor's save operation. It checks document text/version and disk bytes before and after key operations, refuses concurrent changes, and attempts safe restoration on save failure. Once the transaction is committed, the command releases its in-memory running guard before showing the dismissible success notification, so that notification cannot block a later invocation. Roll back this change restores the original content only if neither the document nor disk has changed since setup; a later invocation or user edit makes the earlier rollback refuse. If restoration is unsafe, use the retained local backup manually. Do not share it.

Stable public APIs provide no filesystem compare-and-swap or active-profile resource accessor. These checks reduce race risks but cannot guarantee atomicity against an external writer in the final save interval. No forced overwrite or direct write of the destination file is used. The editor's normal save-conflict behavior still applies.

No user configuration values, paths, credentials, headers, raw exceptions, or diffs are shown by the extension. Development tools and tests do not access your private model file.

Development

  • npm install --ignore-scripts installs the pinned dependencies.
  • npm test runs synthetic-fixture tests with Node's built-in test runner.
  • npm run check checks JavaScript syntax.
  • npm run package runs checks/tests and creates wga-developer-workspace-setup-0.1.11.vsix with @vscode/vsce.

Open this extension directory as the development workspace. The manual launch configuration is in .vscode/launch.json; launch the Extension Development Host only after explicit approval. Use a disposable editor profile for UI tests, never a production profile containing private headers.

Packaging is allowlisted by .vscodeignore: runtime JavaScript, catalog, manifest, README, and the JSONC parser runtime/license only. Tests, lockfile, instructions, launch config, logs, development dependencies, backups, and existing VSIX artifacts are excluded. Internal distribution only (UNLICENSED). No Marketplace publication or automatic installation is performed.

Validation and limitations

Run npm test, npm run check, and npm run package before distributing changes. Tests use synthetic fixtures; they do not validate Azure provider refresh, Entra sign-in, gateway requests, or visible input in a normal editor window.

The profile editor action is checked at runtime because its availability depends on the installed VS Code version. If unavailable, explicitly open the active profile's chatLanguageModels.json and use the confirmed fallback. The extension uses stable VS Code document and workspace-edit APIs and does not rely on proposed profile APIs.

Commit-message guidance is advisory. The built-in message generator may not receive the current branch or be able to run Git commands, so ticket-ID detection is not guaranteed.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft