Skip to content

fix: handle unsigned 64-bit manifest IDs throughout the pipeline#9

Merged
joshuatam merged 1 commit intojoshuatam:gamenative-latestfrom
jeremybernstein:jb/fix-unsigned-manifest-id-part-deux
Apr 1, 2026
Merged

fix: handle unsigned 64-bit manifest IDs throughout the pipeline#9
joshuatam merged 1 commit intojoshuatam:gamenative-latestfrom
jeremybernstein:jb/fix-unsigned-manifest-id-part-deux

Conversation

@jeremybernstein
Copy link
Copy Markdown

Summary

  • Follow-up to Fix NumberFormatException for manifest GIDs exceeding Long.MAX_VALUE #8 which fixed the initial NumberFormatException in getSteam3DepotManifest parsing. That fix was incomplete — manifest IDs still rendered as negative signed longs in CDN URLs, file paths, log messages, and binary KeyValue UINT64 deserialization.
  • This PR fixes all remaining sites: CDN Client URL construction, Util save/load manifest filenames, DepotDownloader log messages, Steam3Session log messages, and KeyValue.tryReadAsBinary UINT64 → string conversion.
  • Adds parameterized tests for CDN URL construction and KeyValue UINT64 roundtripping, plus tests for Util manifest file path handling.

Apologies for the incomplete fix in #8 — should have traced the full pipeline the first time.

Test plan

  • ManifestIdUnsignedTest — CDN URL uses unsigned representation (parameterized)
  • ManifestIdUnsignedTest — CDN URL without request code
  • ManifestIdUnsignedTest — KeyValue binary UINT64 roundtrips
  • UtilManifestFilePathTest — save/load manifest filenames use unsigned ID
  • Manual: download depot 3701 for app 3700 (NWN:EE) — confirmed working via mavenLocal

add Util file path tests for save/load with manifest IDs > Long.MAX_VALUE
@joshuatam joshuatam merged commit 74d1ba0 into joshuatam:gamenative-latest Apr 1, 2026
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