OXYGENHUB

Build caches in the syscall tier (narvi-1's riscv64 builds are always cold) issue #70 closed: completed andymccall opened this · 0 comments

andymccall

Andy's decision (2026-10-19). The syscall tier "keeps its disks empty for now" (spec §5), so every job on narvi-1 (issue #69) is a cold build: oxygen's riscv64 check takes ~40 minutes, and on a busy main a newer push supersedes it before it finishes (oxygenhub#267). The microVM tier already keeps a job's disk between passing runs (cache "target" / key "Cargo.lock", oxygenflow#28, issue #51, issue #54).

Build: the same cache/key semantics for the syscall tier's ephemeral://disk mounts (host directories): after a passing run the directory is kept in the runner's cache pool under the same slot (repository, job, cache name, key hash); the next run of that slot starts from a copy of it (a rename when nothing else can use it, else a copy); eviction under cache_gb as for microVM caches; the slot is reported in claims (caches, cache_times) so placement prefers the runner holding it, exactly as for microVM caches. A failing run doesn't keep its disk. A cache stays a speed-up, never a source of truth.

Then: narvi-1 rebuilt with it, and oxygen's riscv64 job gets cache "target" and key "Cargo.lock".

andymccall set labels flow-next ·

closed by change 2594278f49b2 ·