Repository navigation
Releases
v0.1.1
What's Changed
- docs(roadmap): record the Phase D exit check with the v0.1.0 binaries by @DuongNAD in #180
- docs(design): machines anywhere: invites, short codes and a USB kit (0051-0053) by @DuongNAD in #182
- fix(cli): count only connected workers in workers and status by @DuongNAD in #184
- feat(packaging): USB setup kit, format v0 (design 0053, USB-1) by @DuongNAD in #185
- bench(grid): record BENCH-1 (a) and (b) loopback benchmark on Windows x86_64 by @DuongNAD in #187
- fix(worker,tests): prevent Windows disconnect failover timeouts in m4_challenger_2_stress (TEST-20) by @DuongNAD in #181
- fix(worker,master): no pop-ups on a Windows desktop (hard-error dialogs, firewall prompts) by @DuongNAD in #188
- bench(grid): record BENCH-1 (a) and (b) on Linux (arm64, Docker VM) by @DuongNAD in #189
- release: 0.1.1 (USB kit over P2P, Windows pop-up and workers fixes) by @DuongNAD in #192
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Install: download the archive for your system below and check it against SHA256SUMS (Install), then follow the Quick start. The binaries are not signed or notarized.
Measured on 2026-11-09: cargo test offloaded from a Mac to a Windows laptop took about 210 s on the first run and 7 s on the second, which reused the remote target/ (record).
The first tagged release: archives for Linux, macOS and Windows, with and without gpu-wgpu, and
SHA256SUMS on the Releases page. The user story
it ships: a coding agent on one machine runs cargo test on another machine of the grid, and the
second run reuses the remote target/ (offload guide).
Upgrading
Every machine of a cluster must run 0.1.0. The wire protocol is version 7
(PROTOCOL_VERSION_CURRENT in crates/core/src/protocol.rs), and the oldest version a peer accepts
is also 7, so a master, worker or client built from an earlier commit is refused with an
Incompatible protocol version error instead of misreading messages. In a running cluster:
- Stop the master cleanly (
SIGTERM, so a master with a format-1--state-dirwrites its snapshot
first, design 0046), replace its binary and start it. - Replace and restart the workers. The upgraded master refuses a worker that still runs an
earlier build, before it registers. - Replace the binary that clients, scripts and
oxideswarm mcpuse.
The order and the reasons are in DEPLOYMENT.md section 3.5.
Added
- Cluster authentication v2 (
crates/core/src/cluster_auth.rs) and ChaCha20-Poly1305 AEAD record layer (0x04) for post-handshake TCP/QUIC frames (design 0005). - Content-addressed blob data plane (
crates/core/src/blob.rs,crates/master/src/blob_store.rs,crates/worker/src/blob_cache.rs) for deduplicated file staging and artifact retrieval (design 0006). - Concurrent MCP stdio server (
oxideswarm mcp) with per-callwait_secsdeadlines, task cancellation (canceltool andnotifications/cancelled), andnotifications/progressframes (design 0004, design 0012). - CLI
oxideswarm cancel <TASK_ID>andoxideswarm result <TASK_ID> [--wait] [--json] [--output-dir]commands (design 0010). - Pure-Rust Tier-0 analytical SDF 3D generator (
crates/worker/src/gen3d), Blender/3D process supervision, and 15-joint topological DAG auto-rigger (crates/worker/src/autorig) (design 0009, design 0015, design 0017). - Hardened subprocess execution (
crates/worker/src/runner.rs) with process-group / Windows Job Object cleanup, environment sanitization, output validation/harvesting, and private Unix sandbox base<temp>/rusty_grid-<euid>/sandboxes(design 0013, design 0021). - Agent Mesh command whitelist (
echo,ping,system_info,sha256_verify,shell_exec),--no-shellrestriction, secret environment variable sanitization (SECRET_ENV_VARS), 1 MiB stream capping, stdin detachment, process-tree termination on timeout, and failing unresolved pending commands/ACKs on WebSocket disconnect inscripts/agent_node.py(design 0011, design 0019). - Master durability:
master --state-dir <DIR>keeps queued, running and finished tasks in a journal and snapshot and replays them at start. A worker keeps running its tasks across a short disconnect, and the master adopts them again when it resumes the session (--session-resume-hold-secs,--session-resume-grace-secs) (design 0046). - OS-level task isolation on macOS (
sandbox-exec), Linux (Landlock, seccomp, namespaces) and Windows (per-task AppContainer profile,oxideswarm.toolchaincapability SID and private Desktop):worker --isolation off|fs|fs+net, aniso:worker tag,submit --require-isolation(require:iso=),windows/revoke-isolation-acls.ps1(removes the toolchain grants that Windows isolation records) and an isolation column inoxideswarm doctor. On Windows,cargodoes not run under--isolation fs|fs+netyet, so a Windows worker refuses--workspacestogether with isolation (FEAT-3d) (design 0033). - Workspaces: protocol 7 adds
Task::workspace, aHelloversion probe andClientMessage::ListWorkspaces, a worker started with--workspacesruns a workspace task in a persistent synced tree (with a lock per workspace and size bounds, sotarget/survives between tasks), the master places a workspace task with affinity and one task at a time, and the client scans a source tree with.gitignoreand limits (submit --workspace,--sync/--no-sync,--cwd,oxideswarm workspaces, and the MCPworkspacefield andworkspacestool). Client commands andoxideswarm mcpalso accept an iroh P2P ticket via--master <TICKET>,OXIDESWARM_P2P_TICKET, or[status].masteroverSTREAM_CLIENT(0x03) (design 0039). - Tool probes and Cargo builds: workers advertise
tool:cargo,tool:rustcandtool:git,submit --require-tooland the MCPtoolsfield pin a task withrequire:tool=, and a compile task with aCargo.tomlrunscargo build --offline(submit --type compile --source, MCPtype: "compile") (design 0039 D8, design 0020). - Several blob uploads in flight from one client, and up to 16 blob requests handled at once per client connection on the master (design 0006, design 0039 W9).
oxideswarm doctorshows whether each worker link is direct or relayed (LINKcolumn, check C7) and measures blob throughput to each worker (check C8,--skip-throughput) (design 0001).oxideswarm secret join-tokenandoxideswarm join: one token, read from standard input, carries the master's address or ticket and the cluster secret, writes the secret at mode 600 and runs thedoctorchecks (design 0048).- Release workflow
.github/workflows/release.yml: archives for Linux, macOS and Windows, with and withoutgpu-wgpu, plusSHA256SUMS, built on av*tag, and an install section inREADME.md. --relay-url <URL>(RUSTY_GRID_RELAY_URL,relay_url) for the master, workers and clients, so P2P traffic can use your own iroh relay instead of the public n0 relays, and a self-hosted relay guide (design 0049).- Guide Offload cargo test to another machine, from the command line and over MCP.
- Benchmarks
benchmarks/grid/bench_grid.pyfor task overhead, repeated uploads and the offload ofcargo testto a workspace on another machine (--only c), each with a dated record (benchmarks/grid/README.md).
Changed
- Removed
oxideswarm mcp --ssein favour of stdio-only MCP transport and fail-closed client secret enforcement on non-loopback masters (design 0004). - Enforced bounded host capability probes, active queue budgets, oversized task result handling, and inbound JSON/blob request routing (design 0008, [design 0018](https://github.com/DuongNAD/OxideSwarm/blob/v0.1.0/docs/design/0018-inbound...