QVAC-18481 test[skiplog]: pre-load multi-file model companion sets on bootstrap#1899
Merged
Conversation
Switch chatterbox/supertonic/parakeet/vision/diffusion to preLoadUnload so loadModel() at bootstrap fetches every companion file (encoder, decoder, vocab, projection, etc.) — otherwise they were lazily fetched inside the first test, which caused the tts-chatterbox-short-text Android flake (5 ONNX files + ONNX Runtime cold init blew through the 600s test watchdog). Add async config resolver to ResourceManager so chatterbox can resolve its referenceAudioSrc from the bundled RN asset registry at bootstrap time; cached per-dep. Remove the now-obsolete patchChatterboxReferenceAudio workaround from MobileTtsExecutor. Extend the iOS transcribe() skip list to catch the call sites that slipped past the ^transcription- regex (config-reload-then-transcribe, error-transcription-failed). Co-authored-by: Cursor <cursoragent@cursor.com>
Pull asset resolution + file:// stripping out of the duplicated copies in mobile/consumer.ts and mobile/executors/model-asset-executor.ts into a single mobile/asset-uri.ts helper. Both sites now delegate, so future changes to expo-asset handling live in one place. Tighter idioms in the helper itself: regex strip instead of substring(7), ?? instead of ||, no mutable let. Co-authored-by: Cursor <cursoragent@cursor.com>
Add `clean:sdk-snapshot` to wipe the cached @qvac/sdk copies left over in tests-qvac/node_modules and the iOS/Android consumer build dirs by previous `npm install --install-links` runs. Wire it into `install:build:full` so a full rebuild always pulls a fresh SDK snapshot after `prepare:sdk` rebuilds the SDK itself. Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
Contributor
Contributor
Contributor
Contributor
lauripiisang
reviewed
May 6, 2026
Contributor
Tier-based Approval Status |
Mobile MobileTtsExecutor used a string-prefix heuristic that mapped every `tts-supertonic-*` test to `tts-supertonic`, so the new `tts-supertonic-multilingual` resource was preloaded but never exercised by `tts-supertonic-multilingual-text`. Switch to `test.metadata?.dependency` to match the desktop TtsExecutor.
simon-iribarren
approved these changes
May 6, 2026
NamelsKing
approved these changes
May 7, 2026
Contributor
Author
|
/review |
lauripiisang
approved these changes
May 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note: be concise and prefer bullet points.
🎯 What problem does this PR solve?
tts-chatterbox-short-textflakes on Android smoke (first test cold-loads ~5 ONNX files + ONNX Runtime init, can exceed the 600s test watchdog)bootstrap()only pre-downloaded the mainconstantfor multi-file models (chatterbox, supertonic, parakeet, vision); companion files were lazily fetched during the first testreferenceAudioSrcresolved from a bundled RN asset URI — can't be expressed as a static config objecttranscribe()call sites slipped past the existing^transcription-skip regex (config-reload-then-transcribe,error-transcription-failed)📝 How does it solve it?
preLoadUnload: trueon mobile + desktop.loadModel()triggersdownloadCompanionSetFromRegistry()which fetches the entire set; the subsequentunloadModel()keeps the file cache + warm native pathsskipPreDownload: trueso models download in parallel during the download phase, then pre-load runs sequentially afterResourceManager(cached per-dep). Mobile chatterbox uses it to resolvereferenceAudioSrcfromexpo-assetat bootstrap timepatchChatterboxReferenceAudio()workaround inMobileTtsExecutor— config now carries everything before the first test runsresolveBundledAssetUrihelper (mobile/asset-uri.ts) —model-asset-executor.ts:resolveAsset()and the chatterbox audio lookup now delegate to it (was a duplicated 12-line block in two places)transcribe()skip list to coverconfig-reload-then-transcribeanderror-transcription-failed🧪 How was it tested?
preLoadUnloadmodels pre-cached cleanlytts-chatterbox-short-textgreen at 15.8stokenizer.jsonpreviously)