swactor/apps/mvp-node
Zachery Aaron Shores-Chmielewski f54f62b491 refactor ssh bootstrap logic
Replace stdout-parsed runtime-ready detection with an explicit, plugin-driven bootstrap-completion step and actorize SSH bootstrap teardown.

- provisioning: drop the `PluginObservation::RuntimeReady` variant and add `ProvisionPlugin::complete_bootstrap`, an explicit per-node completion hook (no-op for `LocalDockerPlugin`)
- bootstrap_datastream: remove `parse_runtime_ready`/`RuntimeReadyLine` so bootstrap no longer infers readiness from a parsed stdout JSON line
- vastai_provisioning: drop the `ReadyTrackingSink` ready-flag wrapper; the SSH retry loop now runs purely `while !stopping`, and `complete_bootstrap` stops the node's bootstrap with `BootstrapStopReason::RuntimeReady`
- vastai_provisioning: actorize teardown as `SshBootstrapActor` on the swactor `Runtime` (handle holds an `ActorAddress`), with `stop_bootstrap(handle, reason)` delivering a `Stop` message; add `BootstrapStopReason::{RuntimeReady,NodeStop}`
- actors/provisioner: replace the `RuntimeReady` observation arm with a `ProvisionerMsg::RuntimeReady` handler that calls `complete_bootstrap` then `mark_live`/emits NodeLive (or NodeFailed on error)
- callers/tests: wire the new explicit ready flow through node_agent, the orchestrator/worker_node binaries, and `mvp_one_node_chat`; add the `ssh_bootstrap_actor_stop_kills_child` test

Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-07-08 18:06:00 +04:00
..
Dockerfile refactor: retire old pipeline-parallel app, restructure mvp-system 2026-07-07 14:40:02 +04:00
Dockerfile.base feat(mvp-chat): local e2e chat on cuda gpu 2026-07-01 12:44:25 +04:00
local_docker_e2e.sh refactor: retire old pipeline-parallel app, restructure mvp-system 2026-07-07 14:40:02 +04:00
mvp_entrypoint.sh feat(mvp-chat): local e2e chat on cuda gpu 2026-07-01 12:44:25 +04:00
tinygrad_worker.py refactor ssh bootstrap logic 2026-07-08 18:06:00 +04:00