Back to Signal Feed
CodeTracked since May 19, 2026

Restrict GitHub Copilot model catalog to live-enabled models

This change makes Copilot model selection honor entitlement and policy directly from the live `/models` response: `filterModel` now excludes policy-disabled or non-picker models, and `ModelManagerOptions.dynamicIsAuthoritative=true` forces `resolveProviderModels` to keep only IDs returned by the live API, preventing stale bundled entries from persisting in merged results and cache.

GitHub Copilot/models endpointfilterModelresolveProviderModels

What Happened

  • This change makes Copilot model selection honor entitlement and policy directly from the live `/models` response: `filterModel` now excludes policy-disabled or non-picker models, and `ModelManagerOptions.dynamicIsAuthoritative=true` forces `resolveProviderModels` to keep only IDs returned by the live API, preventing stale bundled entries from persisting in merged results and cache.
  • This change makes Copilot model selection honor entitlement and policy directly from the live `/models` response: `filterModel` now excludes policy-disabled or non-picker models, and `ModelManagerOptions.dynamicIsAuthoritative=true` forces `resolveProviderModels` to keep only IDs returned by the live API, preventing stale bundled entries from persisting in merged results and cache.
  • 1 evidence item attached for review.

What is Different

Before

Scattered source updates, isolated context, and manual follow-up across multiple feeds.

Now

Implemented entitlement-aware model curation by adding explicit policy/picker filtering and an authoritative live-catalog merge path, so disabled or deprecated Copilot models are removed before users can select them.

Why Track This

Why It Matters

GitHub Copilot users and operators will no longer see or pick blocked/disabled models in the model picker, reducing the chance of selecting a model that fails immediately with `model_not_supported`, and teams should watch whether policy changes and temporary API anomalies keep the cached catalog synchronized in time. Concretely, the PR enforces `filterModel` checks for `policy.state != enabled` and `model_picker_enabled = false` and applies `dynamicIsAuthoritative` so merged results are constrained to live response IDs; testing showed a catalog reduction from 31 to 12 entries matching account settings.

Impact

GitHub Copilot users and operators will no longer see or pick blocked/disabled models in the model picker, reducing the chance of selecting a model that fails immediately with `model_not_supported`, and teams should watch whether policy changes and temporary API anomalies keep the cached catalog synchronized in time. Concretely, the PR enforces `filterModel` checks for `policy.state != enabled` and `model_picker_enabled = false` and applies `dynamicIsAuthoritative` so merged results are constrained to live response IDs; testing showed a catalog reduction from 31 to 12 entries matching account settings.

What To Watch Next

  • Watch whether GitHub Copilot becomes a repeated pattern.
  • Track follow-up changes around AI IDE.
  • Compare future signals against this evidence trail.
  • Re-check risk flags: models_endpoint_omits_items_without_tombstones, stale_cached_catalog_after_policy_change.
Open Topic TimelineOpen Technical EventOpen Original Sourcemodels_endpoint_omits_items_without_tombstones / stale_cached_catalog_after_policy_change / authoritative_mode_with_api_outage / edge_cases_for_missing_policy_fields

Supporting Evidence