Home

dev / openkara

publicthedavidweng/OpenKara· sync paused
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

fix(runtime): make the ONNX Runtime install succeed and report one truth (#236) (#245)

2 months ago

8ec7cd5
Authored
Davy7/26/2026, 2:54:20 AM
Installing the runtime failed with "archive contains undeclared file
build-manifest.json" while the update check simultaneously claimed the runtime
was up to date, leaving no way to tell whether it was installed.

The install failure is a catalog-vs-archive contract mismatch, verified against
the published archive: its SHA-256 matches the catalog's archive_digest exactly,
but it ships six files while the catalog's extracted_file_digests declares only
five — the generator omits build-manifest.json. verify_extracted_files treated
any undeclared extracted file as a hard failure, so a byte-for-byte correct
archive was rejected on every platform and generation. Since archive_digest
already verifies the whole archive end-to-end before extraction, per-file
rejection of extras added no integrity guarantee; tolerate them and keep the
declared-file size/digest checks strict. Upstream manifest fix: #228.

The contradictory reporting came from the UI rendering "up to date" for every
non-update verdict, including not_installed, and from the install action leaving
its now-stale check report in place — so a repaired runtime could show "ready"
and "not installed" at once. Report only a genuine up_to_date verdict as current,
surface not_installed as such, and discard the stale report after an install.

Move the runtime install/repair CTA out of the AI Model card into the ONNX
Runtime card that already owns runtime status and updates. The model card no
longer replaces itself with that CTA, so the model-variant picker and the
existing "Check for model updates" button stay reachable while the runtime is
missing; only the download actions remain gated.

Finally, first-run onboarding asked for language, library, remote provider, and
stem mode — but never for a model, even though the model that the first
separation auto-downloads is the persisted model_variant. Add a model step so
that choice is made and persisted before the user reaches the library.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

Parentfc280cd

11 files changed
  • src-tauri/src/separator/artifacts.rs+24−14
  • src/components/Settings/LibrarySetup.render.test.tsx+52−1
  • src/components/Settings/LibrarySetup.tsx+113−5
  • src/components/Settings/SettingsModelVariantSection.test.tsx+26−11
  • src/components/Settings/SettingsModelVariantSection.tsx+17−50
  • src/components/Settings/SettingsOverlay.state.test.ts+55−0
  • src/components/Settings/SettingsOverlay.state.ts+7−3
  • src/components/Settings/SettingsRuntimeSection.test.tsx+62−0
  • src/components/Settings/SettingsRuntimeSection.tsx+48−1
  • src/locales/en.json+5−1
  • src/locales/zh-CN.json+5−1