Skip to content

Verify OmniVoice model downloads before publish - #62

Draft
Blackspirits wants to merge 2 commits into
upl/review-base-fa6dfrom
fix/omnivoice-model-download-sha256-fa6d
Draft

Blackspirits wants to merge 2 commits into
upl/review-base-fa6dfrom
fix/omnivoice-model-download-sha256-fa6d

Conversation

@Blackspirits

@Blackspirits Blackspirits commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Summary

OmniVoice downloads two pinned model files from Hugging Face resolve/main directly into their final paths. The Hugging Face repository exposes an immutable revision and SHA-256 for both files, so the client can authenticate them before publication.

This change:

  • pins model downloads to immutable Hugging Face revision 017094167b5c9ed565a5076ac9b3b93c5ecf5c73
  • pins SHA-256 for omnivoice-base-Q8_0.gguf
  • pins SHA-256 for omnivoice-tokenizer-F32.gguf
  • downloads each model to a same-directory .part file
  • verifies SHA-256 before publishing the final path
  • removes temporary files on download, cancellation or integrity failure
  • preserves an existing destination if a replacement attempt fails
  • fails closed before network access when a digest is missing
  • leaves OmniVoice engine/voices runtime URLs and hash registry unchanged; runtime fail-closed hardening remains isolated in internal PR Fail closed on unknown OmniVoice runtime hashes #56
  • adds regressions for immutable revision URLs, both published digests, verified publication, tampered cleanup/preservation, and missing-digest fail-closed behavior

Validation

  • Hugging Face repository snapshot is pinned to 017094167b5c9ed565a5076ac9b3b93c5ecf5c73
  • omnivoice-base-Q8_0.gguf SHA-256 independently matched Hugging Face/Xet metadata: 2882d887921798aea13d45236556bdf8012842ab6f8cd2690943eead6289f298
  • omnivoice-tokenizer-F32.gguf SHA-256 independently matched the repository LFS/Xet pointer: 83820c6316da023076af7c1d06de5e38dcd09ae9f42203675bf8b3bd9a58e330
  • no runtime URL/hash behavior is changed by this PR
  • full solution restore passed
  • full solution build passed
  • full solution test suite passed on the first run
  • retry step was not used
  • validation run: #34720265343

Base is current upstream fa6d8623c2adb0c646b6d31a11b221b855339bbe.

AI assistance: ChatGPT was used to audit the OmniVoice model provenance/publication path, verify immutable Hugging Face revision and published file digests, prepare the minimal pin/hash/atomic-publication fix, and add regression coverage.

Copy link
Copy Markdown
Owner Author

Independent adversarial re-check: the official Hugging Face repository currently exposes verified revision 0170941, whose link resolves to the pinned full revision 017094167b5c9ed565a5076ac9b3b93c5ecf5c73; omnivoice-base-Q8_0.gguf publishes SHA-256 2882d887921798aea13d45236556bdf8012842ab6f8cd2690943eead6289f298, and the tokenizer LFS pointer publishes 83820c6316da023076af7c1d06de5e38dcd09ae9f42203675bf8b3bd9a58e330. The diff stages to .part, verifies before publish, preserves existing files on failure, and fails before HTTP on missing digest. Full CI run #34720265343 passed on the first test run with no retry. No blocker identified. Keep draft; no merge/promotion performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant