Skip to content

vein/web: evolve hill-climb chart + shareable deep links - #1617

Merged
Evanfeenstra merged 1 commit into
mainfrom
evolve-hillclimb-chart
Aug 28, 2026
Merged

vein/web: evolve hill-climb chart + shareable deep links#1617
Evanfeenstra merged 1 commit into
mainfrom
evolve-hillclimb-chart

Conversation

@Evanfeenstra

Copy link
Copy Markdown
Collaborator

What

Two UI additions to the vein web app, motivated by watching a live gaia-evolve run:

Evolve hill-climb chart

A live SVG chart at the top of the events panel for any run containing an eval/evolve-loop step. Derived purely from the event stream — the loop already emits synthetic <path>#<gen> events whose output carries { gen, fitness, bestFitness, bestGen, directive, version, knownCost, runs }, so there are no engine or API changes.

  • dashed baseline line + baseline anchor dot
  • green best-so-far staircase (reads as a hill-climb, not a scatter)
  • one dot per generation: filled green = new best, hollow blue = non-improving, amber stroke = explore directive, red ✕ = failed generation, pulsing = generation in flight
  • dots click through to that generation's run (same run-ref plumbing as event rows), native tooltips with version/fitness/Δ/cost
  • domain-agnostic: harvey-evolve and gaia-evolve both flow through the same step type

Shareable deep links

?wf=<workflow>&run=<runId>&v=<version> select on load, and the address bar tracks the selection via replaceState (no history spam; the existing ?chat param is preserved). Whatever is on screen is always a copy-paste shareable link, e.g.:

http://localhost:3355/lab/?wf=gaia-evolve&run=1787954224201

Testing

  • tsc --noEmit clean in vein/web
  • Verified live against an in-flight gaia-evolve run under /lab: deep link loads the run view directly and tails it; chart renders baseline 0.75 + pulsing pending dot for the running generation, updates as events stream in

🤖 Generated with Claude Code

- EvolveChart: live SVG fitness chart for eval/evolve-loop runs, derived
  purely from the run's event stream (the loop's synthetic <path>#<gen>
  events). Dashed baseline, best-so-far staircase, one dot per generation
  (filled = new best, amber stroke = explore directive, red x = failed
  gen, pulsing = in flight); dots click through to the generation's run
  via the existing run-ref plumbing. Domain-agnostic — harvey and gaia
  both flow through the same step type.
- Deep links: ?wf=<workflow>&run=<runId>&v=<version> select on load and
  the address bar tracks the selection (replaceState, ?chat preserved),
  so the current view is always copy-paste shareable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Evanfeenstra
Evanfeenstra merged commit 3793ac1 into main Aug 28, 2026
6 checks passed
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.

1 participant