Repository navigation
fix(web): keep large provider model catalogs responsive - #99
Merged
Merged
Conversation
Render provider model settings through the existing LegendList virtualizer instead of mounting every switch and tooltip. Keep filtering and ordering over the complete catalog, and reveal newly added custom models by index even when their rows are not mounted. Reuse the model/font picker scrolling pattern without adding a pagination workflow or dependency. The installed c1d0d29 renderer stalled for 5396 ms while mounting 1715 model rows and about 40000 DOM elements. Host samples had 62–78% idle CPU. The CPU profile attributes substantial time to scroll-area focus handling, ARIA-label handling, DOM insertion and garbage collection. Recorded the baseline profile and screenshot outside the worktree. The three ProviderModelsSection tests and two model-derivation tests passed; two existing ProviderInstanceCard static-markup assertions failed on auth/status wording because their Codex fixtures omit enabled after the fresh-default change. They are outside this rendering change and are being removed separately under the repository's test policy. The web package typecheck passed. Targeted formatting passed for the three changed files. Installed after-proof follows the merged artifact build. Refs #67 Model: openai-codex/gpt-6-astra Co-authored-by: GPT-6 Astra <noreply@openai.com>
1 of 3 tasks
2 of 3 tasks
PsychedelicShayna
added a commit
that referenced
this pull request
Oct 20, 2026
…changes (@PsychedelicShayna) Confidence: 90%. Fixes the installed #99 stale-row regression at the virtualizer invalidation boundary. Web typecheck and targeted formatting passed. The unchanged model behavior tests passed 5/5 on the integrated predecessor. Installed after-proof remains in progress; no startup or persistence changes.
This was referenced Oct 20, 2026
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.
What
Use the existing LegendList virtualizer for provider model settings instead of mounting every model switch and tooltip. Preserve full-catalog filtering, favorites, ordering, hidden preferences and custom-model reveal. No dependency, pagination workflow or provider-setting default changes.
Why
Refs #67. The installed c1d0d29 artifact mounted 1715 model rows and about 40000 DOM elements. Opening Providers produced a 5396ms renderer task; the host samples had 62–78% idle CPU. The saved CPU profile attributes substantial time to scroll-area focus/ARIA handling, DOM insertion and garbage collection.
This is confined to the model section shared by web and desktop. Mobile uses separate native settings and is unchanged; the behavior applies to every provider and local/remote environments without a contract change. Settings remain reachable and reversible; no startup or composer path changes.
Testing
vp checkandvpr typecheckpass (CI runs both; locally run only the checks for the touched scope, perAGENTS.md› Verifying) — web typecheck and scoped formatting passed; full-repo commands intentionally not run.GPT-6 Astra (openai-codex/gpt-6-astra), NeoPi harness.