@@ -70,20 +70,20 @@ pub async fn check_for_update(app: &AppHandle, verbose: bool) {
7070 "INFO" ,
7171 & format ! ( "update available: {} → {}" , info. current, info. version) ,
7272 ) ;
73- // Splash WebView (if still loaded) listens for this and shows
74- // an in-app card. Safe to emit on both paths.
75- let _ = app. emit ( "objectos://update-available" , & info) ;
76-
7773 if verbose {
78- // User-initiated: prompt with a confirm dialog and start
79- // the install flow if they accept.
74+ // User-initiated: the native confirm dialog below is the
75+ // single, authoritative prompt. Do NOT emit the in-app card
76+ // event here — if the splash WebView is still loaded it would
77+ // surface a second prompt alongside the dialog.
8078 prompt_install ( app, & info) . await ;
8179 } else {
82- // Background: OS notification is best-effort. If the user
83- // hasn't granted notification permission the splash event
84- // above is the only signal — that's acceptable since the
85- // single background check fires 30s after launch while the
86- // splash is still up.
80+ // Background: surface the update silently via the in-app card
81+ // (the splash WebView listens for this) plus a best-effort OS
82+ // notification. If the user hasn't granted notification
83+ // permission the splash event is the only signal — acceptable
84+ // since the single background check fires 30s after launch
85+ // while the splash is still up.
86+ let _ = app. emit ( "objectos://update-available" , & info) ;
8787 notify (
8888 app,
8989 & format ! ( "ObjectOS {} available" , info. version) ,
0 commit comments