Skip to content

feat(protocol): add song explorer JSON contracts - #4

Merged
cubevlmu merged 1 commit into
mainfrom
feature/song-explorer-contracts
Oct 4, 2026
Merged

cubevlmu merged 1 commit into
mainfrom
feature/song-explorer-contracts

Conversation

@OhnkytaBlabdey

@OhnkytaBlabdey OhnkytaBlabdey commented Oct 4, 2026 •

Copy link
Copy Markdown

Summary

  • Add the shared Song Explorer JSON contracts for queries, pages, song/chart summaries, chart detail, distributions, errors, and controlled local-history rebuild results.
  • Add optional PlatformSongSummary.CoverFallbackUrl (coverFallbackUrl in web JSON) for a pinned GitHub fallback to the primary CDN cover. Missing or null values remain compatible, and the existing positional constructor is unchanged.
  • Preserve nullable values, genuine zeroes, decimal-string rebuild cursors, source coverage, and catalog/schema/score/statistics/resource/counter-rule versions.
  • Keep these contracts JSON-only: no changes to existing game MessagePack models, union IDs, or MasterMemory table layouts.
  • Document portable local-package validation and the cross-repository rollout order in English and Chinese. Production package versions and ignore rules are unchanged; local tools and validation artifacts are excluded from this PR.

Validation

  • Release solution build passed with 0 warnings and 0 errors.
  • Explicit dotnet test tests/Sirius.Protocol.Tests -c Release: 11/11 passed, 0 skipped. The same 11 tests also passed against the actual local NuGet packages without a sibling-source project reference.
  • Sirius.Protocol.Tests is not included in SiriusData.sln. These are explicit local test results, not a claim that the current solution-level CI step runs the contract tests.
  • Two real MasterMemory publications passed BYTE-EXACT ROUNDTRIP with exit code 0: both have 229 tables, containing 84,822 and 84,877 rows respectively. Input/output hashes and lengths matched, inputs remained unchanged, and the tool's Protocol assembly matched the locally validated package. This verifies decoding and no-edit repacking.
  • The maintainer completed manual browser acceptance of the combined Data, Dashboard, and Server Song Explorer functionality.
  • Staged whitespace checks passed; only the four intended source, test, and README files are included, with no machine-specific absolute paths or new ignore rules.

Rollout / dependent PRs

  1. Review and merge this Data PR first.
  2. Wait for the merged main commit's build and rolling-release jobs to succeed, then verify that the latest release records that commit and both NuGet packages have the same generated version.
  3. Rerun Dashboard and Server restore/build checks through their existing rolling NuGet integration before completing the consumer PRs.

This PR does not publish a release or tag. The public latest assets have not been asserted to contain these new contracts, and local integration validation does not establish that the consumers' default restore/build already succeeds against the public release.

Consumer PRs: SiriusServer #18 and SiriusDashboard #9.

CI / publication status (2026-10-04)

  • Data PR workflow 37191022333: build SUCCESS, rolling-release SKIPPED. Skipping publication on the PR is expected; these results do not mean the packages have been released.
  • Public-package consumer validation is still gated on the subsequent merged main build, rolling release and paired assets. The local validation evidence above remains separate from publication and normal consumer CI.

Related PRs

Coordinated merge and release order

  1. Review and manually merge SiriusData feat(protocol): add song explorer JSON contracts #4 into main first.
  2. Wait for that main revision's build and rolling-release jobs to succeed. Verify that public latest identifies the release commit containing Data feat(protocol): add song explorer JSON contracts #4 and that the paired Sirius.Protocol.nupkg and Sirius.MasterData.nupkg assets are available with the same generated version and matching published checksums. A successful Data PR build with rolling-release skipped is not a package publication.
  3. Rerun normal Server and Dashboard restore/build validation through their existing public rolling NuGet integration, using the published paired packages rather than the local validation handoff.
  4. Only after the package gate and consumer validation succeed, manually merge Server #18 and Dashboard #9. Deploy compatible consumer versions and apply the existing Server migration chain. The maintainer's browser acceptance has already passed; the documented known limitations remain applicable.

This coordination does not authorize automatic merging or publish a release. The new Song Explorer contracts were not yet in the public rolling packages at this verification: latest still identified 2dc4f08b07c5c57ff99d4f2be6f060d14a44e2d4, with assets last updated on 2026-10-03; the Data PR commit c699660fbe55d7175906aba848c2865098dceaad is one commit ahead of that tag.

Co-authored-by: Codex <codex@openai.com>
@cubevlmu
cubevlmu merged commit dc5fdf4 into main Oct 4, 2026
2 checks passed
@cubevlmu
cubevlmu deleted the feature/song-explorer-contracts branch October 4, 2026 12:25
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