Skip to content

feat(studio): scaffold AgentV Studio SPA with dashboard feature parity#806

Merged
christso merged 3 commits intomainfrom
feat/805-studio-scaffold
Mar 28, 2026
Merged

feat(studio): scaffold AgentV Studio SPA with dashboard feature parity#806
christso merged 3 commits intomainfrom
feat/805-studio-scaffold

Conversation

@christso
Copy link
Copy Markdown
Collaborator

Summary

  • Scaffolds apps/studio/ as a new Vite + React 19 + TanStack Router workspace package with dark theme dashboard for reviewing evaluation results
  • Extends the Hono API with new endpoints: /api/runs/:id/categories, /api/runs/:id/evals/:evalId, /api/index
  • Renames agentv serve to agentv studio (keeping serve as a hidden alias for backward compatibility)
  • Wires studio build output into CLI distribution so agentv studio serves the SPA

Components

  • Route tree: Home (run list), Run detail (per-eval breakdown), Eval detail (steps/output/task tabs)
  • UI: ScoreBar (cyan-blue gradient), StatsCards, RunList, RunDetail, EvalDetail with Monaco viewer
  • Data layer: TanStack Query hooks with 5s auto-refresh for all API endpoints
  • Build integration: Studio dist copied into CLI dist via tsup onSuccess

Test plan

  • All 353 existing CLI tests pass (serve.test.ts updated with studioDir: false to preserve inline HTML assertions)
  • Full monorepo build succeeds (bun run build)
  • Biome lint passes
  • TypeScript type-check passes for both CLI and Studio
  • Pre-push hooks all pass (build, typecheck, lint, test, validate:examples)
  • Manual verification: bun apps/cli/src/cli.ts studio serves the React SPA at localhost:3117
  • Manual verification: bun apps/cli/src/cli.ts serve still works as alias

Closes #805

🤖 Generated with Claude Code

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Mar 28, 2026

Deploying agentv with  Cloudflare Pages  Cloudflare Pages

Latest commit: 89b746c
Status:⚡️  Build in progress...

View logs

@christso christso marked this pull request as ready for review March 28, 2026 08:07
@christso
Copy link
Copy Markdown
Collaborator Author

E2E Manual Verification — Complete

Both remaining checklist items verified:

agentv studio serves the React SPA at localhost:3117

Pass — serves the Vite-built React SPA with dark theme, "AgentV Studio" branding, sidebar nav, and empty state prompt.

studio screenshot

$ bun apps/cli/src/cli.ts studio --port 3121
Dashboard: http://localhost:3121
  • Title: AgentV Studio (not the old AgentV Results Review)
  • Mount point: <div id="root"> with type="module" script bundle
  • resolveStudioDistDir() correctly resolves apps/studio/dist/ from source

agentv serve still works as alias

Pass — identical SPA output on a different port.

$ bun apps/cli/src/cli.ts serve --port 3122
Dashboard: http://localhost:3122

Both verified via agent-browser (agent-browser open + agent-browser screenshot).

christso and others added 3 commits March 28, 2026 09:38
Add apps/studio/ as a new Vite + React 19 + TanStack Router workspace
package with dark theme dashboard for reviewing evaluation results.

- Scaffold studio with route tree (home, run detail, eval detail)
- Add components: RunList, RunDetail, EvalDetail, ScoreBar, StatsCards,
  MonacoViewer, Sidebar, Layout
- Add TanStack Query hooks for all API endpoints
- Extend Hono API with /api/runs/:id/categories, /api/runs/:id/evals/:evalId,
  and /api/index endpoints
- Serve studio SPA as static files from Hono when dist is available
- Register `studio` as primary command, keep `serve` as hidden alias
- Wire studio build into CLI tsup onSuccess to bundle dist/studio
- Update tests to pass studioDir: false so inline HTML assertions pass

Closes #805

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…re reasons

Bugs fixed:
- Invalid Date shown for runs with no tests (now shows "N/A")
- Pass Rate vs Avg Score confusion (renamed to "Tests Passing" / "Mean Score" with tooltips)
- No empty state for runs with 0 evals (now shows centered message)

Features added:
- Category breakdown section on run detail page (groups by eval_set, clickable filter)
- Context-aware eval sidebar on eval detail pages (shows all evals with pass/fail indicators)
- Failure reason section on Steps tab for failed evals (red-tinted, aggregates error sources)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ailure reasons

- Show category breakdown section even with 1 category (was hidden
  unless 2+ categories existed)
- Serialize details objects properly in failure reason display
  instead of rendering [object Object]
- Update ScoreEntry.details type to accept string | object
@christso christso force-pushed the feat/805-studio-scaffold branch from 453eacd to 89b746c Compare March 28, 2026 09:40
@christso christso merged commit 5f9d4db into main Mar 28, 2026
1 of 2 checks passed
@christso christso deleted the feat/805-studio-scaffold branch March 28, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: scaffold AgentV Studio with convex-evals dashboard feature parity

1 participant