Skip to content

Pin Chatterbox model revisions and publish atomically - #61

Draft
Blackspirits wants to merge 3 commits into
upl/review-base-fa6dfrom
fix/chatterbox-model-pin-fa6d
Draft

Blackspirits wants to merge 3 commits into
upl/review-base-fa6dfrom
fix/chatterbox-model-pin-fa6d

Conversation

@Blackspirits

@Blackspirits Blackspirits commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Summary

Chatterbox model downloads currently use Hugging Face resolve/main URLs even though the code comments describe the Base V3 models as pinned. The GGUFs are also downloaded directly to their final paths, so a failed/partial download can leave a file that later existence checks treat as installed.

This change:

  • pins Base Chatterbox model URLs to immutable Hugging Face revision c45504bb8d55473a2213db17ec472ed11b69056a
  • pins Chatterbox Turbo model URLs to immutable Hugging Face revision b544cf8b49504d880640864a757b3ff3e4421a42
  • removes resolve/main from Chatterbox model downloads
  • downloads each GGUF to a same-directory .part path
  • publishes the final path only after the download completes successfully and cancellation is rechecked
  • removes stale/failed temporary files
  • preserves an existing final model if a replacement attempt fails
  • leaves model keys, file names, backend selection, quantizations and model contents unchanged
  • adds regressions for both immutable revision URLs, successful atomic publication, and failed-download preservation

Validation

  • current cstr/chatterbox-GGUF tree identifies revision c45504bb8d55473a2213db17ec472ed11b69056a as “Publish pinned Chatterbox Multilingual V3 GGUFs” and contains the V3 assets used by Subtitle Edit
  • current cstr/chatterbox-turbo-GGUF snapshot resolves to revision b544cf8b49504d880640864a757b3ff3e4421a42 and contains the Turbo Q8_0 assets used by Subtitle Edit
  • no SHA-256 claim is made for these Hugging Face/Xet model blobs; this PR establishes immutable repository revision identity and atomic local publication
  • initial CI run #34720170036 exposed a regression-test expectation bug: DownloadHelper retries and wraps repeated HTTP failures in InvalidOperationException
  • the regression was corrected to assert that public contract and preserve the original HttpRequestException as the inner cause
  • full solution restore passed after the correction
  • full solution build passed after the correction
  • full solution test suite passed on the first run after the correction
  • retry step was not used on the corrected run
  • validation run: #34720966219

Base is current upstream fa6d8623c2adb0c646b6d31a11b221b855339bbe.

AI assistance: ChatGPT was used to audit the Chatterbox model provenance/publication path, verify immutable Hugging Face revisions, prepare the minimal pin/atomic-publication fix, and add regression coverage.

Copy link
Copy Markdown
Owner Author

Independent adversarial re-check completed after the regression-test correction. The Base and Turbo model URLs are pinned to verified immutable Hugging Face revisions c45504bb8d55473a2213db17ec472ed11b69056a and b544cf8b49504d880640864a757b3ff3e4421a42; model selection/file names remain unchanged; downloads stage to .part, preserve an existing destination until commit, re-check cancellation immediately before publish, and remove temporary files on failure. The earlier CI failure was a test expectation mismatch with DownloadHelper's documented retry/wrapping behavior, not a production defect. Corrected CI run #34720966219 passed restore/build/full tests on the first 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