#22702: fix(appcast): correct sparkle:version for 2026.2.13
size: XS
Cluster:
Update Handling Fixes
## 🤖 AI-Assisted (Claude via OpenClaw)
**Testing:** Fully tested — added comprehensive validation test + verified fix locally
**Understanding:** Root cause identified (legacy build number vs date-based format), fix validated with test coverage to prevent future regressions.
---
## Problem
Version 2026.2.13 in `appcast.xml` had `sparkle:version` set to `9846` instead of the expected date-based format `202602130`.
This caused Sparkle's version comparison to malfunction, potentially offering older versions as updates to users with newer builds (as reported in #22657).
## Root Cause
The `sparkle:version` must follow the date-based format:
```
YYYY + MM (zero-padded) + DD (zero-padded) + 0
```
Example:
- `2026.2.15` → `202602150` ✅
- `2026.2.13` → `202602130` ✅ (expected)
- `2026.2.13` → `9846` ❌ (actual, legacy build number)
## Solution
1. **Fix appcast.xml:** Changed `9846` → `202602130` for v2026.2.13
2. **Add validation test:** New test validates ALL versions in appcast.xml use correct date-based `sparkle:version` format, preventing future regressions
## Testing
```bash
pnpm test appcast.test.ts
# ✓ All tests passing
```
The new test would have caught this bug before it reached production.
## Fixes
Closes #22657
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Fixed `sparkle:version` for v2026.2.13 from legacy build number `9846` to correct date-based format `202602130`. Added comprehensive validation test that checks ALL versions in `appcast.xml` use the expected `YYYYMMDD0` format, preventing future regressions.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with no risk
- The fix is surgical and correct - it changes a single hardcoded version string from an incorrect legacy build number to the proper date-based format. The new test provides comprehensive validation coverage and would have caught this bug before production. All three versions in the appcast now follow the correct format.
- No files require special attention
<sub>Last reviewed commit: 7a156bf</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#23292: fix(mac): correct sparkle:version for 2026.2.21 in appcast.xml
by SidQin-cyber · 2026-02-22
89.4%
#23597: fix(mac): stop Sparkle updater from offering downgrades as updates
by cyberdrk305 · 2026-02-22
88.4%
#23730: fix(update): correctly compare versions with -N build suffix
by mrx-arafat · 2026-02-22
71.0%
#23271: fix(chat): strip untrusted metadata blocks from Control UI messages
by lbo728 · 2026-02-22
68.2%
#23113: fix: show actual runtime version after update/restart when service ...
by BryanTegomoh · 2026-02-22
66.0%
#9259: Fix: Restore explicit glob patterns in package.json files field
by vishaltandale00 · 2026-02-05
65.6%
#22807: fix: parameterize magic numbers in ensureA2uiReady (issue #22745)
by ambicuity · 2026-02-21
65.4%
#11048: fix: address repository issues (env, author, CI comments, security ...
by cavula · 2026-02-07
65.3%
#23660: fix(update): compare numeric -N suffix as build revision
by rylena · 2026-02-22
65.2%
#20496: test(utils): add comprehensive unit tests for utility functions
by masifislamm · 2026-02-19
65.1%