OXYGENHUB

Runners send the manifests of images they hold, so the swarm moves an image nobody pushed issue #94 closed: completed andymccall opened this · 1 comment

andymccall

Runners send the hub the manifests of images they hold, so the swarm moves an image no one pushed. Design: docs/jetstream.md §8.1.1.

Why: on 2026-10-25 the Rust image was re-pinned and not pushed with flow rootfs push. For a day every Rust job in oxygen, oxygenhub and oxygenflow queued on earth-1, the one runner that held it, while plex-1 and mars-1 sat idle. Once the image was pushed, plex fetched it entirely from Earth through the swarm. The swarm could have carried it all along: only the manifest had to be on the hub.

Runner side (this issue):

  • A claim's answer may ask for manifests (send_manifests). The runner sends each with PUT /flow/images/{hash}/held: the manifest alone, from its home's manifests/.
  • Fetch: the announce answer's seed says whether the hub holds the chunks. When it doesn't, no hub workers run, and the fetch fails plainly when no peer is left.
  • flow-core: the new fields; spec §11.

Hub side: oxygenhub#342.

andymccall set labels feature ·

referenced by 3 changes on 27 Oct 2026

3e3cc9475ab3 32f54b393396 8b7034c55402

andymccall

Done in OxygenFlow 0.5.0 with oxygenhub#342 (OxygenHub 0.9.8): runners offer the manifests of images they hold, the hub keeps them as peer-held, and placement and the swarm use them. Earth offered 15 manifests on its first pass.

andymccall closed ·