hermes-agent/apps/desktop/electron
Austin Pickett bc6839aa37
fix(desktop): stop hard-failing pack on non-git checkouts + fix ZIP-path autocrlf (supersedes #67643) (#67730)
* fix(desktop): allow write-build-stamp from non-git checkouts

Stop hard-failing npm pack when neither GITHUB_SHA nor git HEAD is
available (ZIP installs / broken .git). Emit an explicit fallback stamp
instead so local Windows desktop builds can finish (#50823).

* fix(desktop): treat fallback stamps as unpinned; harden Windows install

Keep all-zero fallback commits out of -Commit/--commit pins and fetch
install.ps1 by branch instead. After bootstrap, pin the marker to the
checkout HEAD so isBootstrapComplete accepts it. On Windows, force ZIP
checkout, seed GITHUB_SHA (ASCII-only install.ps1), and avoid the pack
stamp failure.

* fix(install): pin core.autocrlf=false before ZIP-path checkout (#50823 review)

The ZIP-fallback path added in #67643 runs `git checkout -f FETCH_HEAD`
before core.autocrlf gets pinned (which only happened later, on the
shared clone-path config). On Git for Windows -- where core.autocrlf
defaults to true -- that renormalizes the repo's LF text files to CRLF in
the working tree during checkout, leaving the freshly-created managed
checkout dirty versus HEAD and aborting the next `hermes update`. That is
the exact "dirty tree the user never touched" failure the surrounding
code already guards against (install.ps1:1461-1469, 1750-1753).

Move the `config core.autocrlf false` pin to run immediately after
`git init`, before the fetch/checkout. The later idempotent pin on the
shared clone path is retained so git-clone installs are unaffected.

Addresses teknium1's review on #67643 and supersedes it, preserving the
original author's two commits.

Co-authored-by: HexLab98 <8422520+HexLab98@users.noreply.github.com>

* chore(contributors): map austinpickett commit email for attribution

The check-attribution CI gate flagged austinpickett@users.noreply.github.com
as an unmapped commit-author email (introduced by the autocrlf fix commit
on this PR). Add the per-email mapping file as the gate instructs (the
legacy AUTHOR_MAP in scripts/release.py is frozen).

---------

Co-authored-by: HexLab98 <liruixinch@outlook.com>
Co-authored-by: austinpickett <austinpickett@users.noreply.github.com>
Co-authored-by: HexLab98 <8422520+HexLab98@users.noreply.github.com>
2026-07-19 19:29:36 -04:00
..
backend-child.ts test(desktop): extract hiddenWindowsChildOptions + stopBackendChild for real unit tests 2026-07-13 17:22:17 -04:00
backend-command.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
backend-command.ts cleanup(desktop): remove 'use strict' in ts & mjs 2026-07-13 17:22:17 -04:00
backend-connection-state.test.ts test(desktop): port backend-connection-state test to vitest 2026-07-16 14:55:58 -04:00
backend-connection-state.ts fix(desktop): ignore stale backend exits 2026-07-16 14:53:11 -04:00
backend-env.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
backend-env.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
backend-probes.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
backend-probes.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
backend-ready.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
backend-ready.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
backend-start-failure.test.ts fix(desktop): don't latch remote backend boot failures so remote gateway reconnect recovers (#65756) 2026-07-16 20:45:43 -04:00
backend-start-failure.ts fix(desktop): don't latch remote backend boot failures so remote gateway reconnect recovers (#65756) 2026-07-16 20:45:43 -04:00
bootstrap-platform.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
bootstrap-platform.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
bootstrap-runner.test.ts fix(desktop): stop hard-failing pack on non-git checkouts + fix ZIP-path autocrlf (supersedes #67643) (#67730) 2026-07-19 19:29:36 -04:00
bootstrap-runner.ts fix(desktop): stop hard-failing pack on non-git checkouts + fix ZIP-path autocrlf (supersedes #67643) (#67730) 2026-07-19 19:29:36 -04:00
connection-config.test.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
connection-config.ts feat(desktop): Hermes Cloud connection mode — one sign-in, agent discovery, silent connect 2026-07-10 01:37:43 -05:00
dashboard-token.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
dashboard-token.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
desktop-electron-pin.test.ts fmt(js): npm run fix on merge (#65912) 2026-07-16 19:57:39 +00:00
desktop-uninstall.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
desktop-uninstall.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
embed-referer.ts feat(desktop): ts-ify everything 2026-07-08 16:24:16 -07: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.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
fs-read-dir.ts feat(desktop): bridge WSL paths for a Windows host + WSL backend 2026-07-12 05:32:54 -04:00
gateway-ws-probe.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
gateway-ws-probe.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
git-repo-scan.ts feat(desktop): ts-ify everything 2026-07-08 16:24:16 -07:00
git-review-ops.test.ts fix(desktop): support spaced Windows Git paths in review 2026-07-19 12:22:23 -07:00
git-review-ops.ts fix(desktop): support spaced Windows Git paths in review 2026-07-19 12:22:23 -07:00
git-root.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
git-root.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
git-worktree-ops.test.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
git-worktree-ops.ts fmt(js): npm run fix on merge (#65912) 2026-07-16 19:57:39 +00:00
hardening.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
hardening.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
link-title-window.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
link-title-window.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
main-window-lifecycle.test.ts fmt(js): npm run fix on merge (#65912) 2026-07-16 19:57:39 +00:00
main-window-lifecycle.ts fix(desktop): restore closed main window on second launch (#64800) 2026-07-16 15:33:38 -04:00
main.ts perf(desktop): batch sidebar session slices into one profile-DB pass 2026-07-18 21:45:18 -04:00
oauth-net-request.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
oauth-net-request.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
preload.ts feat(desktop): electron — openDir IPC + ⌘W menu bridge (tabs, not windows) 2026-07-13 17:57:54 -04:00
profile-delete-routing.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
profile-delete-routing.ts cleanup(desktop): remove 'use strict' in ts & mjs 2026-07-13 17:22:17 -04:00
session-windows.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
session-windows.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
spawn-helper-perms.test.ts fmt(js): npm run fix on merge (#66741) 2026-07-18 05:16:25 +00:00
spawn-helper-perms.ts fix(desktop): restore exec bit on node-pty spawn-helper for dev terminals 2026-07-18 01:00:48 -04:00
titlebar-overlay-width.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
titlebar-overlay-width.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
update-count.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
update-count.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
update-marker.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
update-marker.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
update-rebuild.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
update-rebuild.ts feat(desktop): ts-ify everything 2026-07-08 16:24:16 -07:00
update-relaunch.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
update-relaunch.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
update-remote.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
update-remote.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
updater-process.test.ts fix(desktop): hide Windows updater console during handoff (#66040) 2026-07-16 22:50:40 -04:00
updater-process.ts fix(desktop): hide Windows updater console during handoff (#66040) 2026-07-16 22:50:40 -04:00
vscode-marketplace.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
vscode-marketplace.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
window-state.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
window-state.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
windows-child-options.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
windows-child-options.ts test(desktop): extract hiddenWindowsChildOptions + stopBackendChild for real unit tests 2026-07-13 17:22:17 -04:00
windows-hermes-path.test.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
windows-hermes-path.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
windows-sandbox-fallback.test.ts fix(desktop): harden Windows sandbox fallback against false-positive sandbox loss 2026-07-18 02:26:19 -07:00
windows-sandbox-fallback.ts fix(desktop): harden Windows sandbox fallback against false-positive sandbox loss 2026-07-18 02:26:19 -07:00
windows-system-ca.test.ts fix(desktop): trust Windows system CAs for remote gateways (#66304) 2026-07-17 18:55:34 -04:00
windows-system-ca.ts fmt(js): npm run fix on merge (#66731) 2026-07-18 04:56:56 +00:00
windows-user-env.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
windows-user-env.ts cleanup(desktop): lint&fmt all 2026-07-13 17:22:17 -04:00
workspace-cwd.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
workspace-cwd.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
wsl-clipboard-image.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
wsl-clipboard-image.ts cleanup(desktop): npm run fix for fmtting 2026-07-08 16:24:16 -07:00
wsl-path-bridge.test.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
wsl-path-bridge.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
zoom.test.ts fix(desktop): preserve UI scale after resize 2026-07-18 09:35:01 -07:00
zoom.ts fix(desktop): preserve UI scale after resize 2026-07-18 09:35:01 -07:00