No description
Find a file
Zachery Aaron Shores-Chmielewski ddec08ebf4 refactor: actorization polish and stability
Convert the remaining thread/mpsc-based provider monitor and stage-shard fetch loops into swactor actors, propagate worker-crash reasons through the actor message chain, and validate cached stage shards before reuse.

- orchestration/provider_adapters/vastai: replace the thread+AtomicBool VastAiProviderMonitor with VastAiProviderMonitorActor driven by Poll/Stop messages on its own RuntimeHandle (schedule_provider_monitor_poll), preserving the status/terminal-failure observation logic
- node/worker_node_runtime: convert the blocking stage-shard-fetch mpsc loop into StageShardFetchActor (Start/PollChild/ProcessLine/ReaderError/ReaderClosed via ExternalSender, on_stop kills and joins the child) reporting Progress/Done/Failed
- staging/gguf_shard: add validate_stage_shard_cache (tensor count/alignment/name/dims/type) and mix STAGE_SHARD_CACHE_FORMAT_VERSION into the shard_cache_key; materialize_stage_shard_with_process now validates a cached shard, emitting StageShardCacheInvalid and refetching when stale
- node/actor + orchestration/actor: NodeAgentMsg::WorkerCrashed now carries Option<reason>, surfaced as ObserveStageFault{reason}/StageFault{reason} up to the orchestrator; NodeAgentActor records last_worker_crash
- orchestration/app: complete_bootstrap now runs after runtime-ready without dropping stop handles (ProvisionedClusterGuard) and folds worker-crash reasons into stage-fault errors; chat/runtime adds cached-model config selection
- xtask: relax the data-path requirement to accept activation-step-executed OR downstream-activation-loaded

Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-07-29 12:14:52 +04:00
.cargo feat(mvp-system): working mvp-chat over edge transport 2026-07-22 11:50:53 +04:00
apps/mvp-node feat: working 7B inferenced over 4 pipeline stages 2026-07-27 10:47:17 +04:00
crates refactor: actorization polish and stability 2026-07-29 12:14:52 +04:00
src feat: working two stage pipeline parallel over vastai 2026-07-24 12:59:32 +04:00
tests feat: actor direct control via runtime admin 2026-07-08 19:23:03 +04:00
tools/vastai fix: faster provisioning, better ssh checks 2026-07-27 12:30:49 +04:00
xtask refactor: actorization polish and stability 2026-07-29 12:14:52 +04:00
.dockerignore refactor: retire old pipeline-parallel app, restructure mvp-system 2026-07-07 14:40:02 +04:00
.gitignore feat: verification gate for N pipeline stage deployment 2026-07-25 11:42:29 +04:00
Cargo.lock refactor: data movement handled by an independant crate 2026-07-28 21:30:56 +04:00
Cargo.toml refactor(mvp-system): establish module boundaries 2026-07-28 11:29:31 +04:00
README.md feat: add mvp provisioning subsystem and datastream transport 2026-06-25 16:30:18 +04:00

swactor

Minimal actor runtime for Rust. One trait, one message type. Single-threaded (tick()) or multi-threaded (run()).

Description

Core runtime is src/. Actors implement ActorInterface (in actor.rs), interact through Ctx (in runtime.rs), and run on worker threads (worker.rs).

crates/ builds upward: std adds OTP patterns (supervision, monitoring, groups), distribution adds clustering, everything else composes from there.

Dev commands

cargo xtask --help for the basic test command.

Testing

cargo check --workspace
cargo xtask test