{"repo":"NousResearch/hermes-agent","public_id":"43564","display_label":"Desktop packaging and update dependency loss bugs","summary":"These issues and fixes concern two related problems: the 'hermes update' command silently pruning root-level npm dependencies (notably agent-browser), and the packaged Electron desktop app failing to bundle required modules (notably simple-git), causing launch crashes.","subsystem":"apps/desktop","counts":{"members":17,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":6,"merged_prs":2,"attempt_prs":9},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":81958},"resolution":{"state":"partially_resolved","by":"pr-85170"},"freshness":{"state":"verified","last_verified_at":"2026-08-13T09:38:29+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.12411764705882353},"fix_edges":[{"issue_number":43564,"pr_number":81958,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":43564,"pr_number":85170,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":64354,"pr_number":85170,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":43564,"title":"[Bug]: `hermes update` workspace refresh can prune repo-root `agent-browser` dependency","url":null,"state":"closed"},{"kind":"issue","number":52735,"title":"[Bug]: Desktop app crashes on launch — Cannot find module 'simple-git' (git-review IPC dep not bundled)","url":null,"state":"closed"},{"kind":"issue","number":52753,"title":"[Bug]: Windows desktop app crashes after update — Cannot find module 'simple-git'","url":null,"state":"closed"},{"kind":"issue","number":52764,"title":"hermes update produces broken Desktop asar when git pull adds npm deps to Electron main process","url":null,"state":"closed"},{"kind":"issue","number":53069,"title":"[Bug]: Error: Cannot find module 'simple-git'","url":null,"state":"closed"},{"kind":"issue","number":64354,"title":"[Bug]: `hermes update` silently removes root-only npm deps (agent-browser) on every run","url":null,"state":"closed"},{"kind":"pr","number":43572,"title":"fix(cli): keep repo-root agent-browser during update refresh","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#44772","number":44772},{"kind":"pr","value":"#44772","number":44772}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":43647,"title":"fix(update): include workspace root to preserve repo-root deps (#43564)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#43572","number":43572},{"kind":"pr","value":"#43564","number":43564}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":44772,"title":"fix(cli): drop agent-browser/@streamdown-math from root npm deps","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"d254ad616f","number":0},{"kind":"pr","value":"#85170","number":85170},{"kind":"pr","value":"#43564","number":43564},{"kind":"pr","value":"#81958","number":81958}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":52736,"title":"fix(desktop): bundle simple-git so git-review IPC loads in packaged builds","url":null,"state":"closed","close_reason":{"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":52776,"title":"fix(desktop): stage JS deps into node_modules before electron-builder packaging","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"df514654b","number":0}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":53102,"title":"fix(desktop): lazy-require simple-git so module loads when dep is missing","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#53069","number":53069}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":64397,"title":"fix(cli): prevent hermes update from silently removing root npm deps (#64354)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#43572","number":43572},{"kind":"pr","value":"#64354","number":64354},{"kind":"pr","value":"#43564","number":43564},{"kind":"pr","value":"#43572","number":43572},{"kind":"pr","value":"#64394","number":64394}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":64410,"title":"fix(update): keep root npm deps across both of update's npm installs (#64354)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#44772","number":44772}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":77413,"title":"fix(update): single-pass npm install keeps root deps (agent-browser no longer pruned)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"d254ad616f","number":0},{"kind":"pr","value":"#85170","number":85170},{"kind":"pr","value":"#44772","number":44772}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":81958,"title":"feat(browser): Browser Use CLI 3.0 mode — one browser_exec driver over all CDP backends (salvage #66476)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/browser_provider.py","agent/display.py","contributors/emails/[redacted:email]","hermes_cli/cli_commands_mixin.py","hermes_cli/commands.py","hermes_cli/config_defaults.py","hermes_cli/tools_config.py","model_tools.py","plugins/browser/browser_use/provider.py","tests/plugins/browser/test_browser_provider_plugins.py","tests/tools/test_browser_use_cli.py","tools/browser_tool.py","tools/browser_use_cli.py","toolsets.py","website/docs/user-guide/features/browser.md"]},{"kind":"pr","number":85170,"title":"fix(cli): drop agent-browser/@streamdown-math from root npm deps; unify update's npm closure (salvage #44772)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["CONTRIBUTING.md","apps/desktop/package.json","hermes_cli/dep_ensure.py","hermes_cli/doctor.py","hermes_cli/doctor_live.py","hermes_cli/main.py","hermes_cli/nous_subscription.py","hermes_cli/tools_config.py","hermes_cli/update_cmd.py","package.json","scripts/install.ps1","scripts/install.sh","tests-js/package-json-lazy-deps.test.ts","tests/hermes_cli/test_cmd_update.py","tests/hermes_cli/test_dep_ensure.py","tests/hermes_cli/test_doctor.py","tests/hermes_cli/test_doctor_live.py","tests/hermes_cli/test_nous_subscription.py","tests/hermes_cli/test_tools_config.py","tests/hermes_cli/test_web_ui_build.py","tests/scripts/test_windows_footguns_full_repo_scan.py","tests/test_install_ps1_browser_install.py","tests/test_install_sh_browser_install.py","tests/test_windows_subprocess_no_window_flags.py","tests/tools/test_browser_chromium_autoinstall.py","tests/tools/test_browser_chromium_check.py","tests/tools/test_browser_homebrew_paths.py","tests/tools/test_browser_npx_warmup.py","tools/browser_tool.py","website/docs/developer-guide/browser-provider-plugin.md","website/docs/getting-started/termux.md","website/docs/user-guide/features/browser.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}