Expose Unity Gateway model catalogs to Codex App - #778
Open
andy-xu-db wants to merge 5 commits into
Open
andy-xu-db wants to merge 5 commits into
andy-xu-db wants to merge 5 commits into
Conversation
…afety # Conflicts: # tests/README.md # tests/integration/README.md # tests/integration/test_ug_codex_managed_model_discovery.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Codex App starts its own app server and does not receive the catalog overrides passed by
ug codex. Successful model discovery now validates the catalog with the installed Codex binary, refreshes~/.ucode/codex-model-catalog.json, and adds itsmodel_catalog_jsonreference to shared Codex config. CLI launches retain their workspace/source-scoped catalog overrides. Managed static lists use the same stable path and retain their existing local build/validation flow.Existing custom catalogs, including Isaac's, and custom providers are preserved. Unreadable shared config is not overwritten, and a failed refresh does not replace the previous catalog file. Discovery or validation failure removes ug's shared reference; incompatible catalogs stop the launch with an actionable error. Reconfiguration and revert also clean up the reference owned by ug.
Codex loads
model_catalog_jsonwhen an app server starts. A persistent server keeps its startup list after the catalog file changes, and reconnecting does not reload it. Whenever ug adds, refreshes, or removes its shared catalog, it now reports that the connected host's app server must be restarted after active tasks finish. It does not restart automatically because that would interrupt running work. For a standalone managed daemon the command iscodex app-server daemon restart; npm/manual app servers must be restarted by the process or application that owns them.Before ug installs or updates Codex, including forwarded
ug codex update, it detaches its shared catalog reference. The next successful configure/discovery republishes it after validation. The app's gateway provider/authentication must already be configured; validation covers the host's Codex binary, not a separate desktop binary on another machine. The most recently refreshed workspace/source supplies the shared catalog.Testing
main, 771 focused Codex/catalog/agent/CLI/routing tests and 89 model-discovery/integration-contract tests passed locally.git diff --checkpassed.ug configurerun on finalbe44d393declared seven gateway models, wrote the stable shared app catalog through the public CLI, emitted the restart notice, and a real Codex 0.154.0 app-server returned exactly those seven visible picker entries in order with no native extras. The remote host has no Desktop/Electron executable, so this validates the exactmodel/listpayload consumed by the picker rather than GUI rendering.codex app-server daemon restartthen made new daemon connections return B.daemon stop/daemon restartreject an npm/manualcodex app-server --listen unix://process as unmanaged, so the instructions distinguish the two installation types.ug revertcleanup, user-setting preservation, and the restart notice after managed configuration.be44d393commit: unit and gateway API tests, every agent-launch lane, installation, workspace validation, managed Claude/Codex, both agents' smoke/full journeys, and the required e2e gate all succeeded. The managed Codex lane includes the combined independent-provider, stable app catalog, fresh app-server, revert, and restart-guidance assertions.Desktop GUI rendering and inference through the desktop app remain untested.