The cockpit that runs the day: one FastAPI app reading the single task list, the calendar, and the vault, and surfacing them as a one-tap PWA. Far more sits under the four chips it gets on the overview.
A thin FastAPI backend reads the same sources the rest of the system uses, with no separate database of record. The frontend is a single PWA that talks to the routers.
TASKS.md (the one list) · Calendar (EventKit) · Brain vault · ~/Journal/feelings · task-scheduler.
25 routers · 88 endpoints · tasks_md parser (sections + tiers) · osascript bridge (osa.py) · SQLite (db.py).
index.html + app.js + style.css · 35 live panels · one-tap from the dock.
Each panel is backed by its own router. This is the part the overview compresses to a single "dashboard" chip.
System health at a glance: services, graph freshness, git state.
TASKS.md rendered by section, tier-aware (scheduled vs secondary), collapse/expand per task.
One-click run of every dashboard:true skill, with last-run timestamps.
Today's events, with Start buttons wired onto Focus Block events.
Drives the task-scheduler to time-block tomorrow's schedulable tasks.
Quick-capture notes and a scratchpad straight into the Brain vault.
The callconnor.com lead pipeline, viewable and editable inline.
Privacy-walled. Writes to ~/Journal/feelings, never rendered back or committed.
Completed items and a trailing-average accomplishment sparkline.
Claude / API usage monitor so cost stays visible.
Surfaces triaged inbox state from the email-triage flow.
Pre-warmed briefing cache so the first morning briefing hits instantly.
Faithful replicas drawn with demo data — the real panels run on live local data (the actual inbox, task file, and service fleet) that stays on the machine.
The robustness isn't the panel count; it's the careful machinery behind the buttons.
#weekly tasksMarking one done is a single atomic rewrite that completes it AND re-inserts a fresh copy dated to next Sunday. Cadence never drifts, and identity stays stable across regenerations.
#exec StartThe Start button pastes the task's command verbatim instead of boilerplate. True one-click-then-Enter.
#blocked + ⏳ gatesDependency and defer-until markers keep not-yet-actionable tasks out of the schedule without deleting them.
Within-group reordering writes back through a strict permutation invariant, so a reorder can never silently drop or duplicate a task.
The skill row scans Brain/AI/Skills for dashboard:true frontmatter live (≤60s, no restart), so there are no hardcoded lists to drift.
Capture-only by design: the mood panel writes to the Journal and is never rendered, logged, echoed, or committed.
A no-denominator trailing average swept off the ✅ date. Momentum without vanity-metric noise.
A durable AppleScript-safe marker is embedded in the event notes, so the button maps to the task with zero fuzzy title matching.
Hard-won gotchas, the kind of thing that only lives in a runbook.
~/Dev/dashboard only. Look-alike decoys were deleted after repeated wrong-file edits.--reload.?v= bump. Static assets have no cache-busting, so a stale PWA will silently freeze panels.com.connor.dashboard with RunAtLoad, opened as the "CMD CTR" Chrome PWA.