Expand description
First-boot model bootstrap into the shared CAS store.
Per ADR 0010 the daemon may issue outbound HTTPS for one purpose
only: fetching a pinned GGUF named in ~/.inferd/config.json. Per
ADR 0011 the bytes land in the shared content-addressable store
at $MODELS_HOME/blobs/sha256/<aa>/<hash>/data, with a manifest
written at $MODELS_HOME/manifests/<name>.json.
Producer flow:
- Acquire
LOCK_EXon$MODELS_HOME/locks/<name>.lock. - If the manifest already names a blob and that blob exists: optional re-verify, then return the blob path immediately.
- Otherwise stream HTTPS into
$MODELS_HOME/blobs/sha256/<aa>/.partial-<hash>/data.tmpwith a running SHA-256. - Constant-time compare computed vs expected SHA (F-5).
- On match: atomic-rename into place, write manifest. On
mismatch: move bad bytes into
locks/quarantine/and bail. - Release the lock.
Progress events publish through a StatusBroadcaster so the
admin socket can fan them out to UIs and middleware.
Structs§
- Model
Spec - One downloadable GGUF model. The fetch contract is one URL +
expected SHA-256; anything more elaborate (registries, mirrors)
belongs in the operator’s HTTP proxy or a
wgetstep, not here.
Enums§
- Fetch
Error - Errors produced by
fetch_model.
Functions§
- fetch_
model - Resolve a model into its CAS blob path.