fix: stabilize model catalogs and selector availability - #1240
Open
eddieparc wants to merge 5 commits into
Open
Conversation
Restore cached provider metadata without lossy regrouping, serve stale real catalogs when refresh fails, and expand the offline Cursor catalog so effort cycling and model pattern resolution remain available.
Cycle All, Favorites, By Model, and configured Narrowed views; drill into provider lanes for duplicate model ids; and persist expiring access-denied marks so deterministic subscription or policy failures disappear from the picker until they recover.
Keep the four cursor-grok-4.6 fast variants in the offline catalog so configured favorites and OmO agent mappings resolve without startup warnings when the live probe is unavailable.
Deduplicate concurrent initial reads so a constructor prefetch and an immediate 403 mark cannot race stale disk state back over the in-memory availability record.
Clear loaded marks synchronously and persist in the background so model availability recovers immediately without inserting an await into AgentSession's message-settlement ordering.
Contributor
Author
|
All required checks are green after rerunning the unrelated flaky footer-data-provider polling shard (15 successful, 1 neutral/skipped). Local check/build, focused tests, Senpi QA channels, real OmO startup, and xterm-rendered model-selector QA are also complete. Ready for maintainer merge; the author account does not have upstream merge permission. |
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
/modelcatalog views for All, Favorites, By Model, and configured Narrowed scopes, with provider drill-down for duplicate model idsWhy
The cached Cursor catalog was re-normalized from already-grouped ids, which discarded
thinkingLevelMapandcompat.cursorReasoning. As a result, Shift+Tab effort cycling stopped working after a cache load. When live probing failed, the minimal offline catalog also omitted model ids used by OmO defaults and favorites, producingNo models match patternstartup warnings.Separately,
/modelmixed equivalent models from different providers into one flat list and continued to show models that had deterministically failed with HTTP 403 or policy acknowledgement errors.Validation
bun run checkbun run buildpackages/coding-agentVitest suite--list-modelssmoke with the patched runtimeBehavioral details
Summary by cubic
Stabilizes Cursor model catalogs so reasoning metadata and real model lists survive reloads and failures, and makes
/modelhide models that deterministically fail until they recover.thinkingLevelMapandcompat.cursorReasoning; stale real catalogs serve when refresh fails; the offline catalog now covers current Cursor families including Grok fast ids./modelcycles All, Favorites, By Model, and configured Narrowed views; equivalent ids across providers group into one row and drill into provider choices with Enter/Escape.Written for commit 9c8b633. Summary will update on new commits.