Skip to content

feat(providers): add GPT-5.6 model family - #6862

Merged
diegosouzapw merged 4 commits into
diegosouzapw:release/v3.8.47from
backryun:feat/gpt-5.6-providers
Jul 12, 2026
Merged

diegosouzapw merged 4 commits into
diegosouzapw:release/v3.8.47from
backryun:feat/gpt-5.6-providers

Conversation

@backryun

@backryun backryun commented Jul 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add GPT-5.6 Sol, Terra, and Luna across the OpenAI API, Codex, ChatGPT Web, VS Code compatibility, pricing, usage accounting, reasoning-effort variants, and media catalogs while retaining GPT-5.4 in the OpenAI API provider.
  • Preserve Codex live discovery and the GitHub fallback as the default catalog path. Merge remote and local catalog rows first, then apply the shared delimiter-aware GPT-5.4 family denylist. Remote-only entitled model IDs remain visible, syncable, and available through /v1/models; the curated static catalog is metadata/fallback input, not an allowlist.
  • Preserve user-added response-only custom models during provider discovery and model sync. The sync path now requests a managed discovery projection explicitly instead of changing the default provider-model response.
  • Revalidate Codex catalogs on first start, upgrade, and explicit initialization. Persist the stable build/package marker and emit the completion log only after scrub, readiness, live sync, and marker persistence all succeed. The lifecycle remains Codex-only and best-effort.
  • Pin credential-bearing internal model-sync requests to the active dashboard listener and configured base path, reject redirects, and stop deriving self-fetch destinations from client-controlled request URLs or origins.
  • Fix ChatGPT Web Pro Temporary Chat stream_handoff responses by collecting native resume tokens and resuming native SSE for streaming and non-streaming requests, retrying offsets 0–2 after 404s.
  • Align emitted Claude Code identity headers, bridge fingerprints, provider profiles, snapshots, and documented defaults with claude-cli 2.1.207.

Why

The original GPT-5.6 catalog implementation treated the curated Codex list as an approval boundary. That contradicted the agreed discovery behavior: entitled remote-only models were detected but then hidden from provider responses, persistence, and /v1/models. The reconciliation now keeps live/GitHub discovery authoritative, merges local metadata, and removes only the explicit GPT-5.4 family at delimiter boundaries.

Two adjacent regressions were also closed:

  • Model sync reused a response projection that included user custom entries, allowing a managed refresh to overwrite or drop response-only custom models.
  • Lifecycle cleanup could record completion without a stable identity or before the entire live resync completed, while credential-bearing self-fetches could inherit a client-controlled origin.

Temporary Chat had a separate root cause: stream_handoff could arrive before the unsaved conversation detail became queryable, so the legacy detail lookup returned 404. The executor now resumes the native stream directly.

Compatibility Guarantees

  • Codex live discovery, GitHub fallback, caching, normalization, and minimum-client-version behavior remain enabled by default.
  • Curated allowlisting is not restored as the default.
  • Remote-only Codex IDs are exposed and can be persisted after the remote/local merge.
  • The GPT-5.4 denylist is delimiter-aware and does not reject unrelated substring matches.
  • Non-Codex OpenAI /v1/models response shape remains { object, data }; the Codex client compatibility projection remains scoped to Codex clients.
  • GPT-5.4 remains available through the OpenAI API provider. Only the Codex and ChatGPT Web catalogs remove that family.
  • Codex lifecycle revalidation is best-effort and cannot block startup.

Validation

  • Focused macOS regression suite for the agreed catalog, custom-model, lifecycle, internal-fetch, and Temporary Chat behaviors: 92/92
  • Rebased onto release/v3.8.47 at b5e75bb8 (latest root uplift)
  • Independent scope-limited final review suite: 68/68, no blocker
  • npm run typecheck:core
  • npm run lint — latest base exits 2 with 0 errors and 4135 warnings because ESLint 9.39.4 treats warning-only bulk suppressions as unused; no feature lint errors were reported.
  • Full changed-file Prettier check — flags the pre-existing whole-file formatting of docs/i18n/zh-CN/docs/reference/ENVIRONMENT.md; this PR changes one default-version string there and avoids a scope-expanding translation reformat.
  • npm run check:file-size — shared base-red from upstream fix(proxy): relay repair + free-pool UX + relay awareness #6909: ProxyRegistryManager.tsx is 1447 lines vs frozen 1437; feature and base blobs are identical.
  • npm run check:cycles
  • npm run check:env-doc-sync
  • npm run check:duplication — 4.54% vs 5.72% baseline
  • npm run check:complexity — 2055 vs 2054 baseline; the +4 arrived with upstream fix(proxy): relay repair + free-pool UX + relay awareness #6909 and this feature does not touch those proxy files.
  • npm run check:cognitive-complexity — 887 vs 890 baseline
  • npm run check:complexity-ratchets — shared base-red from the same 2055 vs 2054 complexity drift; cognitive complexity remains 887 vs 890.
  • npm run test:vitest — 28 files, 253/253
  • MCP catalog and published-closure regressions: 7/7
  • npm run build — production bundle assembled successfully on macOS
  • Commit hooks: Prettier, ESLint, docs sync, explicit-any budget, and tracked-artifact checks
  • Prior affected provider/executor/VS Code suite: 251/251
  • Prior focused image catalog, routing, and generation suite: 155/155
  • Prior focused Claude Code identity, bridge, provider, and snapshot suite: 146/146
  • Windows live Temporary Chat smoke for GPT-5.6 Pro, GPT-5.5 Pro, and GPT-5.5 Pro Extended

The production build still emits the repository's existing Turbopack broad-file-tracing warnings, but exits successfully. The optional vulnerability and CodeQL ratchets skipped locally because osv-scanner was absent and the GitHub token cannot read code-scanning alerts; GitHub CI remains authoritative for those checks.

Current CI Status After Latest Root Uplift

  • CI is rerunning for head ba2ea399a after rebasing onto b5e75bb8.
  • Upstream fix(proxy): relay repair + free-pool UX + relay awareness #6909 introduced two shared base-red gates before this feature: file size (ProxyRegistryManager.tsx 1447 > 1437) and complexity (2055 > 2054). The feature/base blobs for the failing file and baseline are identical, so no unrelated proxy or baseline patch is included here.
  • The latest base also carries the existing ESLint 9.39.4 warning-suppression mismatch described above; this PR does not alter that toolchain behavior.

Temporary Chat Resume Verification

Model Result
GPT-5.6 Pro 200, FINAL_GPT_5.6_PRO_OK
GPT-5.5 Pro 200, FINAL_GPT_5.5_PRO_OK
GPT-5.5 Pro Extended 200, FINAL_GPT_5.5_PRO_EXTENDED_OK

Key Tests Added Or Updated

  • tests/unit/codex-catalog-revalidation.test.ts
  • tests/unit/codex-catalog-revalidation-runtime.test.ts
  • tests/unit/codex-models-catalog-refresh.test.ts
  • tests/unit/model-sync-custom-preservation.test.ts
  • tests/unit/model-sync-route.test.ts
  • tests/unit/model-sync-scheduler.test.ts
  • tests/unit/provider-models-custom-merge-6247.test.ts
  • tests/unit/provider-models-discovery-split.test.ts
  • tests/unit/providers-autosync-ssrf-323.test.ts
  • tests/unit/chatgpt-web-handoff-resume.test.ts
  • Existing GPT-5.6 provider, pricing, image, CLI identity, and VS Code compatibility suites

Reviewer Notes

  • GPT-5.6 availability remains account-entitlement dependent.
  • Codex Ultra is a client-side effort variant sent upstream as max; Luna exposes Max but not Ultra.
  • Remote-only models are intentionally no longer reduced to a candidate count. They participate in the merged catalog after shared GPT-5.4 filtering.
  • User custom models remain present in normal provider-model responses; only internal managed discovery requests use excludeCustom=true.
  • Lifecycle success is recorded only after all active Codex connections resync successfully and a stable version marker is persisted.
  • The Media image catalog intentionally advertises Codex GPT-5.6 Sol, Terra, and Luna and uses ChatGPT Web GPT-5.5 Instant for image editing defaults.

@backryun
backryun requested a review from diegosouzapw as a code owner July 11, 2026 07:29
@backryun
backryun force-pushed the feat/gpt-5.6-providers branch from 04776e0 to 3e07b05 Compare July 11, 2026 07:30

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for the GPT-5.6 model family (including Sol, Terra, and Luna variants) across OpenAI API, Codex, and ChatGPT Web, while retiring older GPT-5.4 models. The changes span model registries, capabilities, pricing tiers, executors, cost calculations, and VS Code extension metadata, alongside comprehensive test updates. The review feedback correctly identifies a naming inconsistency in the ChatGPT Web model registry where gpt-5-6-thinking was defined with dashes instead of the standard dot-form gpt-5.6-thinking, and provides actionable suggestions to correct this ID, its executor mappings, and all associated unit tests.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread open-sse/config/providers/registry/chatgpt-web/index.ts Outdated
Comment thread open-sse/executors/chatgpt-web/models.ts
Comment thread tests/unit/chatgpt-web.test.ts Outdated
Comment thread tests/unit/chatgpt-web.test.ts Outdated
Comment thread tests/unit/chatgpt-web.test.ts Outdated
Comment thread tests/unit/chatgpt-web.test.ts Outdated
Comment thread tests/unit/chatgpt-web.test.ts Outdated
@backryun
backryun force-pushed the feat/gpt-5.6-providers branch 7 times, most recently from 12645fd to 0e7b925 Compare July 11, 2026 10:07
@JxnLexn

JxnLexn commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Heads up: this overlaps with #6859 / dev/model_sync_codex on the Codex model-discovery side.

That branch now has live Codex /codex/models discovery, GitHub-backed catalog fallback, normalization/merge/version-gating coverage, and a live OAuth smoke test against real credentials. It also intentionally kept the current Codex client version (0.142.0) after review feedback, so the Codex client identity/version bump here may conflict with that direction.

I think the Codex catalog/discovery parts of this PR may now be redundant or should be reconciled with the dynamic discovery path from #6859. The broader GPT-5.6 provider updates here may still be useful, especially for OpenAI API, ChatGPT Web, pricing, image catalog, and Fast-tier behavior, but we should probably avoid having two competing Codex catalog sources land independently.

@backryun
backryun force-pushed the feat/gpt-5.6-providers branch from 0e7b925 to fd84d22 Compare July 11, 2026 10:15
@backryun

Copy link
Copy Markdown
Contributor Author

Heads up: this overlaps with #6859 / dev/model_sync_codex on the Codex model-discovery side.

That branch now has live Codex /codex/models discovery, GitHub-backed catalog fallback, normalization/merge/version-gating coverage, and a live OAuth smoke test against real credentials. It also intentionally kept the current Codex client version (0.142.0) after review feedback, so the Codex client identity/version bump here may conflict with that direction.

I think the Codex catalog/discovery parts of this PR may now be redundant or should be reconciled with the dynamic discovery path from #6859. The broader GPT-5.6 provider updates here may still be useful, especially for OpenAI API, ChatGPT Web, pricing, image catalog, and Fast-tier behavior, but we should probably avoid having two competing Codex catalog sources land independently.

I will look into that issue.
However, in order to integrate GPT-5.6 into Omnitorute, ccodex must support at least version 0.144.0.

@backryun
backryun force-pushed the feat/gpt-5.6-providers branch from fd84d22 to ed67f15 Compare July 11, 2026 11:15
@backryun

Copy link
Copy Markdown
Contributor Author

@JxnLexn Heads up: this overlaps with #6859 / dev/model_sync_codex on the Codex model-discovery side.

The main risk is that this PR is still maintaining a large static Codex catalog while the sync PR adds live /codex/models discovery, GitHub fallback, and version gating. We should avoid having two competing Codex catalog sources land independently.

@JxnLexn I traced the overlap against the merged discovery implementation. The relevant discovery PR is #6776 (#6859 is an unrelated OpenCode provider-ID issue), and this branch is now rebased directly on the latest release/v3.8.47, including #6776 and #6780.

I reconciled the responsibilities instead of replacing the discovery work:

  • Discover live Codex models #6776's live /codex/models fetch, GitHub fallback, normalization, OAuth headers, cache, and minimum-client-version gating remain intact.
  • The OmniRoute static Codex catalog is the approval boundary for visible and persisted model IDs.
  • Matching remote rows enrich curated metadata.
  • Remote-only rows are detected as candidates and reported through discoveredCandidateCount, but are not persisted or exposed through /v1/models. This prevents intentionally removed models from reappearing without adding per-model denylist logic.
  • Curated ordering and virtual effort aliases remain stable.

On client identity: #6776 retained 0.142.0 to avoid duplicating the separate #6780 bump. #6780 moved the base to 0.144.0; GPT-5.6 requires at least 0.144.0, and this PR keeps the current stable 0.144.1 identity.

Validation after the final rebase includes 111 focused Codex discovery/identity/executor/chat-pipeline tests, plus a fresh Windows dev-server smoke from an empty data directory. The live GitHub fallback detected 3 remote-only candidates while exposing only the curated 26-model Codex catalog and keeping Codex GPT-5.4 out of /v1/models.

@backryun

Copy link
Copy Markdown
Contributor Author
image image

Perfect works!

@backryun
backryun marked this pull request as draft July 11, 2026 12:04
@backryun

Copy link
Copy Markdown
Contributor Author

A serious bug has been discovered and is currently being fixed.

@backryun
backryun marked this pull request as ready for review July 11, 2026 13:36
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@backryun

backryun commented Jul 11, 2026 •

Copy link
Copy Markdown
Contributor Author

Fixed. Ready for review.

@backryun
backryun force-pushed the feat/gpt-5.6-providers branch from 7ffd46c to 94a4982 Compare July 11, 2026 14:25
@jmengit

jmengit commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Genuine question - why are we not just bumping the codex client version? I added env var
CODEX_CLIENT_VERSION: 0.144.1 and it worked perfectly with the new models?

@backryun

backryun commented Jul 11, 2026 •

Copy link
Copy Markdown
Contributor Author

Genuine question - why are we not just bumping the codex client version? I added env var CODEX_CLIENT_VERSION: 0.144.1 and it worked perfectly with the new models?

image

I updated the version on this commit.
I've now connected ChatGPT Web and Codex and completed testing both. They're working perfectly.

@JxnLexn

JxnLexn commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Small concern on the Codex catalog reconciliation change.

In current release/v3.8.47, the Codex discovery flow still uses:

mergeCodexLiveModelsWithLocalCatalog(remoteModels, staticCodexCatalog)

That means live /codex/models and the GitHub fallback can expose and persist newly discovered Codex model IDs automatically. This behavior is intentional from #6859/#6776 and is the main reason for the discovery work: Codex model availability changes upstream, and OmniRoute should pick up new supported Codex IDs automatically from either the live endpoint or the GitHub catalog fallback.

The new #6862 flow switches this to:

reconcileCuratedCodexCatalog(remoteModels, staticCodexCatalog)

and separates remote-only IDs into candidateModels / discoveredCandidateCount. That preserves metadata enrichment for already-curated static IDs, but it prevents remote-only Codex models from becoming visible/persisted automatically.

Could we please keep the current automatic Codex behavior?

Concretely, I think the Codex branch in src/app/api/providers/[id]/models/route.ts should keep merging like this:

const mergedModels = mergeCodexLiveModelsWithLocalCatalog(enrichedLiveModels, staticCodexCatalog);
return buildApiDiscoveryResponse(mergedModels);

and for GitHub fallback:

const mergedModels = mergeCodexLiveModelsWithLocalCatalog(githubCatalogModels, staticCodexCatalog);
return buildApiDiscoveryResponse(
  mergedModels,
  "Codex live catalog unavailable — using GitHub model catalog"
);

So the technical ask is:

  • keep mergeCodexLiveModelsWithLocalCatalog(...) for Codex live and GitHub fallback results
  • do not gate remote-only Codex IDs behind discoveredCandidateCount
  • only use reconcileCuratedCodexCatalog(...) if it is optional/configurable, not the default Codex behavior
  • ensure persisted synced models still include valid remote-only Codex IDs from live/GitHub discovery

I’m fine with the broader GPT-5.6 static catalog updates in #6862, but I’d like the automatic future-proofing from live/GitHub Codex discovery to remain intact.

@backryun

Copy link
Copy Markdown
Contributor Author

Small concern on the Codex catalog reconciliation change.

In current release/v3.8.47, the Codex discovery flow still uses:

mergeCodexLiveModelsWithLocalCatalog(remoteModels, staticCodexCatalog)

That means live /codex/models and the GitHub fallback can expose and persist newly discovered Codex model IDs automatically. This behavior is intentional from #6859/#6776 and is the main reason for the discovery work: Codex model availability changes upstream, and OmniRoute should pick up new supported Codex IDs automatically from either the live endpoint or the GitHub catalog fallback.

The new #6862 flow switches this to:

reconcileCuratedCodexCatalog(remoteModels, staticCodexCatalog)

and separates remote-only IDs into candidateModels / discoveredCandidateCount. That preserves metadata enrichment for already-curated static IDs, but it prevents remote-only Codex models from becoming visible/persisted automatically.

Could we please keep the current automatic Codex behavior?

Concretely, I think the Codex branch in src/app/api/providers/[id]/models/route.ts should keep merging like this:

const mergedModels = mergeCodexLiveModelsWithLocalCatalog(enrichedLiveModels, staticCodexCatalog);
return buildApiDiscoveryResponse(mergedModels);

and for GitHub fallback:

const mergedModels = mergeCodexLiveModelsWithLocalCatalog(githubCatalogModels, staticCodexCatalog);
return buildApiDiscoveryResponse(
  mergedModels,
  "Codex live catalog unavailable — using GitHub model catalog"
);

So the technical ask is:

  • keep mergeCodexLiveModelsWithLocalCatalog(...) for Codex live and GitHub fallback results
  • do not gate remote-only Codex IDs behind discoveredCandidateCount
  • only use reconcileCuratedCodexCatalog(...) if it is optional/configurable, not the default Codex behavior
  • ensure persisted synced models still include valid remote-only Codex IDs from live/GitHub discovery

I’m fine with the broader GPT-5.6 static catalog updates in #6862, but I’d like the automatic future-proofing from live/GitHub Codex discovery to remain intact.

First, I’ll restore your auto-discovery feature. However, I propose a compromise: when specific code is added, we’ll include code to remove the corresponding models from the list. I believe this will lead to a mutually satisfactory agreement.

In addition, I will start working right away.

@backryun

Copy link
Copy Markdown
Contributor Author

Codex discovery reconciliation (follow-up to @JxnLexn)

Pushed 3bd5efb16 on this branch:

Default path is auto-discovery again, then an explicit policy filter:

  1. mergeCodexLiveModelsWithLocalCatalog(remote, static) — remote-only IDs are visible + persisted (same intent as [Bug] [Plugin] Provider ID mismatch: plugin uses prefixed "opencode-omniroute" for OmniRoute server calls instead of "omniroute" causing "No active credentials" error #6859 / previous release/v3.8.47 behavior)
  2. applyCodexDiscoveryFilters(...) — drop models via denylist / predicates (currently the GPT-5.4 family prefix), not via curated allowlisting
  3. reconcileCuratedCodexCatalog remains only as an optional diagnostics helper — not used by the route

So:

  • future Codex models from live/GitHub still auto-enter the catalog
  • GPT-5.6 static catalog / pricing / handoff work is unchanged
  • retirement of GPT-5.4 on the Codex path is expressed as a filter rule, not by blocking all remote-only IDs

Concrete helpers: buildCodexDiscoveryCatalog, isCodexDiscoveryModelExcluded, CODEX_DISCOVERY_EXCLUDED_ID_PREFIXES.

@backryun
backryun force-pushed the feat/gpt-5.6-providers branch 3 times, most recently from f53eb29 to d95ca51 Compare July 11, 2026 18:31
@backryun

Copy link
Copy Markdown
Contributor Author

@JxnLexn — follow-up on the Codex catalog reconciliation.

What we changed

We dropped curated-only allowlisting as the default discovery path.

Default pipeline is now:

  1. mergeCodexLiveModelsWithLocalCatalog(remote, static) — live /codex/models + GitHub fallback still auto-include remote-only IDs (same intent as [Bug] [Plugin] Provider ID mismatch: plugin uses prefixed "opencode-omniroute" for OmniRoute server calls instead of "omniroute" causing "No active credentials" error #6859 / prior release/v3.8.47 behavior), and those IDs remain visible/persisted.
  2. applyCodexDiscoveryFilters(...) — policy layer after merge. Today this denylists the GPT-5.4 family only (gpt-5.4, gpt-5.4-*, etc.). This is how we retire models without blocking future Codex IDs.
  3. reconcileCuratedCodexCatalog is no longer used on the route default path (kept only as an optional diagnostic helper).

Lifecycle cleanup (Codex only)

Persisted synced catalogs can still hold retired IDs after an upgrade. On first-start, app-version change, or setup completion we once:

  • scrub persisted Codex catalogs through the denylist (offline), then
  • best-effort quiet live re-sync when loopback is up.

Success log is a single line: kill deprecated models complete.

Scope

This is Codex-only. OpenAI API and other providers are unchanged (API still keeps GPT-5.4 where intentional).

If anything here still feels off — merge order, denylist shape, when revalidation fires, persist behavior, etc. — please say so anytime and we can adjust.

@diegosouzapw

Copy link
Copy Markdown
Owner

Reviewed and verified. All 5 GPT-5.6-specific test files pass, plus a full re-run of the ~90 existing test files this PR touches (594 tests total, 0 failures) — including the identity-version-sync, pricing, VS Code routing, and SSRF self-fetch regression suites. The self-fetch SSRF hardening (redirect: "error" + trusted getModelSyncInternalBaseUrl()) is real and test-covered, not cosmetic. ESLint/typecheck clean on every touched production file. Thanks for keeping GPT-5.4 intact alongside the new GPT-5.6 lineup — looks ready to merge pending CI's full lint/coverage confirmation.

@backryun
backryun force-pushed the feat/gpt-5.6-providers branch 4 times, most recently from 030ea05 to ba2ea39 Compare July 12, 2026 05:36
backryun and others added 4 commits July 12, 2026 15:00
…cycle

Restore live/GitHub auto-merge for Codex catalogs, drop models via
explicit denylist (GPT-5.4 family), and run scrub+live re-sync once on
first-start, app upgrade, or setup completion. Success log:
kill deprecated models complete.
Expose remote-only Codex models without dropping user custom entries, and complete lifecycle revalidation only after a successful internal sync. Keep credentialed self-fetches pinned to the active dashboard listener.
@backryun
backryun force-pushed the feat/gpt-5.6-providers branch from ba2ea39 to a4fd0ff Compare July 12, 2026 06:01
@diegosouzapw
diegosouzapw merged commit 67a0b99 into diegosouzapw:release/v3.8.47 Jul 12, 2026
3 checks passed
@diegosouzapw

Copy link
Copy Markdown
Owner

Merged — GPT-5.6 sol-terra provider work, re-synced clean onto the current tip (646/646 tests green). Thanks! (Remaining red checks are unrelated pre-existing base-reds on the release tip: openadapter live-catalog + a stale eslint suppression.)

@backryun
backryun deleted the feat/gpt-5.6-providers branch July 12, 2026 06:51
diegosouzapw added a commit that referenced this pull request Jul 13, 2026
diegosouzapw added a commit that referenced this pull request Jul 13, 2026
@diegosouzapw diegosouzapw mentioned this pull request Jul 28, 2026
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
* feat(providers): add GPT-5.6 model family

* fix(chatgpt-web): resume temporary chat handoffs

* fix(codex): auto-merge discovery, filter denylist, revalidate on lifecycle

Restore live/GitHub auto-merge for Codex catalogs, drop models via
explicit denylist (GPT-5.4 family), and run scrub+live re-sync once on
first-start, app upgrade, or setup completion. Success log:
kill deprecated models complete.

* fix(codex): preserve live catalog reconciliation

Expose remote-only Codex models without dropping user custom entries, and complete lifecycle revalidation only after a successful internal sync. Keep credentialed self-fetches pinned to the active dashboard listener.

---------

Co-authored-by: backryun <backryun@daonlab.local>
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
* feat(providers): add GPT-5.6 model family

* fix(chatgpt-web): resume temporary chat handoffs

* fix(codex): auto-merge discovery, filter denylist, revalidate on lifecycle

Restore live/GitHub auto-merge for Codex catalogs, drop models via
explicit denylist (GPT-5.4 family), and run scrub+live re-sync once on
first-start, app upgrade, or setup completion. Success log:
kill deprecated models complete.

* fix(codex): preserve live catalog reconciliation

Expose remote-only Codex models without dropping user custom entries, and complete lifecycle revalidation only after a successful internal sync. Keep credentialed self-fetches pinned to the active dashboard listener.

---------

Co-authored-by: backryun <backryun@daonlab.local>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants