Skip to content

Releases

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 09 Nov 20:33
4c45b1a

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

Choose a tag to compare

@github-actions github-actions released this 09 Nov 14:13
bd27111

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:

  1. Stop the master cleanly (SIGTERM, so a master with a format-1 --state-dir writes its snapshot
    first, design 0046), replace its binary and start it.
  2. Replace and restart the workers. The upgraded master refuses a worker that still runs an
    earlier build, before it registers.
  3. Replace the binary that clients, scripts and oxideswarm mcp use.

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-call wait_secs deadlines, task cancellation (cancel tool and notifications/cancelled), and notifications/progress frames (design 0004, design 0012).
  • CLI oxideswarm cancel <TASK_ID> and oxideswarm 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-shell restriction, 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 in scripts/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.toolchain capability SID and private Desktop): worker --isolation off|fs|fs+net, an iso: worker tag, submit --require-isolation (require:iso=), windows/revoke-isolation-acls.ps1 (removes the toolchain grants that Windows isolation records) and an isolation column in oxideswarm doctor. On Windows, cargo does not run under --isolation fs|fs+net yet, so a Windows worker refuses --workspaces together with isolation (FEAT-3d) (design 0033).
  • Workspaces: protocol 7 adds Task::workspace, a Hello version probe and ClientMessage::ListWorkspaces, a worker started with --workspaces runs a workspace task in a persistent synced tree (with a lock per workspace and size bounds, so target/ 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 .gitignore and limits (submit --workspace, --sync/--no-sync, --cwd, oxideswarm workspaces, and the MCP workspace field and workspaces tool). Client commands and oxideswarm mcp also accept an iroh P2P ticket via --master <TICKET>, OXIDESWARM_P2P_TICKET, or [status].master over STREAM_CLIENT (0x03) (design 0039).
  • Tool probes and Cargo builds: workers advertise tool:cargo, tool:rustc and tool:git, submit --require-tool and the MCP tools field pin a task with require:tool=, and a compile task with a Cargo.toml runs cargo build --offline (submit --type compile --source, MCP type: "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 doctor shows whether each worker link is direct or relayed (LINK column, check C7) and measures blob throughput to each worker (check C8, --skip-throughput) (design 0001).
  • oxideswarm secret join-token and oxideswarm 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 the doctor checks (design 0048).
  • Release workflow .github/workflows/release.yml: archives for Linux, macOS and Windows, with and without gpu-wgpu, plus SHA256SUMS, built on a v* tag, and an install section in README.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.py for task overhead, repeated uploads and the offload of cargo test to a workspace on another machine (--only c), each with a dated record (benchmarks/grid/README.md).

Changed

Read more