Skip to content

feat(leet): multi-run workspace#11299

Merged
dmitryduev merged 17 commits intomainfrom
02-09-leet_multi-run_workspace
Feb 11, 2026
Merged

feat(leet): multi-run workspace#11299
dmitryduev merged 17 commits intomainfrom
02-09-leet_multi-run_workspace

Conversation

@dmitryduev
Copy link
Copy Markdown
Member

@dmitryduev dmitryduev commented Feb 9, 2026

Description

W&B LEET — Multi-Run Workspace

"Now you can see all your runs at once."

image

Quick start

wandb beta leet                   # opens workspace view with all runs in wandb/
wandb beta leet/path/to/run/dir   # opens single-run view

By default, LEET opens the workspace and selects the latest run. Set startup_mode to single_run_latest in the config to go straight into single-run view instead. Providing a path always opens single-run view.

What's new?

LEET now opens into a workspace view by default — a multi-run experience with three panels:

  • Runs sidebar (left): paginated run list with selection (Space), pinning (p), and stable color assignment per run.
  • Metrics grid (center): overlay line charts showing selected runs' metrics on shared axes. Pinned run draws on top. Mouse right-click to inspect all displayed time-series, hold Alt to inspect all visible charts.
  • Run overview sidebar (right): live preview of the currently highlighted run's metadata (env, config, summary).

Press Enter to drill into a single run, Esc to return. The workspace keeps all watchers and heartbeats alive in the background, so returning is instant.

New key bindings (workspace)

Space select/deselect run • p pin run • [ / ] toggle sidebars • Tab / Shift+Tab cycle sidebar focus • / filter metrics • Enter open run • Esc back • h help

Architecture notes (for reviewers) ## Model hierarchy Model (top-level) owns a Workspace (always alive) and optionally a Run (created on Enter, cleaned up on Esc). Message routing: help overlay → active sub-model → mode transitions. Non-input messages are forwarded to the workspace even while viewing a single run, keeping directory watchers and heartbeats current.

Workspace data path

Directory watcher: polls wandb/ for run directories, emits WorkspaceRunDirsMsg.
Per-run readers: each selected run gets its own WandbReader + WatcherManager, keyed by run directory name. Batched records are tagged with WorkspaceChunkedBatchMsg / WorkspaceBatchedRecordsMsg to route to the correct run.
Overview preloader: unselected runs get lightweight preloads (just the RunRecord) for the overview sidebar, capped at maxConcurrentPreloads.
Shared heartbeat: a single HeartbeatManager + channel serves all live workspace runs.

Multi-series metrics grid

The existing MetricsGrid / EpochLineChart now support multiple series per chart. Each run's data is keyed by its .wandb file path. PromoteSeriesToTop ensures the pinned run renders last (on top). Color assignment uses a stable hash of the run path into the active palette.

Run selection & pinning

selectedRuns map[string]bool tracks which runs contribute data to the metrics grid. pinnedRun (at most one) gets visual priority: its series draws on top and its list entry shows ▶. Deselecting the pinned run auto-unpins it.

###Sidebar layout
Both sidebars use AnimationState for smooth expand/collapse. When both sidebars are visible, widths use SidebarWidthRatioBoth (≈ 0.236, derived from φ); when only one is visible, SidebarWidthRatio (≈ 0.382). Focus management: exactly one sidebar receives keyboard input at a time, resolved by resolveSidebarFocus.

@dmitryduev dmitryduev requested a review from a team as a code owner February 9, 2026 23:45
@dmitryduev dmitryduev merged commit daea9d9 into main Feb 11, 2026
33 of 34 checks passed
@dmitryduev dmitryduev deleted the 02-09-leet_multi-run_workspace branch February 11, 2026 22:01
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.

2 participants