fix(replay): hand the fetched release assets to the manifest refresh - #11
Merged
Conversation
The admin replay fetched the upstream release, assets and all, then called refreshManifestAtRelease without them. The asset-first resolver saw an empty list, strict mode declared the manifest missing, and the replay deferred to a delayed asset recheck — so pressing the button wrote no manifest data and left min_runtime_version NULL until a background retry happened to land. The release webhook path already passed its assets; the replay just did not. Visible on the production registry: replaying every plugin logged 'manifest asset missing — strict mode' with assetCount: 0 for releases whose manifest asset was published all along.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
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.
Found while repairing every plugin on the production registry after #10.
The admin Replay webhook fetches the upstream release — assets included — and then calls
refreshManifestAtRelease(plugin, tag, version)without them. The asset-first resolver returns null for an empty asset list, strict mode declares the manifest missing, and the replay quietly defers to a delayed asset recheck (30s/90s/180s) instead of doing the work the operator just asked for.Production logs from the sweep, for releases whose
.tabulariumasset has been published all along:Consequence: pressing Replay wrote no manifest data, so
min_runtime_version(and the release README, and the manifest sha/raw) stayed empty unless a background recheck happened to land. The release webhook path has always passednormalized.assets; the replay simply did not.One argument. Covered by a new route test that drives the endpoint with a mocked forge and asserts the release row comes back with
manifest_rawandmin_runtime_versionwritten — it fails against the old code.bun test479 pass / 0 fail,tscclean.