Skip to content

fix(gui): allow hidden models in Combo selectors - #7195

Closed
xianhongtao wants to merge 173 commits into
lidge-jun:devfrom
xianhongtao:fix/combo-model-picker-visibility
Closed

xianhongtao wants to merge 173 commits into
lidge-jun:devfrom
xianhongtao:fix/combo-model-picker-visibility

Conversation

@xianhongtao

@xianhongtao xianhongtao commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Make it easier to use Combos to organize and simplify the model list exposed to clients.

Users may want to expose a few named Combos while hiding their underlying provider models to keep the client model picker tidy. Previously, hiding a provider model also removed it from the Combo target picker, forcing users to make it visible again before adding it to a Combo.

This PR separates external model visibility from internal Combo configuration:

  • Include hidden models in Combo target selectors and JEV decision-model suggestions.
  • Keep external visibility unchanged when a hidden model is selected or saved in a Combo.
  • Preserve existing disabled-provider, decision-service, and recursion restrictions.
  • Bump the Combo workspace cache version to avoid reusing previously filtered model lists.
  • Add regression tests and update the Combo documentation across locales.

Users can now keep their client-facing model list focused on Combos while freely selecting the underlying models when configuring them.

Verification

Passed:

  • GUI: bun test tests/combo-capability-hidden-targets.test.tsx tests/page-loading-contract.test.tsx — 30 passed, 0 failed.
  • GUI: bun run build
  • Repository root: bun run typecheck
  • Repository root: bun run structure:check
  • Documentation: bun install --frozen-lockfile and bun run build
  • git diff --check

Regression coverage includes hidden-model selection and saving, all-hidden catalogs, old-cache isolation, capability metadata, and JEV decision-model suggestions.

Validation was scoped to focused regression tests, type checking, and builds for this GUI-only behavior change. The full repository test suite was not run.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs

Summary by CodeRabbit

  • New Features
    • Combo model selectors now include hidden and disabled models, allowing them to be selected without changing their external visibility.
    • Target selection continues to exclude disabled providers, nested combos, and JEV providers reserved for the decision service.
  • Documentation
    • Updated the Combo guides to clarify model visibility and target-selection behavior.

Review readiness checklist

This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:

  • Required local validation passed; commands, results, and any full-suite exception are documented.

  • I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).

  • I resolved all correct Codex and CodeRabbit findings.

  • My PR is ready for review.

lidge-jun and others added 30 commits August 25, 2026 19:10
merge dev into preview for the v2.33.0-preview.20260825 release (api-usage oracle fix)
…w-2340

[WRONG BRANCH] release: promote dev to preview for v2.34.0-preview.20260827
…w-2350

[WRONG BRANCH] promote dev onto preview for v2.35.0-preview
…w-23600829

[WRONG BRANCH] release: v2.36.0-preview.20260829
`preview` carries its own release-bump commits (`release: v2.36.0-preview.20260829`), which
are not on `dev`, so the promotion cannot fast-forward: `package.json` is the only conflicting
path. Resolved to the version this train publishes, `2.36.0-preview.20260830`, which moves the
`preview` channel forward from the 20260829 tip.

Every other path takes `dev` (`bb6a6fbdf`) unchanged.
…w-23600830

[WRONG BRANCH] promote dev onto preview for v2.36.0-preview.20260830
…w-23800831

[WRONG BRANCH] promote dev onto preview for v2.38.0-preview.20260831
[WRONG BRANCH] promote dev onto preview for v2.39.0-preview.20260901
…w-24000902

release: promote dev to preview for v2.40.0-preview.20260902
…rkflow call (lidge-jun#3262)

Both v2.40.0 release dispatches (33615174183 preview, 33615177849 main) died
at startup_failure: a workflow_call cannot grant its callee more than the
calling job holds, and dev-version-bump.yml's job declares contents+pull-
requests write. lidge-jun#3129 wired the call but never dispatched a release, so this
is its first live run. The caller job now declares exactly the callee's two
permissions; no other job in release.yml gains anything.

Co-authored-by: jun <jun@lidge.dev>
(cherry picked from commit 7ce0ba5)
…w-relfix

release: carry the release.yml permissions fix onto preview for v2.40.0-preview.20260902
Brings the reviewed dev head (81a1fc1) onto preview. The only conflict is
package.json's version, resolved to the preview channel's next version rather
than to either side: preview carried 2.40.0-preview.20260902 and dev carries
2.41.0, and neither is what this publish is.

The 37-commit delta since v2.40.0 is reviewed per-commit in
devlog/_plan/260903_muse_release_train/011_review_ledger.md.
…w-2410-v2

[WRONG BRANCH] release: v2.41.0-preview.20260903
…w-2410-v3

[WRONG BRANCH] release: refresh preview onto the audit-clean dev head for v2.41.0-preview.20260903
v2.41.0 published from main while this promotion was in flight, so the preview
line has to move past it: a 2.41.0-preview version is now BEHIND a released
one, which tests/release-version-line.test.ts refuses and npm would refuse
after it.

dev moved to 2.42.0 in lidge-jun#3354, the automatic post-release bump. Preview follows
the same line at 2.42.0-preview.20260903, which is the conflict resolution
here: neither side's value, because neither is what this publish is.

Also brings the three CI timing-flake fixes from lidge-jun#3351, which is what preview
CI failed on twice at 491ffcf.

Preflight: 2.42.0-preview.20260903 unpublished on npm, no v2.42.0* tag, no
GitHub release, and it moves preview forward from 2.40.0-preview.20260902.
…w-2410-v4

[WRONG BRANCH] release: v2.42.0-preview.20260903
…w-2420-badges

[WRONG BRANCH] release: promote dev onto preview for the main-account badge fix
…view

preview had diverged from main: it carried 28 merge commits main did not have,
while main carried 23 preview did not, so preview could not fast-forward.
The divergence was history only - the sole CONTENT difference between the two
branches was the package.json version line.

This merge takes main (48f8186, the v2.42.0 release commit) into preview and
resolves the tree to main's content, so preview now matches the released tree
exactly apart from its own prerelease version line.

The version could not stay at 2.42.0-preview.20260903: v2.42.0 has published,
and compareReleaseTags ranks that prerelease BEHIND its own stable release
(-1), which is what tests/release-version-line.test.ts fails on. preview opens
the next prerelease line at 2.43.0-preview.20260904, matching dev's 2.43.0.
…w-2430

[WRONG BRANCH] chore(release): promote main v2.42.0 onto preview and open 2.43.0-preview
lidge-jun and others added 9 commits October 11, 2026 01:37
[WRONG BRANCH] release: 2.84.0
…-2.86.0

[WRONG BRANCH] release: promote dev 494c50d to main as 2.86.0
Use the complete management catalog for Combo model selection independently of external model visibility. Bump the workspace cache version, cover hidden model selection and saving, and synchronize Combo documentation.
Copilot AI balanced review requested due to automatic review settings October 15, 2026 13:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: lidge-jun/opencodex/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 2083e9c6-7974-4c3d-9b8a-31f9a7aa5f49
📥 Commits

Reviewing files that changed from the base of the PR and between 60bf4c7 and 110a13f.

📒 Files selected for processing: 12
  • docs-site/src/content/docs/fr/guides/combos.md
  • docs-site/src/content/docs/guides/combos.md
  • docs-site/src/content/docs/ja/guides/combos.md
  • docs-site/src/content/docs/ko/guides/combos.md
  • docs-site/src/content/docs/ru/guides/combos.md
  • docs-site/src/content/docs/tr/guides/combos.md
  • docs-site/src/content/docs/zh-cn/guides/combos.md
  • docs-site/src/content/docs/zh-tw/guides/combos.md
  • gui/src/pages/Combos.tsx
  • gui/tests/combo-capability-hidden-targets.test.tsx
  • gui/tests/page-loading-contract.test.tsx
  • structure/dashboard-and-usage.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📝 Walkthrough

The Combo workspace now includes disabled catalog models in its internal selectors. The workspace cache key changes to v2. Tests and localized guides describe hidden-model selection, target exclusions, and cache behavior.

Changes: Combo hidden-model selection

Layer / File(s) Summary
Workspace selection and supporting updates
gui/src/pages/Combos.tsx, gui/tests/*, structure/dashboard-and-usage.md, docs-site/src/content/docs/*/guides/combos.md
The workspace model list includes valid non-combo catalog rows, including disabled models, and the cache key changes to v2. Tests cover hidden-model selection, saving, JEV suggestions, and cache behavior. The guides describe hidden-model selection and target-selector exclusions. The routingQuota documentation is reflowed without a described behavior change.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 110a1

Hidden models become selectable in Combo pickers without changing their external visibility. No concrete merge-blocking risk was identified in the supplied changes.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files. (9 skipped: 9 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: allowing hidden models in Combo selectors. It matches the implementation, tests, and documentation updates.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files. (9 skipped: 9 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@xianhongtao xianhongtao reopened this Oct 15, 2026
@xianhongtao
xianhongtao changed the base branch from main to dev October 15, 2026 13:30
@xianhongtao
xianhongtao marked this pull request as draft October 15, 2026 13:30
@xianhongtao
xianhongtao marked this pull request as ready for review October 15, 2026 13:31
@github-actions

Copy link
Copy Markdown
Contributor

✅ Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the bug Something isn't working label Oct 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • wrong branch ancestry; rebase onto the latest dev. UI screenshot required.

What to do

  • Rebase onto the current dev branch instead of opening from main.
  • Add a screenshot of the UI change to the PR description.
  • Tick all four boxes in the PR description once you're done (currently 0/4).

Review readiness checklist

  • ⬜ Required local validation passed; commands, results, and any full-suite exception are documented.
  • ⬜ I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
  • ⬜ I resolved all correct Codex and CodeRabbit findings.
  • ⬜ My PR is ready for review.

0/4 boxes ticked.

This pull request is being kept as a draft automatically. Once every issue above is resolved, it will be marked ready for review again.
@xianhongtao Tick the boxes once required local validation has passed with commands, results, and any full-suite exception documented, your branch is on the latest dev commit, and every correct Codex and CodeRabbit finding is resolved.

@lidge-jun

Copy link
Copy Markdown
Owner

Being carried into #7223 with your authorship preserved; this PR will be closed when the bundle lands.

lidge-jun added a commit that referenced this pull request Oct 16, 2026
…d Gentle Shell (#7195, #6767, #6691, #7213) (#7223)

Carried from #7195, #6767, #6691, #7213 (one commit per source PR, original authors preserved). #4649 held for security review. Security review follow-up: the Windows picker relay binds only when picker activation or selected-profile recovery needs it.

Remote validation (hosted GitHub Actions unreliable; local tests not run by maintainer rule): union candidate codex/prr-integ-8 = dev c03eafd + #7224 + #7223 + #7225 + #7217 + #6454 + #6594 plus a Gentle Shell import-cycle fix (integ-9 e1f289c: typecheck + full suite on mini (Windows) and lidge (Linux), compared with the same host's dev runs) and a test-only Windows path-escaping fix for the reasoning-retention routing test (integ-10 0d4cba7, tree a2b309a: that file re-run on both hosts).

Co-authored-by: xianhongtao <xianhongtao2022@outlook.com>
Co-authored-by: 김민우 <minwokim@gmarket.com>
Co-authored-by: hyuntae park <bluestar218ht@gmail.com>
Co-authored-by: randalo-trc <randalo@trociuk.com>
@lidge-jun

Copy link
Copy Markdown
Owner

Landed on dev in a8d1bb8 via #7223 (your change is its own commit in that bundle, and the squash keeps your authorship as Co-authored-by). Thank you!

@lidge-jun lidge-jun closed this Oct 16, 2026
lidge-jun added a commit that referenced this pull request Oct 16, 2026
…7252)

The carry-attribution window is capped at 80 characters and could cut a reference in half. The #7223 subject "carry ... (#7195, #6767" was read as #676, an unrelated PR, so the hygiene gate demanded a co-author trailer for the wrong person (seen on the 2.87.0 promotion #7249). When no sentence boundary falls inside the window, the window now finishes a number that started before the cap. Sentence and newline bounds, qualified-reference handling, and the exclusion of references that start after the cap are unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants