Clicking a trace row in the eval detail view does nothing (UI stays on eval-level panel)
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- typescript
- Domain
- frontend
Research direction
Start in apps/evalite-ui/app/routes/suite.$name.eval.$evalIndex.tsx and inspect TraceMenuItem alongside the route's Route.useSearch() handling. Verify that clicking a trace updates the URL with the trace index while preserving other search parameters, then confirm the per-trace panel and active indicator render; also check that the top Eval row clears the trace parameter.
Written by the indexing model from the issue text.
Description
Summary
In evalite@1.0.0-beta.16 and current v1, clicking a trace row in the eval detail page does not navigate to the per-trace view. The per-trace view is fully implemented — it just never mounts.
Reproduction
pnpm run example(or any run with a case that produces ≥1 trace, e.g. anything usingwrapAISDKModel).- Open the UI, navigate to a suite, open an eval that has traces.
- Click any
Trace Nrow in the left sidebar.
Expected: URL becomes /suite/<name>/eval/<index>?trace=<N-1> and the right panel swaps to Token Usage / Input / Output for that trace.
Actual: URL does not change; the right panel stays on the eval-level view. The border-l-4 border-primary active indicator also doesn't move.
Workaround: manually append ?trace=N to the URL — the per-trace panel renders correctly, confirming the route logic works and only the click navigation is broken.
Root cause
TraceMenuItem in apps/evalite-ui/app/routes/suite.$name.eval.$evalIndex.tsx accepts a traceIndex prop but the Link never forwards it to the route's search. The route reads trace from Route.useSearch() to choose which panel to render, so if trace is never written to the URL, the per-trace view never mounts.
Proposed fix
PR up: a four-line addition to the Link — search={(prev) => ({ ...prev, trace: props.traceIndex })} — that preserves other search params (timestamp, q) and still clears ?trace for the top "Eval" row (where traceIndex is undefined). The validateSearch schema already declares trace: z.number().optional(), so no schema change is required.
Environment
evalite@1.0.0-beta.16(reproduced from the shipped bundle),v1branch (reproduced in source)main(v0.x) uses different route files and is unaffected.
- Dominant language
- TypeScript
- Stars
- 1.7k
- Forks
- 102
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from mattpocock/evalite
-
Difficulty 1/5 Under an hour Newbie friendliness 76/100
mattpocock/evalite#400 · 7 reactions ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
mattpocock/evalite#395 ·
-
Difficulty 5/5 Over a week Newbie friendliness 10/100
mattpocock/evalite#405 · 13 reactions ·
-
UI fails on any remote access: bundle hardcodes localhost + server has no configurable bind host Open
Difficulty 3/5 1-2 days Newbie friendliness 65/100
mattpocock/evalite#404 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
mattpocock/evalite#398 · 1 comment ·
All issues in mattpocock/evalite
Similar issues
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Automattic/studio#4908 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100