fix(catalog): select international catalogs by resource version - #13
Merged
nichinichisou0609 merged 1 commit intoSep 30, 2026
Conversation
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.
International
catalog_main_<language>.bincan remain unchanged afterMasterdataService/Versionpublishes a newerresource_version. This leaves new stories unavailable tostory/weband prevents their Live2D pre-pass from discovering the referenced models.catalogs fetchalso downloaded main before querying Version, so it could label old bytes as the new release.This change selects
catalog_<resource_version>_<language>.binbefore downloading. With a configured international API, catalog-based commands discover the resource version first. Builds can pin it with--catalog-release,[catalog] version, or[servers.<region>] catalog_version. The existing asset-store--catalog-version LABEL|SHAoption keeps its separate meaning.catalog, story/Live2D/web commands throughopen_catalog,catalogs fetch, andbrowse.main, preserve legacy main behavior when neither an API nor a pin is configured, and retain JP's existing version/hash discovery.Observed on 2026-09-30: at the same TW CDN root,
catalog_main_zh-Hant.binstill had 44,630 keys, whilecatalog_1.0.0.201_zh-Hant.binhad 45,696. Episode IDs 10946–10954 were absent from main and present in the versioned catalog. Both contained 239 Live2D model keys; the failure was the missing episode scripts, not a demonstrated loss of model keys.Validation:
python -m pytest -q: 1,341 passed.GOLDENS_STRICT=1 python -m pytest -q tests/test_goldens.py tests/test_objexport.py: 45 passed.1.0.0.201, found all nine episode keys, discovered ten models from episode 10948, and exported one referenced Live2D runtime model. Its moc3, prefab JSON, and two textures matched the independently validated workflow-fix output byte for byte. No game files or credentials are included in this PR; full story/audio/site publication was not part of this check.Based on current upstream
main(e65e783); this PR contains only the core fix, tests, and documentation, with no StarMoe-specific workflows or endpoints.