hermes-agent/apps/bootstrap-installer
Brooklyn Nicholson 38d5f44df1 fix(installer): refuse a second updater instead of clobbering the marker
UpdateMarkerGuard::acquire overwrote the in-progress marker
unconditionally, so a Tauri update launched while a dashboard-spawned
"hermes update" was mid-flight simply took the marker and ran a second
updater over the same checkout. That is the race behind the reported
Windows failure: install-mode bootstrap rewound the tree while the
dashboard's updater was still running npm install against it.

acquire now returns Result and refuses when a live foreign owner holds
the marker, and Drop no longer deletes a marker this process does not
own. Liveness matches the Python and Electron readers of the same file:
dead pid or past the shared age ceiling means stale and reclaimable, so
a crashed updater cannot wedge future updates.

Adds a cfg(unix) libc dependency for the signal-0 liveness probe; the
Windows path uses OpenProcess/GetExitCodeProcess.
2026-07-29 17:46:00 -05:00
..
public feat(installer): redesign the Tauri setup shim — design system, OS theme, granular updates 2026-06-30 14:46:28 -05:00
src fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
src-tauri fix(installer): refuse a second updater instead of clobbering the marker 2026-07-29 17:46:00 -05:00
.gitignore Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
eslint.config.mjs refactor(lint): hoist shared eslint + prettier config to root 2026-07-16 01:42:02 +05:30
index.html feat(installer): rename macOS installer to "Hermes" and make it a launcher (#37516) 2026-06-02 17:47:34 +00:00
package.json ci(js-tests): split check into parallel matrix shards per workspace (#70252) 2026-07-23 18:45:16 -04:00
tsconfig.json fix(desktop): move tsconfig to es2023 2026-06-15 12:07:17 -04:00
tsconfig.node.json Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
vite.config.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00