Session Report — brain-live

2026-07-16 12:18 +0800 · repo C:/Users/valte/Code/valter · branch main

Summary

This session designed and built brain-live — a real-time 2D/3D visualization of the "AI Dev Brain" (the workspace's markdown notes + [[wikilinks]]) that pulses a node the instant a file changes, so you can watch your AI agents work live. It started from an Obsidian graph screenshot and grew, one request at a time, into a feature-rich three.js app: click-to-inspect with live-rendered markdown, colour-by-attention/priority/domain/type/initiative, focus mode, search, pause, theme/branding, LAN access, hands-free auto-follow, and click-to-listen (TTS). Every feature was verified in a real browser via Playwright (0 console errors). The work was then versioned into two new private GitHub repos, a small council settled the strategic direction (5–0), and the first council-decided upgrade shipped.

Honesty note: this repo (valter-silva-au/workspace) is a fail-closed allowlist that ignores tools/, so this session's code does not appear in git status. The working-tree changes below (backlog +426 lines, TASK-00020…59, network-sync, schedule) are from concurrent sessions. This session's artifacts live in the gitignored tools/ (surfaced by the mtime scan) and in the two dedicated repos.

Timeline

  1. Decoded the Obsidian Graph View screenshot; proposed three animation tiers (native / Gource / live).
  2. Built the Gource git-history time-lapse (tools/gource/brain.sh) — combined workspace + wiki histories into one tree, rendered an MP4; fixed the Git-Bash cygpath path and the Windows drive-colon ${entry%:*} split bug.
  3. Built brain-live: a zero-dependency Bun server (graph from md + wikilinks, recursive fs.watch → WebSocket pulses, prunes the 500k-file repos/ mirror), a 2D D3 view (/) and a stream-ready 3D three.js + UnrealBloom view (/3d). Wired task brain:*.
  4. Added the click-to-inspect panel + /note endpoint (traversal-guarded): chips, links/backlinks, and live-rendered markdown (marked + DOMPurify) with clickable in-body wikilinks and open-in-VSCode.
  5. Colour modes attention (recency heat) and priority (ticket status from backlog.yaml); node sizing by degree, breathing glow, synapse particles.
  6. Focus mode, initiative colour (adb initiative → wiki projects), search box; performance pass (pixel-ratio cap, half-res bloom, low-poly spheres) for the reported lag.
  7. Pause the spin (space/r, sticky) and a theme/branding panel (preset + randomize + custom palette, accent, background, editable title) persisted to localStorage.
  8. domain (personal / business / ops) and type (person/task/topic/source/…) colour modes — from frontmatter type: with a domain: override.
  9. LAN access so a tablet can watch: server prints LAN URLs, open-firewall.ps1 + task brain:lan (local-subnet only).
  10. Auto-follow (a): hands-free camera that flies to whatever file is being edited live — "watch Claude work" — with the ambient heartbeat suppressed so only real edits light up.
  11. /commit: discovered tools/ is gitignored and Taskfile.yml holds a secret, so versioned the work as two dedicated private GitHub repos and pushed over SSH.
  12. /small-council (5–0 consensus): stay web + ship upgrades via agents + defer the game-dev hire / native rewrite; then shipped the first decided upgrade — click-to-listen (TTS).
  13. Freed port 8787 (EADDRINUSE from a leftover verification server) and generated this report.

Artifacts produced

File / repoWhat it is
tools/brain-live/server.tsZero-dep Bun HTTP+WS server: builds the note graph, watches the FS, broadcasts pulses, serves /graph + /note + radio; enriches nodes (mtime, ticket status/priority, initiative, category, domain); prints LAN URLs.
tools/brain-live/index-3d.htmlThe 3D view — three.js + bloom, 6 colour modes, inspect panel w/ rendered markdown + TTS, auto-follow, focus, search, pause, theme/branding, keyboard-driven.
tools/brain-live/index.htmlThe 2D D3 force-graph view (reading/navigating).
tools/brain-live/open-firewall.ps1Elevated helper: opens inbound TCP 8787 to the local subnet only (Private/Domain) so LAN devices can connect.
tools/brain-live/README.mdFull docs: run, views, colour modes, hotkeys, LAN, performance.
tools/gource/brain.shGource git-history time-lapse wrapper (watch / render, SAFE mode) across both repos.
github.com/valter-silva-au/brain-live pushedNew private repo — the live visualizer (2 commits: initial + TTS).
github.com/valter-silva-au/brain-gource pushedNew private repo — the Gource time-lapse wrapper.
~/.claude/…/memory/brain-viz-tools.mdDurable memory: what the tools are, how to run them, repo locations, gotchas.

Sourced from the mtime scan (which catches the gitignored tools/) + the commits made this session. The Gource binary and *.mp4 renders are intentionally git-ignored.

Files edited

FileChange
tools/brain-live/*Built new this session, then iterated across ~12 feature rounds (all committed to the brain-live repo).
tools/gource/*New this session; committed to the brain-gource repo (added state/+*.log to its ignore).
Taskfile.yml unversionedAdded brain:live/open/stop/lan/gource/render tasks. NOT committed — the file holds a secret (deliberately gitignored).
The git status changes in this repo (backlog.yaml, tickets/…, adr/, debt/, initiatives/) are concurrent sessions' adb work, not this session's — listed here only for transparency, not claimed.

Key decisions

Tasks

adb was available. This session created/updated no adb tickets — the many TASK-00020…00059 entries in the working tree are concurrent sessions' work (content-agency, faceless-studio, omnictx micro-SaaS, Nina pipeline, etc.). Relevant but owned elsewhere: TASK-00028 (the ambient radio / 3D three.js fix) touches the shared radio component referenced above.

Sources & caveats

Fact sources used this run: git mtime scan adb (backlog) Playwright verification transcript (loose).

Recap reflects available context + git facts; a long/compacted session may omit earlier steps. File lists are derived from the mtime scan + commits made this session, not memory. In this fail-closed-allowlist repo, git status hides tools/, so the mtime scan is the authoritative source for this session's artifacts. This report supersedes earlier same-day snapshots for the brain-live thread; older reports/session-report-2026-07-16-*.html files are from other sessions/threads and were left untouched.