mirror of
https://github.com/esengine/DeepSeek-Reasonix.git
synced 2026-11-10 17:11:30 -10:00
The 1.18.0-1.19.2 file updaters accept the current electron-v1 manifest and publish only reasonix-desktop, reasonix and reasonix-guard out of the Linux tarball; app/ never reaches the install. The migrator shipped as reasonix-guard then activated versions/<v> without a shell, wrote current.json, committed the legacy update transaction as healthy and removed the flat files. The new desktop exits with "no Electron desktop shell", and nothing is left to roll back to. An absent or incomplete app/ tree now stops the flat migration before any commit: no version directory, no current.json, no health mark, no cleanup. When the old updater's transaction is still pending for this install and version, the migrator rolls it back through the repair transaction (Unix only) and relaunches the restored release through its Guard, the way the legacy updater itself relaunches. The refusal carries errShellMissing and is appended to <home>/desktop-shell/logs/legacy-migrate.log, since a migrator started by an old updater has no terminal. Tests reproduce the legacy updater's exact transaction steps from inside the install (subprocess copies of the test binary, as the repair transaction binds the running executable to the install directory), then assert the rollback, and that a unit carrying app/ still commits the transaction. Co-authored-by: esengine <[email protected]>