Add NullOS Mission Control local agent recovery demo#71
Open
venzeles wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a local-first Mission Control demo to NullHub: a three-minute control-room
experience for lightweight agent infrastructure.
The demo shows a deterministic agent mission from launch to failure, human
checkpoint recovery, recovered validation, review, trace links, telemetry, and
replay export. It is designed to run locally without hosted services, model
keys, or external infrastructure.
What changed:
/api/mission-control/*for mission state, reset, launch, recovery,and replay export.
src/api/mission_control/code_red.v1.json.src/api/mission_control_replay.zig./mission-controlUI with mission controls, role board, workflowgraph, telemetry, timeline, trace links, story beats, and failed-vs-recovered
comparison.
/observability?run_id=....screenshots, README docs, and hackathon submission notes.
Why:
NullHub already acts as the control plane for the nullclaw ecosystem, and the
surrounding repositories already sketch out runtime, orchestration, task state,
and observability. What was missing was a memorable local vertical slice that
lets reviewers see those concepts working as one operator experience.
This PR keeps the demo deterministic and honest: it does not pretend to mutate
real NullTickets, NullBoiler, NullClaw, or NullWatch services. Instead it
provides a stable local replay with explicit ecosystem mapping and a future path
for real service hydration.
Validation performed:
Demo:
Open:
Screenshots:
docs/screenshots/nullhub-mission-control-live.pngdocs/screenshots/nullhub-mission-control-recovered.pngReviewer Path
Start NullHub:
Open the UI:
Run the automated demo in another terminal:
Watch the page move through:
Open a trace link or export the replay artifact:
Three-Minute Hackathon Story
0:00 - Launch the mission from NullHub.
0:30 - Agents light up on the role board and workflow graph.
1:00 - Tests fail. The graph marks the tool step red, telemetry increments
errors, and the timeline points at the failed NullWatch-style eval.
1:30 - The operator forks from the checkpoint with the instruction
apply missing validation guard.2:00 - The recovered run replays validation and passes.
2:30 - The final screen compares failed and recovered runs, with trace links and
exportable replay evidence.
Latest Local Validation
Last run: 2026-05-10
npm --prefix ui run buildzig build test -Dembed-ui=false --summary allzig build test --summary allNULLHUB_URL=http://127.0.0.1:19802 ./tests/test_mission_control_smoke.shMISSION_CONTROL_OPEN_BROWSER=0 ./scripts/mission_control_demo.shgit diff --check./scripts/record_mission_control_demo.shVideo Artifact
On macOS:
The generated video defaults to:
The video is ignored by git and can be uploaded to PR discussion or the
hackathon submission.
Latest local recording: 2026-05-10,
36M.Scope Boundaries
This PR intentionally does not:
Future Work