Skip to content

feat(dashboard): filter models page by enabled or disabled status - #1133

Open
SantiagoDePolonia wants to merge 1 commit into
mainfrom
feat/models-status-filter
Open

SantiagoDePolonia wants to merge 1 commit into
mainfrom
feat/models-status-filter

Conversation

@SantiagoDePolonia

@SantiagoDePolonia SantiagoDePolonia commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Part of #1104 (item 2).

Adds an All / Enabled / Disabled control next to the Models page search.

  • Combines with category tabs, text search, provider grouping and batched rendering; the count shows "N / total" while any filter is active.
  • A row's status follows its access toggle: effective access for models (restricted counts as enabled), the enabled flag for virtual models.
  • Hiding unwanted models = disable them and pick "Enabled"; no separate per-model hide state.

Summary by CodeRabbit

  • New Features
    • Added a model status filter with options to show all, enabled, or disabled models.
    • Model counts and no-match messages now reflect both text and status filters.
    • Added accessible filter labeling in English, German, Polish, and Simplified Chinese.
  • Tests
    • Added coverage for status filtering and its interaction with text filtering.

@coderabbitai

coderabbitai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 250fe0e1-5450-49a8-8793-15f3274c4d56
📥 Commits

Reviewing files that changed from the base of the PR and between 37e293c and c6463e6.

📒 Files selected for processing (8)
  • web/dashboard/messages/de.json
  • web/dashboard/messages/en.json
  • web/dashboard/messages/pl.json
  • web/dashboard/messages/zh-CN.json
  • web/dashboard/src/pages/models/ModelsPage.svelte
  • web/dashboard/src/pages/models/displayRows.js
  • web/dashboard/src/pages/models/virtualModels.svelte.js
  • web/dashboard/tests/models-virtual-models.test.js

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


📝 Walkthrough

Walkthrough

The models page now filters model rows by enabled or disabled status, in addition to its existing text filter. The page updates filtered counts and no-match messaging based on either filter. New filter labels are provided in English, German, Polish, and Chinese.

Changes

Model Status Filtering

Layer / File(s) Summary
Display-row status logic and tests
web/dashboard/src/pages/models/displayRows.js, web/dashboard/tests/models-virtual-models.test.js
Adds enabled-state evaluation for model and alias rows, status-based filtering, and tests for status filtering and its combination with text filtering.
Virtual model store filtering
web/dashboard/src/pages/models/virtualModels.svelte.js
Adds status filter state and applies it after text filtering. Combined filter state controls display grouping and row toggle state.
Models page control and translations
web/dashboard/src/pages/models/ModelsPage.svelte, web/dashboard/messages/{en,de,pl,zh-CN}.json
Adds all, enabled, and disabled status options to the toolbar. Filtered counts and no-match messaging account for either filter. Adds labels in four languages.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant ModelsPage
  participant VirtualModelsStore
  participant displayRowEnabled
  ModelsPage->>VirtualModelsStore: Set statusFilter from toolbar selection
  VirtualModelsStore->>VirtualModelsStore: Apply text filter to display rows
  VirtualModelsStore->>displayRowEnabled: Check enabled state for each row
  displayRowEnabled-->>VirtualModelsStore: Return row enabled state
  VirtualModelsStore-->>ModelsPage: Provide status-filtered rows and active-filter state
Loading

Suggested reviewers: weselben

Merge Risk: ⚪ Minimal · up to c6463

The Enabled and Disabled controls appear to filter the displayed models consistently. No identified issue blocks merging after normal checks.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the Models page enabled/disabled status filter.
Description check ✅ Passed The description explains the new status control, how it combines with existing filters, how counts behave, and how model status is determined. It does not use the template’s section heading, but the r…
Docstring Coverage ✅ Passed Docstring coverage is 80.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 3 files. (5 skipped: 5 u…
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.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · 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

A rabbit taps the filter bar,
“Enabled, disabled—near or far.”
Rows hop into tidy view,
All stays ready to come through.
Four tongues greet the models there,
While carrots wait beside the chair.

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

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@greptile-apps

greptile-apps Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

[Medium risk] Adds status filter to the models dashboard page.

The PR should not merge until provider links open the full model list regardless of an earlier status choice.

Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Overview provider link] --> B[Set provider search]
  B --> C[Models page]
  D[Earlier status choice] --> C
  C --> E[Search, then status filter]
  E --> F[Some provider models hidden]
Loading

Reviews (1) · Last reviewed commit: "feat(dashboard): filter models page by e..."

options={statusOptions}
value={virtualModels.statusFilter}
ariaLabel={m.models_status_filter_label()}
onchange={(value) => (virtualModels.statusFilter = value)}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Provider link hides models

If someone selects Disabled, leaves the Models page, and then clicks a provider’s model count on Overview, virtualModels.statusFilter stays set to Disabled. The provider link sets a search but does not clear that choice, so the page hides the provider’s enabled models and may say no models match. Clear the saved status choice when opening the provider’s model list.

@greptile-apps

greptile-apps Bot commented Oct 4, 2026

Copy link
Copy Markdown

RetriggerTREX TREX

No flows tested, and faced 3 obstacles.

Obstacles faced

  • The browser lacks an admin session; prepare a signed-in session without exposing the master key.
  • The dashboard asks for a master key, so the tester cannot reach the Models toolbar.
  • The dashboard remains locked, so the tester cannot search Models.

To reduce obstacles, configure your TREX environment.

This branch has not been deployed

No deployments
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