feat(mac): About window — changelog link + update discovery (+ website /changelog)#105
Merged
Conversation
…te /changelog Adds a version-upgrade mechanism to the Mac app's About screen and the branded changelog it links to. Mac app (packaging/mac-client): - Updater.swift — dependency-free update discovery: GET the latest GitHub release, semver-compare to the bundle version, surface the notarized DMG asset (or release page). Launch-time discovery is throttled to once/day and once per version (never nags). Deliberately not Sparkle: it discovers + opens the download (Gatekeeper verifies the notarized DMG) rather than hand-rolling an in-place binary swap (the RCE surface we don't want). - AboutWindow.swift — custom About window (replaces the standard panel): icon / name / version / MIT link, a "Changelog" button → meetlisa.ai/changelog, and an in-place "Check for Updates" → "Download vX" flow with status. - AppDelegate — About menu opens the custom window; new "Check for Updates…" menu item; quiet launch discovery shows a gentle Download/Changelog/Later prompt only when a newer release exists. Info.plist fallback → 0.10.0 (the build still stamps the real version from package.json). Website (so the link resolves): - /changelog (+ /zh-CN/changelog) — builds the changelog from the GitHub Releases API at build time (fail-safe → GitHub fallback), rendered as terminal cards matching the site. lib/releases.ts is the shared fetch. Nav gains "changelog" in both languages. Verified: `swift build` clean; `npm run build` (website) renders 10 real release cards (v0.10.0 → v0.2.0), no fallback. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
A version-upgrade mechanism on the Mac app's About screen: jump to the meetlisa.ai changelog, and discover + download new versions. Plus the branded changelog page the link points to.
Mac app (
packaging/mac-client)Updater.swift— dependency-free discovery:GETthe latest GitHub release, semver-compare to the bundle version, surface the notarized DMG asset (or release page). Launch discovery is throttled to once/day and once per version (never nags).AboutWindow.swift— custom About window (replaces the standard panel): icon / name / version / MIT link, a "Changelog" button →meetlisa.ai/changelog, and an in-place "Check for Updates" → "Download vX" flow with status text.AppDelegate— About menu opens the custom window; new "Check for Updates…" menu item; quiet launch discovery shows a gentle Download / Changelog / Later prompt only when a newer release exists.Info.plistfallback →0.10.0(the build still stamps the real version frompackage.json).Website (so the link resolves)
/changelog(+/zh-CN/changelog) — built from the GitHub Releases API at build time (fail-safe → GitHub fallback), rendered as terminal cards matching the site's CRT aesthetic.lib/releases.tsis the shared fetch. Nav gains "changelog" in both languages.Verification
swift build— clean (Swift 6.3.2)npm run build(website) —/changelog+/zh-CN/changelogrender 10 real release cards (v0.10.0 → v0.2.0), no fallback🤖 Generated with Claude Code