Repository navigation
FEAT: Add dataset catalog navigation and cards - #3071
Open
Julio César Suástegui (juliosuas) wants to merge 5 commits into
Open
Julio César Suástegui (juliosuas) wants to merge 5 commits into
Julio César Suástegui (juliosuas) wants to merge 5 commits into
Conversation
Author
|
@microsoft-github-policy-service agree |
Show datasets loaded in memory as cards from GET /api/datasets, with name search, facets, and sort kept in the query string. Selection uses the shared query builder for /datasets/detail?selection_key= so unnamed and special-character keys round-trip. The prompt table stays with microsoft#2745. Provider-only cards and an available-to-load view are deferred. A runtime generation change drops the previous catalog and aborts the in-flight load.
cursor
Bot
force-pushed
the
feat/2747-datasets-catalog
branch
from
October 11, 2026 12:50
abf4f01 to
03ee3d8
Compare
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Roman Lutz (romanlutz)
enabled auto-merge
October 12, 2026 04:16
This branch has not been deployed
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.
Description
Closes #2747
Summary
Adds a Datasets entry and a catalog of datasets already loaded in memory. Cards come only from
GET /api/datasets?loaded_only=true. Search, modality, harm category, the unlabeled facet, and sort stay in the query string, so Back, Forward, and refresh keep them.A card links to
/datasets/detail?selection_key=through the shared query builder inrouteParams.ts. The key stays opaque and is used only to find a row in that same catalog response. An unknown key shows a not-found state, truncated to 80 characters, and is rendered as text. This page does not list individual examples; the prompt table stays with #2745.Sort options are name A–Z, name Z–A, most examples, and fewest examples. Changing the runtime generation drops the catalog on screen and aborts the in-flight request.
Deferred
Provider-only cards and an available-to-load view are deferred.
loadedandprovider_availableremain onDatasetInfobecause the API returns them.Screenshots
Captured from commit
abf4f01a41d6a224b7fd79df8c49bc469b17da1d, using the production frontend build and the real backend catalog API with isolated, synthetic in-memory seed data. The dataset names and counts below are demonstration fixtures, not newly bundled datasets. No provider downloads or model calls were needed.Loaded dataset catalog and navigation
Six loaded datasets, including separate unnamed and literally named
__unnamed__populations. Cards show logical examples, seed pieces, objectives, stored modalities, and harm categories.Search, facets, and sorting
A filtered catalog with name search, modality, harm category, the unlabeled facet, and most-examples sorting. These selections are represented in the URL.
Dataset selection route
Opening a card uses the opaque
selection_keyquery parameter. The route shows the selected catalog summary and explicitly leaves individual examples to the later prompt-table milestone.Empty memory
The catalog stays empty when no datasets are loaded, without exposing provider-loading controls.
Mobile selection view in dark mode
The selection route at a 390 × 844 CSS-pixel viewport, with the three counts stacked vertically.
Tests and Documentation
Testing
The original validation commands are retained below, with review-time results distinguished from the original report:
npm run lint: passed during this review.npm run type-check: passed during this review.npm run test:coverage(109 suites, 2812 tests): reported in the original description; the full coverage run was not repeated during this review.PYRIT_PYTHON=python3 npm run build: retained from the original description; this Linux command was not run verbatim on Windows. The Windows production build below passed.The changed test suites were run from
frontend:Result: 8 suites passed, 230 tests passed.
Production build, with the worktree's Python environment selected from the repository root:
Result: passed. Vite emitted non-failing configuration and large-chunk warnings.
Browser checks used an isolated Chromium instance against the production build and real in-memory backend. Confirmed empty-memory rendering, catalog filters, refresh and browser Back/Forward preservation, distinct unnamed selections, special-character selection keys, and catalog-only requests without seed-page prefetch. The screenshots above document the additions; they are not a claim that all review findings are resolved.
No repository documentation or notebook files were changed. JupyText was not run for this frontend-only change.