- **Runner builds through the swarm (#84):** a runner in a swarm fetches an offered build as the image its BLAKE3 names, from its site's peers and the hub together, as it fetches images, and checks its size and BLAKE3 before installing it; over HTTP as before when it is in no swarm, the hub has not shared the build yet, or the swarm cannot get it. The hub shares a build the first time it offers it (OxygenHub 0.9.15), so a site's runners fetch it from each other and the hub serves it about once per site. The build stays in the runner's images for its peers.
8
+
- **`flow` builds on Haiku (#91):** with `--no-default-features`, `flow` now builds natively on Haiku R1/beta6 (HaikuPorts' Rust 1.94): the syscall tier, the guest's job code and the load average are Linux's (and Android's) only, and the `noatime` check takes reads as recorded where statvfs has no such flag. It checks pipelines and runs `flow tiers`, which says no tier runs there yet: the host tier (#90) is next.
8
9
- **The WASM tier can be left out of a build (#91):** the `wasm` cargo feature (on by default) carries wasmtime; `--no-default-features` builds `flow` for systems wasmtime does not run on, such as Haiku, whose runners then offer no WASM tier and say why.
9
10
10
11
## 0.5.1 (2026-10-28)
…
122 unchanged lines
modifiedcrates/flow-init/src/prune.rs+6−1
…
95 unchanged lines
96
96
if unsafe { libc::statvfs(c.as_ptr(), &mut st) } != 0 {
97
97
return false;
98
98
}
99
-
st.f_flag & libc::ST_NOATIME == 0
99
+
// A system whose statvfs has no `noatime` flag (Haiku) cannot say:
100
+
// its reads are taken as recorded, and the access-time check decides.
101
+
#[cfg(not(target_os = "haiku"))]
102
+
return st.f_flag & libc::ST_NOATIME == 0;
103
+
#[cfg(target_os = "haiku")]
104
+
true
100
105
}
101
106
102
107
#[cfg(unix)]
…
298 unchanged lines
modifiedcrates/flow/src/facts.rs+2−2
…
102 unchanged lines
103
103
/// The 1-minute load average, times 100, from sysinfo (the kernel's own
104
104
/// numbers behind /proc/loadavg, which an Android app may not read); not