Docs
Model trust & verification
How Bedrova checks downloaded models, why remote code is off by default, and how to verify provenance.
A model you download is code and data from the internet. Bedrova treats it that way: new models are checked and quarantined before they can run, and the riskiest behavior — running arbitrary repo code — is off by default.
Quarantine
A downloaded or imported model starts quarantined. It can’t load until:
- Its files verify (SHA-256 on download), and the manifest and license checks pass.
- Its tokenizer, config, and chat template validate against what Bedrova expects for text models.
- GGUF text models expose runnable llama.cpp metadata and stay text-only.
- Core ML perception packages expose provenance, task metadata, and supported output shapes.
If a check fails, the model stays quarantined with a clear reason and, where possible, a repair action — rather than loading something half-broken.
Remote code is off
Some repos ship Python that they expect the runtime to execute (trust_remote_code). Bedrova
disables this by default — no arbitrary repo code runs. Safetensors weights are preferred,
and tokenizer/config/template files are validated rather than executed. A repo that needs remote
code is flagged during discovery and held back; you decide,
deliberately, whether to allow it.
Gated models
When a repo is gated, accepting its terms is recorded with the model so it’s clear you agreed, and your Hugging Face token (Keychain-stored, never echoed) authorizes the download.
Provenance and SBOM
Bedrova tracks where things came from so a build is auditable:
- App provenance — build id, git SHA, and dependency locks.
- Runtime/provider packs — signed manifests with hash checks and rollback protection.
- Model provenance — the Hugging Face source and compatibility notes, carried in the model’s portable sidecar.
- Conversion provenance — Core ML packages can record conversion/source metadata; GGUF imports can record source model and quant information when available.
App updates are Ed25519-signed through Sparkle; runtime packs use TUF-style signed manifests.
Verify it yourself
- Check a model’s recorded source and hashes in its inspector.
- Confirm Bedrova isn’t phoning home by watching its network calls.
- Export a diagnostics bundle to see build id, git SHA, and pack versions.
See also
- Privacy & security — what stays local.
- Import local models — clearing a quarantined import.
- Runtime & engines — how packs are signed and pinned.