OXYGENHUB

OxygenFlow 0.4.0 cce63af9ec54

Author
Andy McCall @andymccall <[email protected]>
via
agent agent:claude@andymccall <[email protected]> · keyless, under your grant for changes,refs,seal · key fb1751ba3b8b
When
· 2026-10-26 05:10 UTC
Signature
◈ sealed by agent:claude@andymccall
Hash
cce63af9ec5421766cc5de5ded72e192f4cd981fbac972ccff2e8d2551822f0c
Depends on
1408324d5d55 28cc603f737d 59078d2b8d46 c3db750ed96e e0918b887850 f4dfd742b30d f849c7889471
Depended on by
9296a15494d3 a63d3dcd2aef
In bookmarks
main
In tags
v0.4.0 v0.5.0 v0.5.1 v0.5.2 v0.5.3
Edits
10 atoms, 0 tree operations, 3 files

Browse the tree at this change

modified CHANGELOG.md +3 −0
…
3 unchanged lines
4 4
5 5
## Unreleased
6 6
7 +
## 0.4.0 (2026-10-26)
8 +
7 9
- **A Windows runner reports its Windows version (#83):** as its kernel fact (`Windows 10.0.26100`, from `RtlGetVersion`), shown on the hub's runner page and in `flow runner bench`. Built and linted for Windows; not yet run there.
8 10
- **`flow runner drain` (#83):** asks the home's running runner to drain, as SIGTERM does on Linux, through a `drain.request` file its loop reads: the way to stop a Windows runner without losing its job. A starting runner clears a stale request.
9 11
- **A Windows runner updates itself (#83, #85):** `flow runner update` on Windows checks a PE build, renames `flow.exe` to `flow.prev.exe` and `flow.new.exe` into its place with `MoveFileExW` (retrying while a virus scanner holds a new file; a running program cannot rename its own file, so a copy of it, `flow __rename`, does), tells the running runner through an `update.request` file in its home (no SIGUSR1 there), and the runner leaves and exits 75 so a Task Scheduler task set to restart on failure starts the new build, which proves itself by reaching the hub. Tried in the Windows VM: install, leave, exit 75, restart, proven. A rollback runs the restored build and ends with it. Spec §11.5.3.
…
13 unchanged lines
23 25
- **The WASM tier (#75):** `runtime "wasm"` runs WASI preview 1 modules with wasmtime 49 on any runner (`flow tiers` offers `wasm` everywhere): no rootfs, no network, the job's files at `/src`, its mounts at their targets, the memory limit enforced by wasmtime. `exec` names a module or a glob of them (`target/wasm32-wasip1/debug/deps/*.wasm` runs each test binary in turn); the receipt names wasmtime's version and every module's hash. The tier phones and browsers will run (docs/handover.md). Secrets and identities are not offered in it yet.
24 26
- **The runner as a library, for the phone (oxygenhub-android#8):** `flow` is now a library and the command built on it, and the whole runner builds for Android (`aarch64-linux-android`); `runner::serve_embedded` and `runner::stop` run it inside an app and drain it. There the WASM tier runs modules in a thread rather than a child process (also with `FLOW_WASM_IN_PROCESS`), streaming their output from pipes, stopping them at the time limit or when the run is cancelled through wasmtime's epoch, and reporting the most memory they asked for. Two portability fixes on the way (the seccomp filter's BPF opcodes and an ioctl request type).
25 27
- **cargo-nextest in the Rust image (#81):** for JUnit test reports beside `cargo llvm-cov`'s coverage.
28 +
26 29
## 0.3.1 (2026-10-25)
27 30
28 31
- **Runners read repositories with oxy 0.6.0:** a tag withdrawn on the hub (oxygenhub#301) is dropped when a runner fetches, a keyless agent's changes verify in a repository that pins its owner's newest key (oxygen#135) or has never seen it (oxygen#134), and shallow clones of big repositories work (oxygen#137). The runner itself is unchanged.
…
84 unchanged lines
modified Cargo.lock +5 −5
…
816 unchanged lines
817 817
818 818
[[package]]
819 819
name = "flow"
820 -
version = "0.3.1"
820 +
version = "0.4.0"
821 821
dependencies = [
822 822
 "anyhow",
823 823
 "blake3",
…
20 unchanged lines
844 844
845 845
[[package]]
846 846
name = "flow-casfs"
847 -
version = "0.3.1"
847 +
version = "0.4.0"
848 848
dependencies = [
849 849
 "anyhow",
850 850
 "fuser",
…
4 unchanged lines
855 855
856 856
[[package]]
857 857
name = "flow-core"
858 -
version = "0.3.1"
858 +
version = "0.4.0"
859 859
dependencies = [
860 860
 "blake3",
861 861
 "globset",
…
8 unchanged lines
870 870
871 871
[[package]]
872 872
name = "flow-init"
873 -
version = "0.3.1"
873 +
version = "0.4.0"
874 874
dependencies = [
875 875
 "libc",
876 876
 "serde",
…
398 unchanged lines
1275 1275
1276 1276
[[package]]
1277 1277
name = "jet"
1278 -
version = "0.3.1"
1278 +
version = "0.4.0"
1279 1279
dependencies = [
1280 1280
 "blake3",
1281 1281
 "hex",
…
1967 unchanged lines
modified Cargo.toml +1 −1
…
4 unchanged lines
5 5
resolver = "2"
6 6
7 7
[workspace.package]
8 -
version = "0.3.1"
8 +
version = "0.4.0"
9 9
edition = "2021"
10 10
license = "MIT OR Apache-2.0"
11 11
…
15 unchanged lines