-
Shell-mode PS-style update modal + cached-update getter
release / Build Windows .zip (push) Canceled after 0sreleased this
2026-05-31 10:33:16 +03:00 The desktop UpdateBanner lives between the sidebar and topbar — both
of which shell mode replaces with a full-screen ShellApp. As a result
shell-mode users on a controller had no way to learn about or apply
incoming updates without dropping back to Explorer.ShellUpdateModal mirrors PowerMenu's shape so the controller
bindings are familiar: <-/-> walks three buttons (Обновить /
Позже / Пропустить), A or Enter activates the focused one, B or
Esc dismisses to "Позже" (a fat finger should not silently hide
the update for good). "Обновить" is pre-selected so a single A
confirms — same one-press feel as the monitor / audio pickers.Mid-download the modal locks navigation and ignores B so a stray
press can't abort the binary swap. Same stale-closure guard as
PowerMenu (activate(i) takes the index explicitly).Queueing: the modal only renders once pickerOpen && audioOpen are
both clear. On a fresh shell boot the user thus walks monitor ->
audio -> (if relevant) update before reaching the carousel, all
without leaving the controller.inputBlocked / keyboard / wheel handlers also gate on the modal so
the carousel behind it doesn't double-handle the d-pad.Backend: added App.GetCachedUpdate() returning a.lastUpdate. Wails
does not replay missed events, and shell mode mounts AFTER
GetShellModeStatus resolves — the startup goroutine's
"update:available" emit usually lands before our EventsOn arm. The
getter closes that race: App.tsx pulls it on mount and seeds the
update state if anything was already found.Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
Downloads