Skip to content

feat(jp): support Japanese release assets and split APKs - #7

Merged
Exmeaning merged 1 commit into
MetaSekaiLab:mainfrom
StarMoe-org:codex/upstream-jp-support
Sep 29, 2026
Merged

Exmeaning merged 1 commit into
MetaSekaiLab:mainfrom
StarMoe-org:codex/upstream-jp-support

Conversation

@luoxiadesu

Copy link
Copy Markdown
Contributor

The Japanese release serves authenticated, versioned catalogs and splits its Android boot data and resources across APKs. The current international download path cannot resolve its remote asset placeholders or provide all local resources to the existing exporters. This adds JP support to the existing commands while preserving international settings and catalog IDs.

  • Discover JP master and Android asset versions from anonymous Version metadata, with in-memory CDN authentication, configured-origin checks and bounded refresh. Reject truncated downloads and invalid master manifests.
  • Parse gzip catalogs and JP remote placeholders; isolate catalog/cache/task identities by CDN snapshot and embedded files by APK catalog. Support offline replay and fail explicitly when missing historical resources would require another snapshot.
  • Read ordinary APKs, base APKs with adjacent splits, APK directories and APKS/XAPK archives. Load datapack resources alongside boot data. Add per-region client/APK/catalog settings and expose the asset hash in music-data provenance.

This branch is based directly on upstream main at 12df2a6. It contains only library/CLI changes, tests and documentation. The StarMoe publishing workflows, deployment settings and dependency-workflow changes are excluded. Core source and tests match the reviewed implementation merged in StarMoe-org#3 and #5.

Validation:

  • Upstream worktree: 1,202 tests passed on Python 3.11; 45 strict golden/object-export checks passed; Pyflakes, whitespace and staged Gitleaks checks passed. Rust source, lockfile and dependency metadata are unchanged; the identical release extension built during the original implementation was reused for local tests.
  • The same core passed Python 3.11/3.12/3.13, Rust and golden CI in fix(jp): reject incomplete downloads and isolate APK updates StarMoe-org/nnnotes#5.
  • Live JP client 1.0.4 with local JP Android 1.0.3 data: 238 master tables downloaded and decoded, chart/jacket samples and one Live2D runtime model exported, and one complete story with 22 FLAC files verified by full decoding. music-data --decoded-master --no-bgm built 85 songs / 340 charts with pinned deck statistics and passed JSON Schema validation. Game data and credentials are not included.

Limits are documented in docs/jp.md: full JP story/model/movie and BGM coverage, browser playback and native scoring parity remain unverified. Bili chat skin rows with JP-specific fields retain the existing no-value result. JP stories/models use a separate output site from international releases.

@Exmeaning
Exmeaning merged commit 9bd4452 into MetaSekaiLab:main Sep 29, 2026
6 checks passed
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.

2 participants