feat(desktop): show toast with release notes link when app updates to a new version#2454
feat(desktop): show toast with release notes link when app updates to a new version#2454shoaib050326 wants to merge 2 commits intopingdotgg:mainfrom
Conversation
… a new version When the desktop app restarts with a new version, a toast now appears announcing the version with a link to GitHub release notes. - Add shouldShowNewVersionToast / acknowledgeCurrentVersion logic with localStorage-based version tracking. - Add NewVersionToastCoordinator component following the existing coordinator pattern. - Mount coordinator in __root.tsx alongside other toast coordinators. - Add 9 tests covering first-launch, version-match, and version-change scenarios. Closes pingdotgg#2309
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6cca87f. Configure here.
ApprovabilityVerdict: Needs human review This PR introduces a new user-facing feature (toast notifications on app updates) with a new globally-mounted component and localStorage-based state tracking. New features with user-facing behavior warrant human review even when well-scoped. You can customize Macroscope's approvability policy. Learn more. |
… side effect) Move first-launch version seeding from the predicate to the coordinator component, restoring command-query separation.

Summary
When the desktop app is updated to a new version, a toast now appears on the
next launch announcing the new version with a button linking to the GitHub
release notes.
This addresses the lack of in-app feedback after an update — users previously
had no indication that something changed or where to find release notes.
Changes
shouldShowNewVersionToast,acknowledgeCurrentVersion,readLastAcknowledgedVersion, andgetNewVersionReleaseNotesUrltodesktopUpdate.logic.ts— pure functions that compare the running versionagainst a
localStorage-persisted acknowledged version.NewVersionToastCoordinator.tsx— a coordinator component thatsubscribes to
useDesktopUpdateState()and triggers the toast when theversion changes.
__root.tsxinside theToastProvider.Behavior
https://github.com/pingdotgg/t3code/releases/tag/vX.Y.ZRisk
Low. All new code is client-side only, uses localStorage for persistence
(gracefully handles unavailable storage), and follows the exact coordinator
pattern used by
SlowRpcAckToastCoordinator. The toast is informational only— no blocking, no side effects.
Rollback
Revert the four touched files.
Closes #2309
Note
Low Risk
Low risk: adds an informational client-side toast driven by desktop update state and
localStorage, with guarded access/fallbacks and no server-side or auth changes.Overview
Shows an “Updated to vX.Y.Z” persistent toast after the desktop app launches on a new version, with an action to open GitHub release notes (via
desktopBridge.openExternalwhen available, otherwisewindow.open).Introduces
desktopUpdate.logichelpers to track the last acknowledged version inlocalStorageand decide when the toast should appear, adds coverage for this logic, and mounts the newNewVersionToastCoordinatorin the authenticated root route.Reviewed by Cursor Bugbot for commit 84b0444. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Show a toast with release notes link when the desktop app updates to a new version
NewVersionToastCoordinator, a client-side component mounted in the authenticated root that watches desktop update state and shows a persistent success toast when a new version is detected.desktopBridge.openExternalorwindow.open.desktopUpdate.logic.tsto construct the release notes URL, check whether the toast should be shown, and persist the acknowledged version tolocalStorageto prevent repeat toasts.localStorage.Macroscope summarized 84b0444.