feat(studio): surface active eval jobs as a dedicated table - #1397
feat(studio): surface active eval jobs as a dedicated table#1397walston wants to merge 1 commit into
Conversation
Signed-off-by: Nathan Walston <nwalston@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughWalkthroughThe Evaluations tab now displays nonterminal evaluator jobs in a persistent section. Evaluations and experiments remain selectable views. Evaluation and job rows can navigate to matching evaluator job details. ChangesEvaluator job navigation
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
|
Can you add some margin between the tables? 24px maybe? Is it possilble to render the table without the footer if there is only 1 page of jobs? |
Screen.Recording.2026-08-19.at.09.01.58.mov
Summary
On the agent-detail Evaluations tab, active (running) evaluator jobs were hidden behind a segmented-control tab, so you had to toggle away from your results to see what was still running. This breaks running jobs out into their own always-visible "Active jobs" section pinned above the control, and makes the underlying job reachable from both the active-jobs and completed-evaluations tables. The segmented control now toggles only
Completed Evaluations(default) /Experiments.Related Issue
ASTD-437 — parent epic ASTD-360 "Agent evals to experiments".
Changes
EvaluationsTab.tsx: removedActive Jobsfrom the segmented control (VIEW_ITEMS); default view is nowCompleted Evaluations. RenderJobsTableas a conditional section with an "Active jobs" header above the control, filtered to non-terminal jobs via the canonicalPlatformJobTerminalStatuses; renders nothing (no empty state) when the filter leaves 0 rows. Pass the full jobs list toEvaluationsTable.JobsTable.tsx: added a row-actions overflow menu with View job → the job detail view (evalJobDetailRoute), alongside the existing row-click. (Merged cleanly with the new Duration column from feat(evaluator): write both eval and publish durations to intake #1339.)EvaluationsTable.tsx: added ajobsprop and a reverse job↔evaluation join (job.evaluationName → job); completed rows expose the same View job overflow action, shown only when a producing job is found, so the underlying job stays reachable after publish.No backend dependency: the evaluation→job link reuses the jobs list already fetched by the tab.
Type of Change
Quality Gates
Verification
Signed-off-by:traileruv run pre-commit run -apasses, or any blocked checks are identified belowTargeted validation (from
web/):eslint --report-unused-disable-directives --max-warnings 0on the 3 changed files — passed.prettier --checkon the changed files — passed (after--write).pnpm --filter nemo-studio-ui typecheck(tsc --noEmit) — passed (exit 0).uv run pre-commit run --files <3 changed files>— passed (UI lint-staged + copyright headers + merge-conflict check; Python/Helm/uv hooks skipped as not applicable). Repo-wide-anot run to avoid touching unrelated files.email-security-triage-dwvz8y): segmented control shows onlyCompleted Evaluations(default) +Experiments; no "Active jobs" section when no non-terminal jobs exist; each completed row's overflow → View job navigates to the producing job detail (job name distinct from the evaluation name, confirming the reverse join);Experimentstoggle still renders the experiments table.Summary by CodeRabbit