web: debug overlay (HUD) showing inferred per-session metrics #20

Closed
opened 2026-06-20 14:19:57 +01:00 by naps62-yolo · 0 comments
Collaborator

A dev/debug overlay for the web UI that surfaces the daemon-inferred session fields from #18 (and later #19), game-HUD style — like an FPS/memory overlay. Lets us validate that the inferred data is correct before designing any "real" UI, and stays useful as a permanent debugging tool.

This is pure consumer-side: after #18 the fields (activity, foreground, last_activity_at, status) are already on the wire and the web UI already has a live events channel. No daemon/protocol/backend changes.

Blocked by #18 (needs the fields on the wire).

Behavior

  • A debug toggle, off by default (localStorage flag; optionally a hidden setting or keybind).
  • When on, render a small fixed-corner overlay on each session pane showing:
    • activity (Active / Idle / AwaitingInput)
    • foreground (e.g. claude, bash)
    • seconds since last_activity_at
    • status (Running / Dead)
    • any phase-2 detail once #19 lands
  • Updates live off the existing SessionUpdated / events WS — no polling, no new endpoints.

Design note

Build it as a generic "render whatever inferred fields are present on the session" panel, not a hard-coded list, so future fields (#19 detail, later metrics) show up automatically without reworking the overlay.

Scope

  • Web UI only. No changes to daemon, protocol, registry, CLI, or TUI.
  • Not the production display of activity state — this is the throwaway/debug view you look at while deciding what the real UI should show.

Acceptance

  • Toggle off by default; enabling it shows the overlay on every visible session.
  • Overlay values update live as the daemon emits SessionUpdated (e.g. flips Active→Idle, foreground changes claude→bash).
  • Adding a new inferred field to Session surfaces in the overlay with no overlay-specific code change.

Migrated from Linear NAP-343.

A dev/debug overlay for the web UI that surfaces the daemon-inferred session fields from #18 (and later #19), game-HUD style — like an FPS/memory overlay. Lets us validate that the inferred data is *correct* before designing any "real" UI, and stays useful as a permanent debugging tool. This is **pure consumer-side**: after #18 the fields (`activity`, `foreground`, `last_activity_at`, `status`) are already on the wire and the web UI already has a live events channel. No daemon/protocol/backend changes. **Blocked by #18** (needs the fields on the wire). ## Behavior - A **debug toggle**, off by default (localStorage flag; optionally a hidden setting or keybind). - When on, render a small fixed-corner overlay on each session pane showing: - `activity` (Active / Idle / AwaitingInput) - `foreground` (e.g. `claude`, `bash`) - seconds since `last_activity_at` - `status` (Running / Dead) - any phase-2 `detail` once #19 lands - Updates live off the existing `SessionUpdated` / events WS — no polling, no new endpoints. ## Design note Build it as a generic "render whatever inferred fields are present on the session" panel, not a hard-coded list, so future fields (#19 `detail`, later metrics) show up automatically without reworking the overlay. ## Scope - Web UI only. No changes to daemon, protocol, registry, CLI, or TUI. - Not the production display of activity state — this is the throwaway/debug view you look at *while* deciding what the real UI should show. ## Acceptance - Toggle off by default; enabling it shows the overlay on every visible session. - Overlay values update live as the daemon emits `SessionUpdated` (e.g. flips Active→Idle, foreground changes claude→bash). - Adding a new inferred field to `Session` surfaces in the overlay with no overlay-specific code change. --- _Migrated from Linear NAP-343._
naps62-yolo self-assigned this 2026-06-21 15:52:51 +01:00
This repo is archived. You cannot comment on issues.
1 Participants
Due Date
No due date set.
Reference: naps62/maestro#20