diff --git a/apps/desktop/src/renderer/src/components/update-notification.tsx b/apps/desktop/src/renderer/src/components/update-notification.tsx index 4ef34c6d5..5b4fe0075 100644 --- a/apps/desktop/src/renderer/src/components/update-notification.tsx +++ b/apps/desktop/src/renderer/src/components/update-notification.tsx @@ -110,12 +110,25 @@ export function UpdateNotification() {

Restart to apply the update

- +
+ {/* Secondary "See changes" — gives the user a reason to + restart by surfacing what they're about to get. Opens + in the default browser via the shared openExternal + bridge so the URL hits the same allow-list as every + other outbound link. */} + + +
)} diff --git a/packages/views/layout/app-sidebar.tsx b/packages/views/layout/app-sidebar.tsx index 16fc90b04..308814241 100644 --- a/packages/views/layout/app-sidebar.tsx +++ b/packages/views/layout/app-sidebar.tsx @@ -28,6 +28,7 @@ import { SquarePen, CircleUser, FolderKanban, + Sparkles, X, Zap, } from "lucide-react"; @@ -415,6 +416,22 @@ export function AppSidebar({ topSlot, searchSlot, headerClassName, headerStyle } )} + {/* Plain anchor with target=_blank works on both web + (new tab) and desktop (intercepted by the main + process's setWindowOpenHandler → openExternalSafely), + so the shared component doesn't need to branch. */} + + } + > + + What's new + Log out @@ -599,6 +616,15 @@ export function AppSidebar({ topSlot, searchSlot, headerClassName, headerStyle }
+ + + What's new +