Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flightdeck

A personal cockpit for parallel development work.

You run many work items at once — drafting an issue, an agent working a worktree, a dev server on some port, a PR awaiting review — and lose track of which is where. Flightdeck is one glanceable board that shows every work item's stage and what needs your attention, by observing reality (gh, git, local dev servers, claude agents) rather than relying on you or your agents to keep a status doc current.

Status: v1 (read-only board) implemented. Observes GitHub PRs/issues, git worktrees, local MMGIS deployments, and claude agents sessions, and renders a glanceable kanban + "needs my attention" lane. The embedded launch/resume terminal is the next milestone. Name is a placeholder — rename freely.

Run it

npm install
npm run dev

Prereqs: gh authenticated, claude on PATH, MMGIS checked out at ~/github/MMGIS. See docs/RUNBOOK.md for details and a no-browser API smoke test.

What it tracks

Each work item, across its lifecycle: drafting → posted to GitHub → in progress (worktree + agent) → deployed locally (clickable port) → PR out → reviews awaiting my response → merged. Plus the agent layer: which Claude Code session is on which worktree, whether it's busy / idle / blocked, and (stretch) talking to it from the dashboard.

How it works (in brief)

  • Observe reality, every poll. The backend re-derives all state on an 8s loop by shelling out to gh (PRs/issues), git (worktrees, merged branches), the MMGIS deployment skill's list.sh (deployments), and claude agents --json (live sessions) — plus reading Claude transcripts and issue .md drafts. The core board never depends on agent self-report, so it can't rot.
  • Sessions are attributed by what they touch. A session is filed under the worktree whose files it actually edits (from its transcript), not the directory it launched in.
  • Local SPA + thin backend, loopback-only. A modern web UI over a small local server bound to 127.0.0.1.
  • No tmux. The embedded terminal launches/resumes Claude via native primitives (claude --resume, node-pty, xterm.js) — see the spike doc.

Liveness today is poll-based: a session shows running/resumable from claude agents --json, not from pushed events. Hook-based push status (SessionStart/Stop/Notification) and a staleness watchdog are planned — see ROADMAP.md. The full architecture lives in docs/architecture/.

Docs

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages