Summary
Implement docs/superpowers/plans/2026-04-24-node-runtime-split.md. Split lab serve into explicit controller and node runtime paths, stop deployed nodes from initializing controller-only surfaces, build role-specific controller/node artifacts, make nodes update verify real readiness and WebSocket reconnects, then prove the path with full verification and live rollout.
Beads
Epic: lab-686q
Plan
docs/superpowers/plans/2026-04-24-node-runtime-split.md
docs/NODE_RUNTIME_CONTRACT.md
Scope
- Runtime role resolution supports controller/node overrides and requires a controller host for node mode.
- Non-controller
serve skips registry, gateway, MCP, Web UI, OAuth, marketplace, fs, full API, and controller logs startup.
- Node health is loopback-only and implemented with raw tokio TCP.
nodes update builds/reuses distinct controller and node artifacts.
- Rollout ships the right artifact per target and reports artifact role/profile in JSON.
- Controller verification checks health, readiness, and fleet WebSocket listener.
- Node verification checks controller-observed connected state, not just inventory presence.
- Controller self-update failure reports recovery metadata and backup path.
node-runtime feature can be checked without controller dependencies.
Acceptance Criteria
just check passes.
just build passes.
just test passes.
- lint/no-run verification passes.
- live config audit passes.
- live
nodes update --all passes with final JSON ok: true.
Execution Order
- Runtime split and node health.
- Role-specific
nodes update artifacts and verification.
- Live rollout until green.
- Cargo feature slimming.
- Generic deploy runner follow-up.
Summary
Implement
docs/superpowers/plans/2026-04-24-node-runtime-split.md. Splitlab serveinto explicit controller and node runtime paths, stop deployed nodes from initializing controller-only surfaces, build role-specific controller/node artifacts, makenodes updateverify real readiness and WebSocket reconnects, then prove the path with full verification and live rollout.Beads
Epic:
lab-686qPlan
docs/superpowers/plans/2026-04-24-node-runtime-split.mddocs/NODE_RUNTIME_CONTRACT.mdScope
serveskips registry, gateway, MCP, Web UI, OAuth, marketplace, fs, full API, and controller logs startup.nodes updatebuilds/reuses distinct controller and node artifacts.node-runtimefeature can be checked without controller dependencies.Acceptance Criteria
just checkpasses.just buildpasses.just testpasses.nodes update --allpasses with final JSONok: true.Execution Order
nodes updateartifacts and verification.