what it is
Mission Control is a private application built around two distinct workspaces. My Work brings together todos, projects, and calendar. Lab shows my machines, installed AI tools, agent profiles, and updates.
The original project was a Next.js dashboard with a collection of tabs. This version uses React and Vite with a Fastify API. It is deployed for my own use and still being developed, not a public service or a downloadable product.
The screenshot shows the current Lab workspace with machine names anonymized.
my work
Work records stay in my Obsidian vault as Markdown. The dashboard reads those records and supports specific edits, including task completion, status changes, and adding todos. It does not replace the vault with a separate project database.
Edits check the source revision before saving, and existing files receive backups. If a record changed since the screen loaded, the app should surface that conflict rather than silently overwrite it.
Calendar can read a dated export or connect directly to Google Calendar with read-only access. The interface makes the source and its freshness visible.
lab
The Lab workspace brings the infrastructure into the same application without mixing machine maintenance into the todo list:
- Machines: inventory collected over Tailscale, with a per-machine inspector.
- Harnesses: installed AI tools and versions, including distinct CLI, desktop, and editor installations.
- Agent profiles: named profiles shown separately from the software they use.
- Updates: release checks and reviewed update plans for supported installations.
A reachable machine and a successful inventory collection are different things. When collection fails, the last successful result keeps its original timestamp. Lab also remains available when the work-record source cannot be read.
reviewing updates
Checking for new versions does not install them. An update plan identifies the machine, installed version, target version, and update method before execution. Supported paths include npm and native Claude installations, Homebrew Codex, and Hermes runtime updates.
Runs are serial, progress is recorded, and the current run can be recovered after navigation or a lost response. An interrupted or uncertain result needs inspection before another batch. It is not automatically retried.
current state
The web app and main API run on my hub through Coolify. A separate source API on my development machine handles live vault reads and the supported writes. That source service now runs from versioned release directories, so changing branches in my working checkout does not change the running production code.
The development machine still needs to be available for fresh vault data and writes. When the source is unavailable, the app can show a dated, read-only fallback. Moving the web app to the hub did not remove that dependency.
The rebuilt application has vault reads, bounded record edits, and reviewed machine-update workflows. Broader todo maintenance and an Agent Activity view remain planned work, not features shown by the current screenshot.
The focus now is making the everyday workflow reliable: clear source data, visible failures, and enough information to review a change before it runs.