Fix unpromoted releases treated as stable in appcast#5258
Merged
Conversation
Contributor
Greptile SummaryThe Rust backend changes correctly fix the unpromoted release issue by treating Core fix (correct and well-tested):
Critical issue - PR scope violation:
Per git workflow best practices, PRs should focus on a single concern. The unrelated commits should be split into separate PRs for proper review and git history clarity. Confidence Score: 3/5
Important Files Changed
Last reviewed commit: 45bbc34 |
Glucksberg
pushed a commit
to Glucksberg/omi-local
that referenced
this pull request
Apr 28, 2026
) ## Summary - Unpromoted releases (channel=null) were served to all users as stable because Sparkle treats no-channel-tag as the default (stable) channel - Now: null/missing channel → `<sparkle:channel>staging</sparkle:channel>`, `channel="stable"` → no tag (Sparkle default) - `/updates/latest` and `/download` now filter for `channel == "stable"` instead of empty/null - Promotion logic writes `"stable"` string instead of null when promoting beta→stable - New releases default to `"staging"` string instead of null ## Test plan - [x] Unit tests: 7 tests covering all channel→XML tag combinations and dedup behavior - [x] Local integration test: ran backend against prod Firestore, verified appcast XML, `/updates/latest`, and `/download` all return correct results - [x] Compared prod (broken) vs local (fixed) output side-by-side 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.
Summary
<sparkle:channel>staging</sparkle:channel>,channel="stable"→ no tag (Sparkle default)/updates/latestand/downloadnow filter forchannel == "stable"instead of empty/null"stable"string instead of null when promoting beta→stable"staging"string instead of nullTest plan
/updates/latest, and/downloadall return correct results🤖 Generated with Claude Code