desktop open: a hidden tray copy that is already running counts once its window is visible (Windows), graceful stop wait 3 s on Windows

This commit is contained in:
CRTkafa 2026-10-23 22:42:12 +08:00
parent d4cf1ad3a1
commit 8df41a26b0
5 changed files with 58 additions and 17 deletions

View file

@ -1358,9 +1358,10 @@ that fails without the fix (see CONTRIBUTING.md).
registry entry already showed the new one. The version check started the GUI exe with `--version`, read nothing
and went on; "opened" was printed without looking whether a window process started.
- **Do:** let `storebound desktop` stop the running app first (it does now, only processes started from the exact
install path: a graceful close, then by PID after 10 s). If it still says the installed app is the old version,
install path: a graceful close, then by PID after 3 s on Windows / 10 s elsewhere; closing a tray app only hides it). If it still says the installed app is the old version,
close storebound desktop in the tray and run it again. If it says it did not open, read the `host.log` it names.
- **Guard:** `cli/lib/desktop-proc.ts`: the exact-path process match, the PE version resource of the installed exe
(never the registry `DisplayVersion`), Info.plist on macOS, the AppImage's `--version` on Linux; a mismatch fails
with what was found. Opening waits up to 15 s for a non-`--hidden` process from the installed path
(`tests/desktop-proc.test.ts`).
with what was found. Opening waits up to 15 s: on Windows for a visible top-level window of a process
from the installed path (a running `--hidden` tray copy is shown by the single-instance handler, so a second start
without `--hidden` opens it), elsewhere for a non-`--hidden` process or a handoff (`tests/desktop-proc.test.ts`).