Repository navigation
Replies: 1 comment
|
Cross-link: I filed the Windows counterpart as #8284 — same subsystem, but a different layer and a different (silent) symptom. On Windows (desktop 0.2.0-rc.1 → 0.2.0-rc.2, nightly) the graceful-teardown gate evidently passes: the NSIS installer really does launch and extracts a complete payload into The same cached installer, with the same So the |
Uh oh!
There was an error while loading. Please reload this page.
Environment
Steps & symptom
Click "Update" (in-app). The dialog consistently fails with:
Reproduces 100% of the time, including after a full app restart. The pending package was already downloaded
(
~/Library/Caches/@deepseek-aidsh-desktop-updater/pending/), so I installed it manually by unzipping it over/Applications/DeepSeek Harness.app— that worked, confirming the package itself is fine and only the teardownhandshake fails.
Root cause (read from the 0.1.7-rc.2 app.asar)
DesktopHostProcess.stop(requireGraceful = true)refuses to install unless: child exited andexit code is 0 and a
shutdown-completeIPC ack was received while stopping.createProcessShutdown(lib/types/process-shutdown.js) usesPROCESS_SHUTDOWN_TIMEOUT_MS = 5000.On dispose timeout or dispose rejection it calls
process.exit(0)immediately. The host'ssend({ type: "shutdown-complete" })sits afterawait application.shutdown.shutdown(0)in itsstop(),so on a forced exit the ack is never sent.
servers, long-lived sessions) or whose dispose rejects will fail every in-app update, deterministically.
exit 0, signal null, deadline false, ack falseis exactly that signature.Suggested fixes (any one would do)
createProcessShutdown, sendshutdown-complete(with aforced: trueflag) right beforeforceExit(code).exitCode === 0even without the ack when thepre-update
updateTasks("lock")round reported no active tasks.All reactions