- Quick reference commands for releases
- Pre-release checklist with all version files
- Troubleshooting section for common issues
- Documentation of new tools (progress monitor, health check)
- Best practices based on beta.13 experience
- Manual recovery procedures
- Updated release.md documentation to emphasize per-release changelog behavior
- Added fix-release-changelogs.sh script to update existing releases
- Clarified that release script already extracts only specific version changes
- Script can fix releases that incorrectly show full changelog history
The release system already works correctly - it extracts only the specific
version's changelog. The issue was with some existing releases that somehow
got the full CHANGELOG.md content instead of the extracted version.
- Add state tracking and resume capability to release process
- Create release-state.sh for tracking 9 major release steps
- Add --resume and --status flags to release.sh
- Fix private key format handling for sign_update tool
- Create clean key file (sparkle_ed_private_key) automatically
- Handle missing custom Node.js builds gracefully
- Add DerivedData app location fallback
- Create comprehensive release-checklist.sh script
- Update release documentation with critical learnings
- Enhance Stats.store documentation with setup instructions
- Add troubleshooting for 'Application not found' error
- Document fallback options for direct GitHub URLs
- Update all scripts to handle clean key file format
These improvements make the release process more reliable and
resilient to interruptions, with better error handling throughout.
- Updated generate-appcast.sh with prominent warnings about using -f flag
- Added critical warnings to release documentation (RELEASE.md and release-guide.md)
- Created validate-sparkle-signature.sh script to verify signatures before release
- Added pre-release checklist items for signature validation
- Documented the beta 8 incident and resolution
This ensures we always use the correct file-based private key and never accidentally use the keychain key that produces incompatible signatures.
- Corrected Stats.store description as privacy-first analytics backend
- Fixed benefits section to reflect actual features (not CDN)
- Clarified that Stats.store is a transparent proxy, not hosting files
- Added details about anonymous data collection
- Stats.store cache confirmed to be 1 minute as documented
- Updated appcast-prerelease.xml with correct signature generated from file-based private key
- Added comprehensive documentation about Sparkle/Stats.store integration
- Documented the beta 8 incident and resolution
- The issue was caused by using the wrong private key (keychain vs file)
- Document lessons learned from v1.0.0-beta.5 release
- Add quick reference guide for common release tasks
- Include troubleshooting for timeout and appcast issues
- Clarify DMG notarization behavior (DMGs aren't notarized, only apps inside)
- Always use --account VibeTunnel for Sparkle signing
- Add automatic DMG volume cleanup to prevent resource errors
- Better handling of CHANGELOG.md location (check both mac/ and root)
- Add comprehensive RELEASE-LESSONS.md with all gotchas
- Add signature verification step to release process
- Improve error messages and debugging output
- Pass SPARKLE_ACCOUNT environment variable through scripts
- Move all macOS-specific code from root to mac/ directory
- Move app icons and assets to dedicated assets/ directory
- Update GitHub workflows for new structure
- Consolidate documentation files
- Clean up root directory for better multi-platform organization