Skip to content

Flow v2: live map, timeline and three tabs - #51

Merged
vishr merged 2 commits into
mainfrom
feat/flow-board
Oct 24, 2026
Merged

vishr merged 2 commits into
mainfrom
feat/flow-board

Conversation

@vishr

@vishr vishr commented Oct 24, 2026

Copy link
Copy Markdown
Member

Flow becomes the single overview of agent work, replacing the old Flow and Home views.

Navigation

  • Three tabs: 0 Flow, 1 Projects, 2 Machines. Chat is a side panel on c (Esc closes it, keeping the draft).
  • Flow has three views: Map (default), Timeline and Sessions. TUI keys m / t / s.

Map (web)

  • Server-rendered SVG with a deterministic lane layout. Projects pack into four lanes, and paired machines get a dashed box marked ⇄ machine.
  • Each family is a compact block: the lead first, workers indented under it with spawn edges. More than four workers fold into +N.
  • Every node has the same size, with a state glyph (▶ ◆ ‖ ○ ✓), the title, and the agent and age beside it. Fill brightness shows recent activity.
  • Same-file overlap shows as a ┄ file.go tag. The dashed link to the other session appears only while one of them is selected.
  • No animation; the header shows "updated Ns ago".

Timeline: every family as a tree grouped by project, over the last 60 minutes. Waits are amber and stalls hatched; tool ticks appear only where tool telemetry exists.

Side panel:

  • Needs you: oldest first, and the count matches the header. The full command wraps, Allow and Deny arm after a short delay, and new waits never take focus.
  • Selected family, then now / files / tools (telemetry) / cost (retained window).
  • Buttons: Terminal, Open session, Ask Chat, and Stop with a confirm step (local sessions only; TUI K then y).

Honesty: the view shows only stored data. There are no handoff edges, invented outcomes, replay, or tool streams for agents that send no tool events.

Libraries:

  • Idiomorph 0.7.4 with its htmx extension (vendored, license added) keeps selection, focus, search and scroll across refreshes. It replaces the hand-written delta stream.
  • Lip Gloss tree draws the TUI families.

Removed (no compatibility paths):

  • the old Flow board and family map;
  • the Home dashboard;
  • Flow's window, group and filter controls;
  • the /flow/events delta stream.

Checks:

  • just check and just race pass, and GOOS=windows go vet is clean.
  • Node DOM tests cover keyboard selection and refresh preservation.
  • TUI goldens cover the busy, quiet and empty fixtures at 80, 100, 140 and 200 columns.
  • The Map + Timeline model for 200 sessions builds in about 1.2 ms.

https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4

Flow becomes the one overview: Map, Timeline and Sessions views with a
Needs you and selected-family side panel. Top-level tabs are cut to
Flow, Projects and Machines; Chat is a panel on `c`.

The map is server-rendered SVG with a deterministic lane layout: projects
pack into lanes, workers sit under their lead, more than four fold into
+N. Only stored links are drawn: spawn edges and same-file overlap.
Refresh uses htmx with Idiomorph so selection, focus and scroll survive.
The TUI renders the same families as a Lip Gloss tree.

Stop returns to the side panel (web) and `K` (TUI) with a confirmation.

Claude-Session: https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4
- Map: each project is its own SVG card flowing in CSS columns, so the
  map fits any width; the header wraps on narrow screens.
- Page weight: no per-cell tooltips, and the selected family's strips are
  copied from the Timeline instead of rendered again for every row.
- Live refresh keeps open sections (Activity, State evidence) open.
- Allow/Deny re-arm whenever the list of waiting prompts changes, so a
  double-click cannot answer the prompt that moved into place.
- A Flow link to a session outside the last hour shows a notice instead of
  a 404; the prompt poll runs on Flow; shared-file links survive folding.
- Tool counts cover the last hour; board evidence loads one hour, not four.
- TUI: Esc stops a running Chat reply before closing the panel.
- Removed the old family view's client code, styles and tests.

Claude-Session: https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4
@vishr
vishr merged commit 0123cdb into main Oct 24, 2026
4 checks passed
@vishr
vishr deleted the feat/flow-board branch October 24, 2026 04:38
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