hermes-agent/nix
emozilla 2d206a3a42 fix(desktop): stop hermes desktop from clobbering tracked main.cjs (#52735)
`npm run build` ended with `bundle-electron-main.mjs`, which esbuild-bundled
electron/main.cjs and renamed the bundle on top of the tracked source file.
Because every `hermes desktop` runs `npm run build`, each launch rewrote a
checked-in source file (~7.5k-line source -> ~14.8k-line bundle), dirtying the
working tree with a build artifact that `git restore` couldn't keep (the next
launch re-clobbered it) and forcing autostash/restore conflicts on update.

The bundle only existed to inline `simple-git` so the packaged app.asar (which
ships no node_modules) wouldn't crash at launch with "Cannot find module
'simple-git'". Replace it with the mechanism the repo already uses for the
other hoisted runtime dep (node-pty): stage the dependency closure and resolve
it from process.resourcesPath at runtime.

- stage-native-deps.cjs: resolve simple-git's runtime closure (walking
  dependencies + optionalDependencies, so a version bump that adds a transitive
  dep can't silently reintroduce the crash) and stage it under
  build/native-deps/vendor/node_modules/. The `vendor/` nesting is load-bearing:
  electron-builder drops a node_modules dir at the ROOT of an extraResources
  copy but keeps a nested one.
- git-review-ops.cjs: fall back to the staged
  native-deps/vendor/node_modules/simple-git when the hoisted require() fails;
  dev runs resolve the hoisted copy and never hit the fallback.
- package.json: drop the bundler from the `build` script so main.cjs is never a
  build target again.
- nix/desktop.nix: drop the direct bundler call (the closure rides the existing
  `cp -rn native-deps` into $out) and patch process.resourcesPath in
  git-review-ops.cjs alongside main.cjs.
- delete scripts/bundle-electron-main.mjs.

Verified: electron-builder's own file filter keeps the full staged closure
(0 dropped), and a packaged win-unpacked build launches with the git-review
pane resolving simple-git from the staged vendor path.
2026-06-28 01:30:09 -04:00
..
checks.nix fix(packaging): ship locales/ i18n catalogs in wheel, sdist, and Nix (#38383) 2026-06-03 12:00:27 -07:00
configMergeScript.nix feat: nix flake — uv2nix build, NixOS module, persistent container mode (#20) 2026-03-26 01:08:02 +05:30
desktop.nix fix(desktop): stop hermes desktop from clobbering tracked main.cjs (#52735) 2026-06-28 01:30:09 -04:00
devShell.nix change(nix): simpler dev setup 2026-06-26 19:15:18 -07:00
hermes-agent.nix change(nix): simpler dev setup 2026-06-26 19:15:18 -07:00
lib.nix fix(nix): hashless npm deps via importNpmLock (#48883) 2026-06-19 13:57:12 +05:30
nixosModules.nix fix(nix): make config.yaml group-writable under addToSystemPackages (#41940) 2026-06-08 20:10:47 +05:30
overlays.nix fix(banner): show correct update status on nix-built hermes (#17550) 2026-04-30 07:03:00 +05:30
packages.nix change(nix): ship fat hermes agent by default 2026-06-26 19:15:18 -07:00
python.nix feat(nix): declarative plugin installation for NixOS module (#15953) 2026-04-28 00:18:32 +05:30
tui.nix fix(node/nix): consolidate workspace lockfile + update all consumers 2026-06-02 20:28:18 -04:00
web.nix fix(node/nix): consolidate workspace lockfile + update all consumers 2026-06-02 20:28:18 -04:00