hermes-agent/apps/desktop/electron
Teknium b14d75f8af
fix(update): prevent and self-heal half-updated venvs on Windows (#57659)
Root-causes the July 2026 Windows incident chain (locked _brotlicffi.pyd /
_sodium.pyd during install, then 'No module named annotated_doc' with
'hermes update' insisting 'Already up to date!'):

- hermes update: probe venv core imports even when the checkout is current;
  a half-updated venv (dep sync killed mid-flight by a locked .pyd) is now
  detected and repaired instead of being reported as up to date
- hermes update (Windows): after pausing gateways, refuse to mutate the venv
  while other processes run from the venv interpreter (the Desktop backend
  runs as python.exe so the hermes.exe shim guard never saw it); --force
  keeps the old behavior
- install.ps1 venv stage: disarm gateway autostart Scheduled Tasks before
  the kill sweep (they respawn the gateway inside the kill->delete window),
  make the sweep a bounded loop requiring 3 clean passes, and rename-then-
  delete the old venv (a rename succeeds even with mapped DLLs) with stale-
  dir cleanup on the next run
- desktop updater: 'venv shim still locked after 15s' now ABORTS the update
  hand-off (restarting our backend, surfacing the holder to the user)
  instead of 'proceeding anyway (force)' into guaranteed venv corruption;
  the unlock wait also re-kills respawned backends each poll tick
2026-07-03 03:24:08 -07:00
..
backend-command.cjs fix(desktop): route old runtimes through dashboard when serve is absent 2026-06-28 22:10:42 -05:00
backend-command.test.cjs fix(desktop): route old runtimes through dashboard when serve is absent 2026-06-28 22:10:42 -05:00
backend-env.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
backend-env.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
backend-probes.cjs fix(desktop): probe venv runtime health before trusting bootstrap marker 2026-06-28 02:40:37 -07:00
backend-probes.test.cjs fix(desktop): probe venv runtime health before trusting bootstrap marker 2026-06-28 02:40:37 -07:00
backend-ready.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
backend-ready.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
bootstrap-platform.cjs chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
bootstrap-platform.test.cjs chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
bootstrap-runner.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
bootstrap-runner.test.cjs fix(desktop): bootstrap falls back to installed agent install.sh on GitHub 404 2026-06-07 03:46:12 -07:00
connection-config.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
connection-config.test.cjs fix(desktop): route global remote profile REST calls (#47011) 2026-06-15 23:24:55 -05:00
dashboard-token.cjs refactor(desktop): use native fetch in dashboard-token 2026-06-11 18:41:16 -05:00
dashboard-token.test.cjs refactor(desktop): fold served-token adoption + foreign-backend refusal into one helper 2026-06-11 18:33:05 -05:00
desktop-uninstall.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
desktop-uninstall.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
embed-referer.cjs feat(desktop): lazy embed renderers + fenced diagrams/alerts 2026-06-26 03:22:08 -05:00
entitlements.mac.inherit.plist fix(desktop): inherit microphone entitlement for macOS helpers 2026-06-03 07:32:00 +07:00
entitlements.mac.plist Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
fs-read-dir.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
fs-read-dir.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
gateway-ws-probe.cjs test(desktop): add injectable gateway WebSocket probe + unit tests 2026-06-04 19:49:06 -07:00
gateway-ws-probe.test.cjs test(desktop): add injectable gateway WebSocket probe + unit tests 2026-06-04 19:49:06 -07:00
git-repo-scan.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
git-review-ops.cjs fix(desktop): stop hermes desktop from clobbering tracked main.cjs (#52735) 2026-06-28 01:30:09 -04:00
git-review-ops.test.cjs feat(desktop): add git worktree and review IPC 2026-06-25 16:40:27 -05:00
git-root.cjs fix(desktop): Harden local file tree paths (#43618) 2026-06-11 10:05:59 -04:00
git-root.test.cjs fix(desktop): Harden local file tree paths (#43618) 2026-06-11 10:05:59 -04:00
git-worktree-ops.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
git-worktree-ops.test.cjs fix(desktop): clarify branch convert actions 2026-06-25 17:19:36 -05:00
hardening.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
hardening.test.cjs feat(desktop): composer status stack, live subagent windows, editable prompts (#44630) 2026-06-12 08:30:06 -05:00
link-title-window.cjs fix(desktop): guard link-title readTitle against destroyed windows 2026-07-03 05:13:23 -05:00
link-title-window.test.cjs fix(desktop): guard link-title readTitle against destroyed windows 2026-07-03 05:13:23 -05:00
main.cjs fix(update): prevent and self-heal half-updated venvs on Windows (#57659) 2026-07-03 03:24:08 -07:00
oauth-net-request.cjs fix(desktop): avoid restricted oauth request header 2026-06-05 18:04:45 -07:00
oauth-net-request.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
preload.cjs feat(desktop): add git worktree and review IPC 2026-06-25 16:40:27 -05:00
profile-delete-respawn.test.cjs fix(desktop): skip ensureBackend after profile-delete teardown to prevent respawn loop 2026-07-02 15:18:49 -05:00
session-windows.cjs fix(desktop): keep streaming painting in unfocused secondary chat windows (#47919) 2026-06-17 14:40:13 -04:00
session-windows.test.cjs fix(desktop): keep streaming painting in unfocused secondary chat windows (#47919) 2026-06-17 14:40:13 -04:00
titlebar-overlay-width.cjs fix(desktop): stop macOS Tahoe misplacing the traffic lights 2026-07-02 21:14:28 -05:00
titlebar-overlay-width.test.cjs fix(desktop): stop macOS Tahoe misplacing the traffic lights 2026-07-02 21:14:28 -05:00
update-count.cjs fix(desktop): skip the rev-list count when it is discarded anyway 2026-06-24 19:12:09 -05:00
update-count.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
update-marker.cjs fix(desktop/windows): stop in-app update from cascading into a backend restart loop (#50381) 2026-06-21 13:10:32 -07:00
update-marker.test.cjs fix(desktop/windows): stop in-app update from cascading into a backend restart loop (#50381) 2026-06-21 13:10:32 -07:00
update-rebuild.cjs fix(desktop): retry the self-update rebuild once so the app relaunches (#48122) 2026-06-17 19:33:27 -05:00
update-rebuild.test.cjs fix(desktop): retry the self-update rebuild once so the app relaunches (#48122) 2026-06-17 19:33:27 -05:00
update-relaunch.cjs fix(desktop): relaunch on Linux after in-app update instead of hanging (#45205) 2026-06-21 17:04:52 -07:00
update-relaunch.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
update-remote.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
update-remote.test.cjs test(desktop): cover official-SSH remote detection for passive updates 2026-06-11 12:53:19 +05:30
vscode-marketplace.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
vscode-marketplace.test.cjs feat(desktop): install any VS Code theme from the Marketplace 2026-06-09 23:06:44 -05:00
window-state.cjs feat(desktop): remember window size/position/maximized across launches (salvage #39154) 2026-06-24 13:32:05 -05:00
window-state.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
windows-child-process.test.cjs fix(desktop): tree-kill Windows terminal descendants 2026-06-30 04:23:27 -05:00
windows-hermes-resolution.test.cjs fix(desktop/windows): resolve real hermes over extensionless shim + prefer --update on recovery 2026-06-28 02:40:37 -07:00
windows-user-env.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
windows-user-env.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
workspace-cwd.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
workspace-cwd.test.cjs style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
wsl-clipboard-image.cjs fix(desktop): WSL2 clipboard image paste + Linux titlebar overlay 2026-06-25 23:50:59 -05:00
wsl-clipboard-image.test.cjs fix(desktop): WSL2 clipboard image paste + Linux titlebar overlay 2026-06-25 23:50:59 -05:00