Skip to content

copilot-model: add claude-opus-5.5 to SUPPORTED_COPILOT_MODELS (GA in Copilot 2026-09-22; AWF rejects it pre-request) #8903

Description

@matiloti

Summary

claude-opus-5.5 became generally available in GitHub Copilot on 2026-09-22 (changelog), but it is not in SUPPORTED_COPILOT_MODELS in src/copilot-model.ts — not in the latest release (v0.28.23, 2026-09-22) and not on main. Because validateCopilotModel() runs host-side before any container starts, every gh-aw workflow that sets engine.model: claude-opus-5.5 fails in the Execute GitHub Copilot CLI step with zero requests made:

[ERROR] Error: model 'claude-opus-5.5' is unsupported or unrecognized by this AWF version. Did you mean 'claude-opus-5'?

This is the same lag pattern as #6682 (claude-opus-5 missing from the allowlist while Copilot already served it).

Environment

  • gh-aw compiler v0.88.2, engine.id: copilot, Copilot CLI pinned 1.0.70
  • AWF v0.27.31 (sandbox.agent.version); verified the allowlist gap also in v0.28.23 and main
  • GHES tenant with a data-residency Copilot API (engine.api-target), ubuntu-latest runners

Evidence

src/copilot-model.ts on main (Claude section of SUPPORTED_COPILOT_MODELS):

  'claude-fable-5',
  'claude-haiku-4.5',
  'claude-mythos-5',
  'claude-opus-4.8',
  'claude-opus-5',
  'claude-sonnet-5',
  'claude-sonnet-4.5',
  'claude-sonnet-4.6',

Observed instance of the gate on the same tenant with claude-opus-5 against AWF v0.27.31 (which predates that entry), failing weekly since 2026-09-06:

  COPILOT_MODEL: claude-opus-5
[ERROR] Error: model 'claude-opus-5' is unsupported or unrecognized by this AWF version. Did you mean 'claude-opus-4.8'?
##[error]Agent execution exited with code 1

docs/model-api-mapping.json already routes the new model via the claude-opus-5* pattern under family claude-opus-5, so only the allowlist and the pricing table are missing.

Root cause

SUPPORTED_COPILOT_MODELS is a hard-coded set with no override, and the automated Model API Mapping Updater only refreshes docs/model-api-mapping.json; it does not add new Copilot models to the allowlist or to containers/api-proxy/ai-credits-pricing.js. New Copilot models are therefore rejected until someone edits the set by hand.

Suggested fix (plan)

  1. src/copilot-model.ts: add 'claude-opus-5.5' to SUPPORTED_COPILOT_MODELS (next to 'claude-opus-5').
  2. containers/api-proxy/ai-credits-pricing.js: add 'claude-opus-5-5' (dash-normalised key, matching the existing claude-opus-5 row). Anthropic list price for Opus 5.5 is $4.00 input / $0.20 cached input / $20.00 output per MTok; cache write follows the existing 1.25x convention ($5.00). Please confirm against the Copilot billing catalog before merging.
  3. src/copilot-model-catalog-sync.test.ts: no exclusion needed — the model is exposed in the Copilot CLI, so the parity guard should pass once both tables carry it.
  4. docs/model-api-mapping.json: no change (covered by claude-opus-5*); optionally extend the family notes to mention claude-opus-5-5.
  5. Longer term (from claude-opus-5 and gpt-5.6-sol missing from allowlist and pricing while model-api-mapping already carries them — third recurrence, needs a cross-catalogue consistency check #6682): have the mapping-updater workflow diff the Copilot models catalog against SUPPORTED_COPILOT_MODELS and open an issue when a GA Copilot model is missing, so this stops recurring on every model launch.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions