Skip to content

feat: redesign the pwm-tui dashboard (flow strip + dominant overview pane)#202

Merged
AbdelStark merged 1 commit into
mainfrom
feat/tui-glamour
Jun 12, 2026
Merged

feat: redesign the pwm-tui dashboard (flow strip + dominant overview pane)#202
AbdelStark merged 1 commit into
mainfrom
feat/tui-glamour

Conversation

@AbdelStark

Copy link
Copy Markdown
Owner

Redesigns the pwm-tui front end around a dominant, always-visible overview, with the per-stage detail demoted to a side pane.

Layout

  ◆ ProvableWorldModel  ·  commit and audit a world-model inference
    le-wm V0 predictor  ·  quentinll/lewm-pusht  ·  lerobot/pusht episode  ·  cache …
╭──────────────────────────────────────────────────────────────────────────────────╮
│ ● FETCH ── ● EXPORT ── ● LOAD ── ● INFER ── ● COMMIT ── ● VERIFY ── ● TAMPER     │
│ 769 ms     22.0 s      243 ms    40 ms      0 ms        390 ms      389 ms       │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭ ✦ OVERVIEW ─────────────────────────────────────────────╮╭ ◇ TAMPER ───────────╮
│  ✔ ACCEPT   honest proof verified                       ││ per-stage detail    │
│  ✔ TAMPER CAUGHT  forged matmul op 2 rejected: …        ││ (←/→ to navigate,   │
│                                                         ││  esc to follow)     │
│ checkpoint  68.9 MiB · 303 tensors   int8 params 10,76… ││                     │
│ graph       2,437 ops · 32.40 M MAC  config      dim 1… ││                     │
│ latency     infer 40ms·verify 390ms  witness     689,7… ││                     │
│ freivalds   30 linear projections    float gate  0.282… ││                     │
│ z_next      [0, 7, -40, -11, -10, 3] bundle      43.5 … ││                     │
│ op mix      slice ▰▰▰▰▰▰▰▰ 1,389  concat ▰▰ 373  …      ││                     │
│ commitments weights 3733fc82… export-bound  model 59c… ││                     │
╰─────────────────────────────────────────────────────────╯╰─────────────────────╯
   ACCEPT    ←/→ stage · esc follow · l log · q quit

What changed

  • Pipeline flow strip: the seven stages now read horizontally as a flow with state glyphs (done, running spinner, skipped, failed) and per-stage wall times on a second row; the selected stage is underlined. Short labels kick in on narrow widths.
  • Dominant overview pane, always on screen, never requires navigating into a stage:
    • Activity zone swaps with the run: per-asset download gauges plus a live throughput sparkline during FETCH; exporter substage dots and the quantize progress bar (plus the last raw log line) during EXPORT; a stage ticker during the proof stages; the ACCEPT / TAMPER CAUGHT (or FAILED) banner once finished.
    • KPI grid (two columns) that fills in live from exporter events before the proof report exists (checkpoint size/tensors, exported int8 params, float gate from calibration, bundle size and its weights root) and sharpens when the report lands (proven params, ops and MACs, infer/verify latency, witness size, Freivalds count, z_next head).
    • Op-mix bars and the commitment table (weights root with its export-bound badge, model, quantization, inputs, output, trace).
  • Detail pane stays for advanced per-stage info, navigated with ←/→ (or ↑/↓, j/k), esc returns to following the active stage; the log pane (l) now overlays the detail pane instead of the dashboard. Narrow terminals (< 96 cols) drop the side pane and keep the overview.
  • Charm-style look: truecolor palette (lavender/pink/mint/gold on a muted base), rounded padded panels, reversed-video verdict chips, glyph stage states. NO_COLOR still renders cleanly.
  • No promotional copy: header and labels are factual (model, checkpoint, dataset, cache path); phrases like "REAL pretrained checkpoint" and "no docker" are gone from the UI.

Mechanics

  • app.rs gains a typed Dash struct that absorbs the exporter kv stream (so the dashboard has live numbers before stage 2), a per-tick downloaded-bytes sampler feeding the sparkline, and frozen elapsed time.
  • ui.rs is a full rewrite; pipeline.rs blurbs trimmed; keys extended in main.rs. Headless mode, the JSON summary, the pipeline, and the cache are untouched.
  • 22 unit tests pass, including TestBackend render assertions for the fetch activity, the post-report dashboard (KPIs, op mix, commitments, verdicts), the narrow-terminal fallback, failure states, and a fluff guard (the rendered frame must not contain "docker" or "REAL"). A dump_frames_for_eyeball test prints full frames under --nocapture for visual review.
  • Verified end to end against the warm cache: --headless --offline --json still exits 0 with EXPORT skipped, and the interactive TUI runs and quits cleanly under a pty.

A horizontal pipeline flow strip replaces the vertical rail, and a
dominant always-visible overview pane carries the run: live download
gauges with a throughput sparkline during FETCH, substage progress and
a quantize bar during EXPORT, then a KPI grid (checkpoint, params,
graph, latency, witness, Freivalds, float gate, z_next) that fills in
live from exporter events, op-mix bars, the commitment table, and the
verdict banner. A secondary per-stage detail pane (arrow keys) keeps
the advanced view. Charm-style truecolor palette, rounded padded
panels, NO_COLOR intact, narrow terminals drop the side pane. Header
and labels are factual; promotional phrasing removed.
@AbdelStark AbdelStark added the enhancement New feature or request label Jun 12, 2026
@AbdelStark AbdelStark merged commit b4ee740 into main Jun 12, 2026
11 checks passed
@AbdelStark AbdelStark deleted the feat/tui-glamour branch June 12, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant