Skip to content

feat(gui): Combos workspace for multi-provider virtual models - #148

Closed
Wibias wants to merge 10 commits into
lidge-jun:mainfrom
Wibias:feat/gui-combos-workspace
Closed

Wibias wants to merge 10 commits into
lidge-jun:mainfrom
Wibias:feat/gui-combos-workspace

Conversation

@Wibias

@Wibias Wibias commented Jul 18, 2026 •

Copy link
Copy Markdown
Contributor

Depends on

#147 must merge first (combo runtime API).

Preferred visual merge order: #139 → #147 → this PR. Combos imports styles-provider-workspace.css (shared pwi-* chrome from the Providers workspace). That file is vendored here so CI builds before #139 lands; once #139 is on main, it is the same stylesheet.

Until #147 lands, GitHub will also show those backend commits here (same fork stacking vs main). After #147 merges, rebase this branch onto main and the diff shrinks to the GUI commits.

Summary

Screenshots

04-empty 03-add-modal 01-overview 02-detail

Test plan

Wibias added 8 commits July 18, 2026 04:11
Introduce combo/<id> groups with failover and sticky round-robin, per-target cooldowns, hop-on-retryable failures, catalog exposure, and /api/combos CRUD (issue #133).
Add e2e coverage (403 then 200) and a runtime flowchart for issue #133.
Add per-combo defaultEffort (default medium), apply when the request omits reasoning.effort, and advertise it on combo catalog rows for issue #133 / PR #147.
Only inject combo defaultEffort when supportedLadderFor exposes a non-empty ladder; clamp to a supported rung, never force effort onto no-reasoning models.
Update applyComboDefaultEffort call sites to pass the resolved route and assert skip when the model has no effort control.
Add Combos dashboard CRUD (rail/overview/detail/modal) against /api/combos without pulling the Providers workspace redesign.
@Wibias
Wibias force-pushed the feat/gui-combos-workspace branch from 5a7b7c7 to be85791 Compare July 18, 2026 04:35
Wibias added 2 commits July 18, 2026 06:45
Import the shared pwi-* stylesheet so Combos matches the providers
workspace look, and add missing common.discard / common.saving i18n keys
that blocked the GUI TypeScript build.
Combos was squeezed into the default 980px main-inner after the clean rebuild. Re-apply main-inner--providers so the rail/detail shell fills the viewport again.
@Wibias
Wibias marked this pull request as ready for review July 18, 2026 07:21
@lidge-jun

Copy link
Copy Markdown
Owner

The Combos GUI workspace has landed on dev with your authorship preserved — absorbed and adapted to the combo runtime that shipped there:

  • 0383632f + 1e859672 (author @Wibias): the workspace surface (ComboWorkspace, Combos page, workspace data helpers, icons, styles, full de/en/ko/zh i18n) reconstructed from this PR.
  • ae7e5719 (Co-authored-by @Wibias): API alignment with the landed backend — GET/PUT/DELETE /api/combos upsert contract, strict validation parity (zero-enabled rejection, reserved combo/ namespace, duplicate targets), legacy-provider preservation in the validation map, and the mobile double-scroll fix found during render QA.

Notes on scope: the backend files in this PR were a variant of #147, which had already been rebuilt on dev as a reviewed 10-commit stack (see #147/#133), so only the GUI surface was absorbed. The 3,207-line vendored provider-workspace stylesheet wasn't needed — dev's landed styles cover it, with 15 compatibility classes added.

Verified: tsc, GUI lint + i18n lint + build, full suite 3,006 tests green, and screenshot QA across empty/detail/modal/error/mobile states. This completes the GUI follow-up promised on #133. Closing in favor of the dev-landed commits — ships with the next release. Thanks for the complete workspace design!

@lidge-jun lidge-jun closed this Jul 18, 2026
lidge-jun pushed a commit that referenced this pull request Jul 18, 2026
Reconstructs the GUI components, view-model helpers, styles, icons, locale blocks,
and focused helper tests from community PR #148 on current dev.

Source: PR #148
Source head: 9fed606
lidge-jun pushed a commit that referenced this pull request Jul 18, 2026
Wires the reconstructed Combos workspace from community PR #148 into the current
dashboard page registry and global style graph without regressing provider subroutes.

Source: PR #148
Source head: 9fed606
lidge-jun added a commit that referenced this pull request Jul 18, 2026
Adapts the PR #148 GUI to the reviewed combo stack already landed on dev: strict
PUT validation, mixed disabled-member handling, deterministic SWRR wording,
non-nesting catalog rows, fail-closed availability, and ordered attempt attribution.

Source: PR #148
Source head: 9fed606

Co-authored-by: Wibias <37517432+Wibias@users.noreply.github.com>
agentHits pushed a commit to agentHits/opencodex that referenced this pull request Sep 17, 2026
Reconstructs the GUI components, view-model helpers, styles, icons, locale blocks,
and focused helper tests from community PR lidge-jun#148 on current dev.

Source: PR lidge-jun#148
Source head: 9fed606
agentHits pushed a commit to agentHits/opencodex that referenced this pull request Sep 17, 2026
Wires the reconstructed Combos workspace from community PR lidge-jun#148 into the current
dashboard page registry and global style graph without regressing provider subroutes.

Source: PR lidge-jun#148
Source head: 9fed606
agentHits pushed a commit to agentHits/opencodex that referenced this pull request Sep 17, 2026
Adapts the PR lidge-jun#148 GUI to the reviewed combo stack already landed on dev: strict
PUT validation, mixed disabled-member handling, deterministic SWRR wording,
non-nesting catalog rows, fail-closed availability, and ordered attempt attribution.

Source: PR lidge-jun#148
Source head: 9fed606

Co-authored-by: Wibias <37517432+Wibias@users.noreply.github.com>
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.

2 participants