Skip to content

feat(studio): Filtering for ExperimentGroup DataView#243

Merged
nakolean merged 6 commits into
mainfrom
nkolean/filter-group-experiment
Jun 10, 2026
Merged

feat(studio): Filtering for ExperimentGroup DataView#243
nakolean merged 6 commits into
mainfrom
nkolean/filter-group-experiment

Conversation

@nakolean

@nakolean nakolean commented Jun 9, 2026

Copy link
Copy Markdown
Contributor
Screen.Recording.2026-06-09.at.2.48.07.PM.mov

Summary by CodeRabbit

  • New Features

    • Advanced date/time filtering for experiment columns (Name, Created, Updated At).
    • Experiment-group view now applies the active DataView filter criteria for more accurate results.
    • Default column visibility streamlined to hide non-essential columns.
  • Bug Fixes / Improvements

    • Text filter input now reliably reflects external clear/reset actions and uses a debounced input for smoother typing behavior.
    • Debounce default standardized across inputs for consistent responsiveness.

@nakolean nakolean requested review from a team as code owners June 9, 2026 20:33
@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0e7ca003-b907-45b8-97f4-5f1fd47076ba

📥 Commits

Reviewing files that changed from the base of the PR and between 5c03dff and 261bfa2.

📒 Files selected for processing (2)
  • web/packages/common/src/components/DataView/FilterPanel/TextFilter.tsx
  • web/packages/common/src/components/DataView/internal/DebouncedTextInput.tsx
💤 Files with no reviewable changes (2)
  • web/packages/common/src/components/DataView/internal/DebouncedTextInput.tsx
  • web/packages/common/src/components/DataView/FilterPanel/TextFilter.tsx

📝 Walkthrough

Walkthrough

Typed DataView state is added and experiment list queries merge the DataView's API filter with an enforced experiment_group_id. Table columns were refactored into a useCallback, timestamp columns use dateTimeFilter, Model Names rendering adjusted, and shared text-filter debouncing centralised via DebouncedTextInput.

Changes

ExperimentGroupDataView Filtering and Column Configuration

Layer / File(s) Summary
DebouncedTextInput default and types
web/packages/common/src/components/DataView/internal/DebouncedTextInput.tsx
Import DEFAULT_DEBOUNCE_MS; update DebouncedTextInputProps.debounce type to `typeof DEFAULT_DEBOUNCE_MS
TextFilterControl uses DebouncedTextInput
web/packages/common/src/components/DataView/FilterPanel/TextFilter.tsx
Replace local debounce/state with DebouncedTextInput; bind input value to column.getFilterValue() and call column.setFilterValue on debounced changes (empty → undefined).
Import updates for ExperimentGroupDataView
web/packages/studio/src/components/dataViews/ExperimentGroupDataView/index.tsx
Add dateTimeFilter import, include ExperimentFilter/ListExperimentsSort types, and add useCallback to React imports.
DataView state typing and column visibility
web/packages/studio/src/components/dataViews/ExperimentGroupDataView/index.tsx
Type useStudioDataViewState as <ExperimentFilter> and set columnVisibility to hide created_by and updated_at by default.
API filter merge and column refactor
web/packages/studio/src/components/dataViews/ExperimentGroupDataView/index.tsx
Merge apiFilter.filter with experiment_group_id in useListExperiments; refactor makeColumns into a typed useCallback, add dateTimeFilter to Name/Created/Updated columns, adjust Model Names rendering, and add a filter-only updated_at accessor column.

Possibly related PRs

Suggested reviewers

  • walston
  • steramae-nvidia
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Title accurately summarizes the main change: adding filtering functionality to the ExperimentGroup DataView component.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch nkolean/filter-group-experiment

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

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@web/packages/studio/src/components/dataViews/ExperimentGroupDataView/index.tsx`:
- Around line 55-59: The dataView initialization hides only updated_at but not
created_by, so the created_by filter never appears; update the
useStudioDataViewState call (symbol: useStudioDataViewState<ExperimentFilter>)
to include created_by in columnVisibility (e.g., columnVisibility: { created_by:
false, updated_at: false }) and also ensure the columns definition used for this
DataView (the columns/columnsDefinition near the block around lines 194-206)
includes a hidden/filter-only column entry for created_by matching the same key
so the filter control is rendered but the column stays hidden.
- Line 22: The import line brings in React types ComponentProps and FC as
runtime imports; change it to use TypeScript's type-only import syntax by
importing ComponentProps and FC with "import type" (e.g., replace the existing
import that mentions ComponentProps and FC so the type-only symbols are imported
via import type) to satisfy TS rules and avoid bundling types at runtime.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 9834126d-5e23-480b-a9ad-b0958fdbdd6c

📥 Commits

Reviewing files that changed from the base of the PR and between fb08b43 and 5c03dff.

📒 Files selected for processing (1)
  • web/packages/studio/src/components/dataViews/ExperimentGroupDataView/index.tsx

Comment thread web/packages/studio/src/components/dataViews/ExperimentGroupDataView/index.tsx Outdated
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 19024/25079 75.9% 62.4%
Integration Tests 12032/23851 50.4% 25.6%

@nakolean nakolean force-pushed the nkolean/filter-group-experiment branch from 5c03dff to 08dc67f Compare June 9, 2026 20:55
@rrhyne

rrhyne commented Jun 9, 2026

Copy link
Copy Markdown

EDIT: IGNORE, these are violating existing studio patterns

Looking good! Let's make these changes:

  • Reduce the space between the filter label and the text input
  • The applied filters and the clear filter button should be on the same line as the filters button
  • Let's add the count on the left both when filtered and when not filtered as per the designs

@shanaiabuggy shanaiabuggy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Gorg! Left 1 comment inline.

Also nit: Can we add placeholders to the text filters? Like "Filter by agent name"

@nakolean

Copy link
Copy Markdown
Contributor Author

Added search bar, moved name filter to search. Used $like so it will substring search instead of exact match filtering.

Screen.Recording.2026-06-10.at.10.36.31.AM.mov

nakolean added 6 commits June 10, 2026 11:13
Signed-off-by: Nicholas Kolean <nakolean@gmail.com>
Signed-off-by: Nicholas Kolean <nakolean@gmail.com>
Signed-off-by: Nicholas Kolean <nakolean@gmail.com>
Signed-off-by: Nicholas Kolean <nakolean@gmail.com>
Signed-off-by: Nicholas Kolean <nakolean@gmail.com>
…ate DebouncedTextInput to use common DEFAULT_DEBOUNCE_MS timing, increase DEFAULT_DEBOUNCE_MS from 300 to 500

Signed-off-by: Nicholas Kolean <nakolean@gmail.com>
@nakolean nakolean force-pushed the nkolean/filter-group-experiment branch from 261bfa2 to fefb014 Compare June 10, 2026 17:14
@nakolean nakolean added this pull request to the merge queue Jun 10, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 10, 2026
@nakolean nakolean added this pull request to the merge queue Jun 10, 2026
Merged via the queue into main with commit a14e2a7 Jun 10, 2026
99 of 103 checks passed
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.

4 participants