Skip to content

feat(frontend): /w steps and tables in the /m new evaluation sheet - #8149

Merged
mmabrouk merged 2 commits into
release/v0.128.9from
feat/m-parity-new-evaluation-drawer
Nov 6, 2026
Merged

mmabrouk merged 2 commits into
release/v0.128.9from
feat/m-parity-new-evaluation-drawer

Conversation

@mmabrouk

@mmabrouk mmabrouk commented Nov 6, 2026

Copy link
Copy Markdown
Member

Context

In /m developer mode, "New evaluation" opened a narrow drawer with an accordion. Each step was a short popover list: apps without their type or date, revisions without model or deployment status, test sets without dates or commit messages, and evaluators without the human feedback fields. There was no "Create new evaluator", the test set list showed the author as a raw user id, and one Escape dropped every pick without asking. /w shows all of this in a wide modal with a step list and a table per step.

Changes

The sheet keeps the /m drawer, but it is now as wide as the /w modal (1200 px, at most 90% of the window). The name sits on top, the step list on the left (Application, Revision, Test set, Evaluators, Advanced Settings, each with a check and chips of the picks), and the open step's table on the right. Below 768 px the step list sits above the table; at 390 px the page does not scroll sideways.

Each step now shows what /w shows:

  • Application: a table with Name, Kind, Type (Completion, Chat) and Created At, a type filter and a search.
  • Revision: one row per variant with its newest revision: name, version tag, "Last modified", deployment dots, Model, Created on, Created by and Commit notes. Older revisions open under it. An auto run picks several revisions with checkboxes; a human run picks one.
  • Test set: the expected input variables, then an inline table with Name, Commit Message, Date Created and Created by. A pick takes the latest revision and moves to Evaluators, as in /w.
  • Evaluators: the /w columns (Type, Tags, dates, Modified by, Commit message), or for a human run the Feedback column ("score, comment", "approved"). Older versions open under each evaluator. "Create new evaluator" opens the Evaluators page on the right tab in a new tab, so the draft stays. (The in-place evaluator drawer is separate work.)
  • Authors show as names: the sheet loads the workspace members the same way the other /m screens do. No new API.
  • Close: Escape, the close button, a click outside and Cancel now ask "Discard this evaluation?" when the draft holds input (a name, a pick, changed settings). An untouched draft closes at once. Picks the playground passed in do not count as input.

Kept as they were: the auto name, the Advanced Settings defaults (10, 3, 3), the validation toasts and the start flow.

The playground opens the same NewEvaluationSheet, so it gets the same layout with Application and Revision filled in and the test set table on screen. No playground file changes.

The sheet still loads with next/dynamic from the runs list and from the playground. It uses no antd and adds no dependency. It reuses the /m data hooks of the Variants, Test sets and Evaluators pages (useAppRevisions, useTestsetsList, useEvaluatorEntries, useEvaluatorRevisions) and the shared ListTable. Those files are not changed.

Tests / notes

  • Render tests over the sheet and each step: newEvaluationSheet, newEvaluationSections and newEvaluationEvaluators (.render.test.tsx), plus pure tests in newEvaluationDraft.test.ts for draftHasInput, the step table tree and the app type filter. Against the old code, 36 of these tests fail.
  • playgroundNewEvaluation.render.test.tsx runs the real stores with HTTP mocked. It now checks that the sheet opens on Test set and that the revision table shows both playground revisions as checked.
  • /m without developer mode does not change. Evaluations is a hidden view. The new test developerViews.render.test.tsx > "Evaluations stay off without beta developer mode or a forced view, even for a preview opt-in" proves the view is off, and the existing playground test "Stays hidden while the evaluations view is off" covers the other entry point. Checked live with beta off and no forced views: no Evaluations item in the nav, /evaluations shows the 404 page, and the playground has no "New Evaluation".
  • Speed: the speed:check size budget passes. The app shell is 884.6 KB. Every route, this one included, is about 2 KB over the budget baseline, which is drift on main and not from this change. The new tables are in the sheet's dynamic chunk.
  • Types, pnpm lint-fix and the full @agenta/mobile suite were run. One unrelated test, appActionsMenu.render.test.tsx, failed once under load and passes when run again.
  • Live check on a parity stack: one real auto run (Capital finder, Capitals, Exact Match) started from the new sheet and finished. It was then deleted.
  • Not in this PR: the /w "Show evaluators" toggle on the Application step (it evaluates evaluators) and the /w test set filter button. /w also shows a raw user id for test set authors; /w code is not changed here.

What to QA

  • Evaluations > New evaluation > Auto evaluation. The step list is on the left and the app table is on the right, with Type and Created At. Filter by Chat: only chat apps remain.
  • Pick an app. The revision table shows the model, the author name and the commit notes. Open the older revisions with the caret and pick two revisions.
  • Test set: the table shows dates, commit messages and author names (not ids). Click a test set: its chip shows the latest version and the Evaluators step opens.
  • Evaluators: "Create new evaluator" opens the Evaluators page in a new tab, and the draft is still there.
  • Human evaluation > Evaluators: the Feedback column lists each evaluator's fields.
  • Pick something, then press Escape: you are asked to confirm. Press Cancel and the picks stay. Open a fresh sheet and press Escape: it closes at once.
  • Playground (Capital finder) > New Evaluation: Application and Revision are filled in and the test set table shows. Start a run.
  • Narrow the window to phone width: the step list sits above the table.
  • Regression: an auto run still starts, shows "Evaluation started" and lands on the Auto tab.

The new evaluation sheet in /m now uses the /w layout: the name on top,
a step list on the left with a check and chips for each pick, and the
open step's table on the right. Each step shows the /w columns.

- Application: Name, Kind, Type, Created At, a type filter and a search.
- Revision: one row per variant with version, deployments, model, date,
  author and commit notes; older revisions open under it.
- Test set: an inline table with Name, Commit Message, Date Created and
  Created by (a name, not a user id). A pick takes the latest revision
  and moves to Evaluators.
- Evaluators: the /w columns, the Feedback column for human evaluators,
  older versions, and Create new evaluator (opens Evaluators in a new tab).
- Close, Escape, overlay click and Cancel ask before they drop a draft
  with input; an untouched draft closes at once.

The playground opens the same sheet, so it gets the same steps.

Entire-Checkpoint: 01M6R2JESW6N3AG1ZFAC6A5Z3T
@coderabbitai

coderabbitai Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Caution

Review failed

The pull request is closed.

Summary

Summary by CodeRabbit

  • New Features
    • Added a guided, step-based evaluation setup with searchable tables for applications, revisions, test sets, and evaluators.
    • Added filters for application type, expandable older revisions, and selection options tailored to evaluation type.
    • Added a confirmation prompt before closing a draft with unsaved input.
    • Added clearer loading, empty, and retry states, plus responsive table layouts.
    • Added links to create evaluators and new examples for test-set and human-evaluator setup.

The evaluation creation sheet changes to a step-based form with searchable application, revision, test-set, and evaluator tables. The sheet tracks draft input and confirms before closing a populated draft. Tests and Storybook stories are updated for the new flow.

Changes: Evaluation creation wizard

Layer / File(s) Summary
Step navigation and draft lifecycle
web/mobile/src/features/evaluations/new/NewEvaluationForm.tsx, NewEvaluationSheet.tsx, StepItem.tsx, SectionItem.tsx, newEvaluationDraft.ts, sheetFrame.ts, web/mobile/tests/unit/newEvaluationSheet.render.test.tsx
The form uses step navigation and active section content. The sheet tracks draft input, closes untouched drafts directly, and requests confirmation before closing populated drafts.
Application, revision, and test-set tables
web/mobile/src/features/evaluations/new/AppSection.tsx, RevisionSection.tsx, TestsetSection.tsx, appTypeFilter.ts, treeRows.ts, useAppTypes.ts, useTestsetLatestRevisions.ts, PickCell.tsx, ExpandToggle.tsx, LoadMoreButton.tsx, StepSearch.tsx, web/mobile/tests/unit/newEvaluationSections.render.test.tsx, newEvaluationDraft.test.ts
The sections render searchable responsive tables with selection controls. Revision rows can expand to show older versions. Test-set selection uses its latest revision.
Evaluator revision table
web/mobile/src/features/evaluations/new/EvaluatorsSection.tsx, evaluatorRows.ts, EvaluatorTemplateTags.tsx, EvaluatorsEmpty.tsx, AutoEvaluatorPicker.tsx, EvaluatorPicker.tsx, EvaluatorRevisionLabel.tsx, HumanEvaluatorPicker.tsx, web/mobile/tests/unit/newEvaluationEvaluators.render.test.tsx
The evaluator section loads project-scoped entries and revisions, then displays searchable rows with expandable older versions. The prior evaluator picker components and revision label renderer are removed.
Wizard integration and examples
web/mobile/tests/support/newEvaluationMocks.tsx, web/mobile/tests/unit/developerViews.render.test.tsx, web/mobile/tests/unit/playgroundNewEvaluation.render.test.tsx, web/storybook/stories/developer-views/NewEvaluationSheet.stories.tsx
Mocks, playground tests, and Storybook fixtures use the wizard tables. The developer-view test checks the evaluations routes and view state.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  actor User
  participant NewEvaluationForm
  participant NewEvaluationSheet
  participant ConfirmationModal
  NewEvaluationForm->>NewEvaluationSheet: report draft input state
  User->>NewEvaluationSheet: request close
  NewEvaluationSheet->>ConfirmationModal: show confirmation for populated draft
  ConfirmationModal->>NewEvaluationSheet: confirm discard
  NewEvaluationSheet->>User: close sheet
Loading

Possibly related PRs

  • Agenta-AI/agenta#8110: Opens NewEvaluationSheet from the playground with a fixed app and saved revisions, which the updated wizard retains as initial selections.
  • Agenta-AI/agenta#8007: Adds evaluator list and revision hooks and row types used by the evaluator table.
Merge Risk: Low · previous review dabc1

Test-set rows briefly become unselectable while searching or loading more. A small convention violation also needs cleanup. Both are low-risk and easy to fix.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title identifies the step-and-table layout for the new evaluation sheet.
Description check Passed The description covers the new layout, selection tables, discard confirmation, and tests.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
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.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 28 files.

  • Autofix · 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

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

Actionable comments posted: 2

Review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 8d75125 and dabc1c6.

Files selected for processing: 33

  • web/mobile/src/features/evaluations/new/AppSection.tsx
  • web/mobile/src/features/evaluations/new/AutoEvaluatorPicker.tsx
  • web/mobile/src/features/evaluations/new/EvaluatorPicker.tsx
  • web/mobile/src/features/evaluations/new/EvaluatorRevisionLabel.tsx
  • web/mobile/src/features/evaluations/new/EvaluatorTemplateTags.tsx
  • web/mobile/src/features/evaluations/new/EvaluatorsEmpty.tsx
  • web/mobile/src/features/evaluations/new/EvaluatorsSection.tsx
  • web/mobile/src/features/evaluations/new/ExpandToggle.tsx
  • web/mobile/src/features/evaluations/new/HumanEvaluatorPicker.tsx
  • web/mobile/src/features/evaluations/new/LoadMoreButton.tsx
  • web/mobile/src/features/evaluations/new/NewEvaluationForm.tsx
  • web/mobile/src/features/evaluations/new/NewEvaluationSheet.tsx
  • web/mobile/src/features/evaluations/new/PickCell.tsx
  • web/mobile/src/features/evaluations/new/RevisionSection.tsx
  • web/mobile/src/features/evaluations/new/SectionItem.tsx
  • web/mobile/src/features/evaluations/new/StepItem.tsx
  • web/mobile/src/features/evaluations/new/StepSearch.tsx
  • web/mobile/src/features/evaluations/new/TestsetSection.tsx
  • web/mobile/src/features/evaluations/new/appTypeFilter.ts
  • web/mobile/src/features/evaluations/new/evaluatorRows.ts
  • web/mobile/src/features/evaluations/new/newEvaluationDraft.ts
  • web/mobile/src/features/evaluations/new/sheetFrame.ts
  • web/mobile/src/features/evaluations/new/treeRows.ts
  • web/mobile/src/features/evaluations/new/useAppTypes.ts
  • web/mobile/src/features/evaluations/new/useTestsetLatestRevisions.ts
  • web/mobile/tests/support/newEvaluationMocks.tsx
  • web/mobile/tests/unit/developerViews.render.test.tsx
  • web/mobile/tests/unit/newEvaluationDraft.test.ts
  • web/mobile/tests/unit/newEvaluationEvaluators.render.test.tsx
  • web/mobile/tests/unit/newEvaluationSections.render.test.tsx
  • web/mobile/tests/unit/newEvaluationSheet.render.test.tsx
  • web/mobile/tests/unit/playgroundNewEvaluation.render.test.tsx
  • web/storybook/stories/developer-views/NewEvaluationSheet.stories.tsx
Files with no reviewable changes: 5

  • web/mobile/src/features/evaluations/new/AutoEvaluatorPicker.tsx
  • web/mobile/src/features/evaluations/new/HumanEvaluatorPicker.tsx
  • web/mobile/src/features/evaluations/new/EvaluatorRevisionLabel.tsx
  • web/mobile/src/features/evaluations/new/EvaluatorPicker.tsx
  • web/mobile/src/features/evaluations/new/SectionItem.tsx

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

…le for the muted cell

Entire-Checkpoint: 01M6R44M7693H4K95N2HNW58AM
@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Railway Preview Environment

Item Value
Status stopped
Commit 45f2b13d06764a49ad6076ac65bf6cd77d44dbb4
Manual expiry (UTC) Not granted
CI deadline (UTC) Not granted
Workflow https://github.com/Agenta-AI/agenta/actions/runs/42198221779

Dependent tests finished. Post /preview for manual review. Environment absence verified; retained storage requires separate provider accounting.

Post /preview as a new comment to request a one-hour preview. Repeating it while active does not extend the hour.
Preview data is disposable. Expiry is enforced by the next successful cleanup sweep, not an exact timer.
Environment deletion stops its compute. Provider-retained storage and permanent services may still be billed.

@mmabrouk
mmabrouk changed the base branch from main to release/v0.128.9 November 6, 2026 14:24
@mmabrouk
mmabrouk merged commit 73c8195 into release/v0.128.9 Nov 6, 2026
85 of 90 checks passed
@mmabrouk mmabrouk added the lgtm This PR has been approved by a maintainer label Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant