OXYGENHUB
# f2609cf795d8 oxygenflow / CHANGELOG.md
2.0 KiB · Markdown · last changed pipeline.kdl: timeout on a job or a sandbox 1 month ago renderedsource blame history raw
1
# Changelog
2
3
OxygenFlow has no release yet: the runner on Earth runs `main`. This file starts on 2026-10-01; earlier history is in `oxy log`.
4
5
## Unreleased
6
7
- **A job says how long it may run (#23).** `timeout "90m"` on a job, or on a sandbox for its jobs (hours, minutes, seconds; a minute to a day). The hub caps it at the site's maximum.
8
9
- **A pinned file is re-read from the disk before its hash is called wrong (#22).**
10
11
- **A runner says which jobs it holds (oxygenhub#71).** Each claim lists the jobs the runner is running or still has a result for, so the hub ends at once any job it lost by restarting, instead of an hour later at the time limit.
12
- **A runner says which images it holds (oxygenhub#73).** Each claim lists the rootfs images in the runner's `cas/` (read each time, so an image imported while it runs counts), and the hub offers only jobs whose image is among them. plex-1 had failed metalgear's jobs for want of one.
13
14
- **A job's result is kept until the hub has it (oxygenhub#71).** The runner offered a finished job's result three times over seven seconds and then dropped it, so a hub that was briefly down (Earth's reset) left the job running forever. The result is now kept on disk (`pending/` in the Flow home) and offered again, every 5 s doubling to a minute, for up to two hours, through any server error or lost connection; a runner that restarts sends what it kept. A refusal (the hub ended the job already) is final.
15
16
- **The Rust build image vendors mimalloc (#20).** Oxygen's new allocator was missing from the image, so oxygen's runs #150 to #153 failed. The image was rebuilt with `images/rust/build.sh`, imported on Earth and pinned in the oxygen, oxygenhub and oxygenflow pipelines. Rebuild it whenever a `Cargo.lock` of those projects changes.
17
- **A hint for shell escapes in a pipeline.** KDL 2.0 strings have no `\033`, `\e` or `\x` escapes; a pipeline that uses one (for ANSI colours, say) is still invalid, but `flow check` and the hub now name the line and say to write ESC as `\u{1b}`.