5dd221d442
The desktop updater ran `hermes update --yes`, which auto-restored any uncommitted source-tree edits onto the freshly updated checkout. On dirty from-source installs this silently carried local modifications across every update and could break the rebuilt app (field report: Windows update handoff leaving the app 'crashed'). New `hermes update --keep-stash`: local changes are still autostashed so the update can proceed, but are never re-applied — they stay parked in git stash with printed recovery guidance. Both desktop handoff scripts (windows.ps1, posix.sh) now pass it, probing `update --help` first so older installed backends without the flag keep working. Failure paths are unchanged (stash preserved, no restore); updates.non_interactive_local_changes: discard still wins. Tests: park/restore/failure-path coverage incl. a sabotage-verified regression test; docs updated.