detail: resolve display version + release date per external id#5
Merged
Conversation
m2.5 fills in the rows that previously read "ext 831776527". the version timeline now shows "9.7.2 · 2026-04-30" once metadata streams in. * AppStoreClient.versionMetadata + VersionMetadata.run hits the same /volumeStoreDownloadProduct endpoint with externalVersionId set, then reads songList[0].metadata.bundleShortVersionString + .releaseDate from the response. apple's signed ipa URL is discarded — m3 reuses the wiring when it actually downloads bytes. * AppDetailViewModel resolves sequentially after listVersions returns. the HTTPClient AsyncThrottle paces calls at >=500ms so storefront rate-limits stay happy. * failures during metadata resolution are silent — the row stays as "ext NNNNN" rather than blocking the whole timeline. ios 14 baseline preserved.
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.
what
version timeline rows now read `9.7.2 · 2026-04-30` instead of
`ext 831776527`. metadata streams in after listVersions returns.
why
picking the right historic version, and that needs a readable label
changes
(volumeStoreDownloadProduct with externalVersionId set; ipa URL
discarded)
paced by the HTTPClient AsyncThrottle (>=500ms)
the timeline never blocks on a single bad row
test
swap from "ext 831776527" → "9.7.2 · 2026-04-30" as the rate-limited
metadata calls land
next
m3 — actual download + IPAPatcher (sinf injection + iTunesMetadata).