Skip to content

feat(bench): live flight-recorder dashboard (e2ebench -mode serve) - #7941

Closed
esengine wants to merge 1 commit into
feat/progress-shadow-scorerfrom
feat/e2ebench-dashboard
Closed

feat(bench): live flight-recorder dashboard (e2ebench -mode serve)#7941
esengine wants to merge 1 commit into
feat/progress-shadow-scorerfrom
feat/e2ebench-dashboard

Conversation

@esengine

@esengine esengine commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Stacked on #7937 (uses its outcome series). Live local dashboard for e2ebench runs.

What

  • e2ebench -mode serve -trajectories <dir> [-suite <root>] [-addr host:port]: serves a self-contained dark "flight recorder" page polling /api/state every 2s while a bench run writes trajectories.
  • The run is a strip of task segments (done / running / queued); each task a recessed per-round trace. Verified-win and regression cells extend up/down off the baseline - polarity is carried by geometry because the green/red pair alone fails CVD validation (deutan dE 4.1).
  • Incremental renderer: keyed DOM, cells pop in, numbers tween, hover state survives polling; custom cursor-following tooltips; click a run segment to jump to its task card.
  • Replay engine: play back a finished (or partial) run by wall-clock timestamp with a scrubber, 30/120/600x speed, and a live-tail escape hatch.
  • summarizeTrajectory splits into scanTrajectoryFile + finish so the dashboard can read the raw per-round series; outcome rounds carry their observation timestamp (additive JSONL field t).

Verification

  • go vet ./cmd/e2ebench/ and go test ./cmd/e2ebench/ pass; page exercised against the recorded 49-task run (live view, replay, tooltips, jump-to-card) with headless-Chromium screenshots in light/dark.

Documentation-impact: none - e2ebench is a developer benchmarking tool; its flags are self-documented via -h and not covered by docs/*.md

@esengine
esengine requested a review from SivanCola as a code owner August 8, 2026 06:58
A local dashboard for watching a bench run while it writes trajectories:
'e2ebench -mode serve -trajectories <dir>' re-summarizes every trajectory
per poll behind /api/state and serves one self-contained dark instrument
page. The run renders as a strip of task segments; each task as a recessed
per-round trace whose win/break polarity is carried by geometry (up/down
off the baseline) because the green/red pair alone fails CVD validation.

The renderer is incremental - DOM nodes are keyed, new rounds pop in,
numbers tween, hover survives polling. A replay engine scrubs the whole
run by wall-clock timestamp (play/pause, 30-600x, jump-to-task), so a
finished run can be watched back round by round. Suite awareness lists
queued tasks as ghosts and prices the remaining time.

summarizeTrajectory splits into scanTrajectoryFile + finish so the
dashboard can read the raw outcome series the summary discards; rounds
gain their observation timestamp for the replay timeline.
@esengine

esengine commented Aug 8, 2026

Copy link
Copy Markdown
Owner Author

Self-review notes (no code change needed): CSP-free local page, all state derived from /api/state; the renderer is keyed so polling cannot destroy hover/replay state; replay bounds guard division by zero when a run has a single round; task IDs come from local trajectory filenames (trusted input for a localhost dev tool). One deliberate trade-off documented here: the dashboard does not yet render the debt/TTFDC fields added later in the stack — follow-up once the enforcement experiments need them on screen.

@esengine
esengine deleted the branch feat/progress-shadow-scorer August 8, 2026 14:05
@esengine esengine closed this Aug 8, 2026
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