Skip to content

feat(studio): surface active eval jobs as a dedicated table - #1397

Open
walston wants to merge 1 commit into
mainfrom
nwalston/astd-437-surface-active-eval-jobs-as-a-dedicated-table-on-the-agent
Open

feat(studio): surface active eval jobs as a dedicated table#1397
walston wants to merge 1 commit into
mainfrom
nwalston/astd-437-surface-active-eval-jobs-as-a-dedicated-table-on-the-agent

Conversation

@walston

@walston walston commented Aug 19, 2026

Copy link
Copy Markdown
Contributor
Screen.Recording.2026-08-19.at.09.01.58.mov
corrected table padding and footer

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: removed Active Jobs from the segmented control (VIEW_ITEMS); default view is now Completed Evaluations. Render JobsTable as a conditional section with an "Active jobs" header above the control, filtered to non-terminal jobs via the canonical PlatformJobTerminalStatuses; renders nothing (no empty state) when the filter leaves 0 rows. Pass the full jobs list to EvaluationsTable.
  • 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 a jobs prop 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

  • Code change (feature, bug fix, or refactor)
  • Code change with documentation updates
  • Documentation only
  • Contributor tooling or automation
  • CI, build, or test infrastructure

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification: UI-only composition change (table layout + a navigation affordance); verified live against the running Studio surface. No behavioral contract lacked coverage that a unit test would meaningfully defend.
  • Tests not applicable — justification:
  • Documentation updated for user-visible behavior
  • Documentation not applicable — justification: no user-facing docs describe this tab's internal layout.

Verification

  • Pull request title follows the repository's Conventional Commit format
  • Every commit includes an appropriate Signed-off-by: trailer
  • uv run pre-commit run -a passes, or any blocked checks are identified below
  • Targeted tests pass, or tests are marked not applicable above
  • No secrets, API keys, or credentials are included

Targeted validation (from web/):

  • eslint --report-unused-disable-directives --max-warnings 0 on the 3 changed files — passed.
  • prettier --check on 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 -a not run to avoid touching unrelated files.
  • Live browser (Studio dev server → local platform :8080, agent email-security-triage-dwvz8y): segmented control shows only Completed 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); Experiments toggle still renders the experiments table.

Summary by CodeRabbit

  • New Features
    • Active evaluation jobs now appear in a dedicated section above evaluation views.
    • Evaluation and experiment views remain selectable without a separate jobs tab.
    • Added “View job” actions to evaluations and active job entries for direct access to job details.
  • Improvements
    • Completed and otherwise terminal jobs are excluded from the active jobs list.

Signed-off-by: Nathan Walston <nwalston@nvidia.com>
@walston
walston requested review from a team as code owners August 19, 2026 16:10
@github-actions github-actions Bot added the feat label Aug 19, 2026
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

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: db5e0821-4c09-4a83-8c15-3d8144ea084b

📥 Commits

Reviewing files that changed from the base of the PR and between 7c96920 and 078e0c9.

📒 Files selected for processing (3)
  • web/packages/studio/src/routes/agents/AgentDetailRoute/EvaluationsTab.tsx
  • web/packages/studio/src/routes/agents/AgentDetailRoute/evaluations/EvaluationsTable.tsx
  • web/packages/studio/src/routes/agents/AgentDetailRoute/evaluations/JobsTable.tsx

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Walkthrough

Walkthrough

The 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.

Changes

Evaluator job navigation

Layer / File(s) Summary
Active jobs layout
web/packages/studio/src/routes/agents/AgentDetailRoute/EvaluationsTab.tsx
The jobs view was removed. The tab defaults to evaluations and displays nonterminal jobs above the evaluation views.
Job detail actions
web/packages/studio/src/routes/agents/AgentDetailRoute/evaluations/EvaluationsTable.tsx, web/packages/studio/src/routes/agents/AgentDetailRoute/evaluations/JobsTable.tsx
Evaluation rows and job rows now provide “View job” actions that navigate to evaluator job details when applicable.

Possibly related PRs

Suggested reviewers: steramae-nvidia, nv-odrulea, nakolean

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary change: surfacing active evaluator jobs in a dedicated table.
✨ 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 nwalston/astd-437-surface-active-eval-jobs-as-a-dedicated-table-on-the-agent

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

@github-actions

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 34306/43320 79.2% 64.1%
Integration Tests 20266/41119 49.3% 22.0%

@rrhyne

rrhyne commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants