Understudy Desktop v0.3.41
Understudy Desktop 0.3.41 bundles CLI 0.6.38 and brings the benchmark lab into the app.
Highlights
- Experiment lineage cards — every result in the app now traces back to the run, dataset, and prompt that produced it (
understudy.experiment.v1sidecar). - Upload approval gate — the drag-drop training flow asks before anything leaves your machine; nothing uploads without an explicit yes.
- Benchmark linkage pane — see which benchmark and split each experiment was scored against, right next to the result.
- Pi chat benchmark tools — the embedded Pi chat is wired to the benchmark/experiment spine, and the new
operate-benchmark-labskill drives the whole lab conversationally. - Sidebar cleanup — New chat unnested to the top level; clipping, overlap, and leftover artifacts fixed.
- Smart defaults in the bundled CLI — a one-time trust posture replaces per-call approval prompts.
- The full benchmark CLI spine —
benchmarks from-datasetturns labeled datasets into first-class benchmarks; the partner report produces the honest benchmark-and-savings deliverable; trivial-agent calibration arms, majority-class floors, and the ABC rigor report keep scores honest; GEPA-style prompt evolution runs over prompt-override experiment arms.
Existing installs update in place via the Tauri updater (latest.json on this release).
What's Changed
- Add local trace benchmark foundry by @lluisinthedesert in #314
- Benchmark hub: benchmark.v1 spine, local hub/leaderboard viewer, real dogfood data, correctness + hardening + tests by @lluisinthedesert in #315
- Benchmark hub: full foundry unification — lifecycle-aware viewer, one review store, one styling system, designed empty states by @lluisinthedesert in #317
- Complete trace foundry runtime and environment workflow by @lluisinthedesert in #316
- Add reusable local trace viewer by @aamir in #318
- Foundry fixes: cut Prime push (privacy), batch truncation, semantic gold, promote verb, schema-collision resolution by @lluisinthedesert in #319
- Roadmap wave: trace-aware grouping, judgeable contracts, run queue + executor, narrative layout by @lluisinthedesert in #320
- Automation-focus round: accepted-task runs, statement-first task page, regenerate-env + environment fixes by @lluisinthedesert in #321
- Live rollout watching + fair anchor scoring + world validation + judgeability guarantee by @lluisinthedesert in #322
- Fix live-journal newlines (empty live view during real rollouts) by @lluisinthedesert in #323
- Observation-tightened world-model validation by @lluisinthedesert in #324
- Unify benchmark artifact producer/consumer contracts behind one shared codec by @lluisinthedesert in #326
- Add ABC benchmark-rigor checkpoints to eval skills by @lluisinthedesert in #330
- docs: benchmark-hub → desktop migration scoping by @lluisinthedesert in #329
- Add instrument skill: zero-friction trace-capture on-ramp by @lluisinthedesert in #331
- Incumbent baseline: record the capture-producing model, rerun it as a labeled arm, gate tasks on calibration by @lluisinthedesert in #325
- fix(skills): add missing Resolve CLI section to instrument skill (unbreak main gates) by @lluisinthedesert in #332
- Sentinel gates against the silent-zero failure class by @lluisinthedesert in #328
- Agent-operator MCP surface: understudy benchmarks mcp by @lluisinthedesert in #327
- Trivial-agent calibration arms (null/spam) + ABC rigor report by @lluisinthedesert in #333
- Statistical honesty + environment integrity: bootstrap CIs, gold-leakage audit, rollout isolation pin by @lluisinthedesert in #334
- Exception-based benchmark review: auto-accept policy + conversational task edit by @lluisinthedesert in #335
- Fuzzy tier for the gold-leakage audit (shingles + fingerprints) by @lluisinthedesert in #336
- Surface follow-ups: floors rendering, MCP policy tools, configurable auto-accept by @lluisinthedesert in #337
- Oracle full-contract coverage: response obligations verified against stored gold by @lluisinthedesert in #338
- Harden benchmark run queue/executor: claims + capability gate, per-rollout timeout, structural output isolation by @lluisinthedesert in #339
- Prompt-override experiment arms (run-scoped SOP suffix, capability-gated) by @lluisinthedesert in #340
- Fixtures-state-split: stop serving gold post-state to candidates by @lluisinthedesert in #342
- App-replay arm (tier 1): run the user's own app on frozen benchmark tasks by @lluisinthedesert in #341
- benchmark hub: multi-objective (Pareto) trade-offs view by @lluisinthedesert in #343
- Skills: operate the full benchmark-lab lifecycle (MCP + CLI + daemons + desktop distribution) by @lluisinthedesert in #344
- Local trained-artifact arms + majority-class floor for the benchmark run executor by @lluisinthedesert in #345
- GEPA-style prompt evolution driving prompt_overrides arms (benchmarks evolve) by @lluisinthedesert in #347
- Rejection guidance as an optimizable surface: guidance.json, recovery metric, --guidance override by @lluisinthedesert in #348
- Experiment-lineage layer: understudy.experiment.v1 sidecar + CLI/MCP surfaces by @lluisinthedesert in #346
- Fix benchmark-hub visual-QA findings (hydration, floors, feedback ids, pills, dev preflight) by @lluisinthedesert in #350
- Born-accepted task inbox: proposed review flow + page redesign by @lluisinthedesert in #349
- OpenAI response-shaped workload fixes (warp-domain-identification generality validation) by @lluisinthedesert in #351
- Merge-train tooling: gated PR train, wave-ownership checker, retro doc by @lluisinthedesert in #352
- Wire the embedded Pi chat to the benchmark/experiment spine by @lluisinthedesert in #353
- benchmarks from-dataset: labeled datasets become first-class benchmarks by @lluisinthedesert in #354
- Desktop app → benchmark/experiment spine bridge (lineage, approval gate, benchmark linkage) by @lluisinthedesert in #355
- Partner report: the honest benchmark-and-savings deliverable by @lluisinthedesert in #356
- Smart defaults: one-time trust posture replaces per-call approval gates by @lluisinthedesert in #357
- Desktop sidebar cleanup: unnest New chat, fix clipping, remove artifacts by @lluisinthedesert in #358
- release: Desktop 0.3.41 / CLI 0.6.38 by @lluisinthedesert in #359
Full Changelog: desktop-v0.3.40-mvp...desktop-v0.3.41-mvp