{"repo":"NousResearch/hermes-agent","public_id":"82309","display_label":"Windows PATH node priority during desktop install","summary":"These items address a problem where a system-installed Node appearing before the managed Node on PATH causes install script failures on Windows. Two fixes aim to make the managed Node take precedence in that context.","subsystem":"apps/desktop","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":3,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":125589},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-28T05:30:56+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":82309,"pr_number":125589,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":82309,"pr_number":125635,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":82309,"pr_number":125721,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":82309,"title":"[Windows] Desktop dependency install fails with ERR_REQUIRE_ESM when a system Node precedes the managed Node on PATH","url":null,"state":"closed"},{"kind":"pr","number":82355,"title":"fix(desktop): prevent Windows installs from using stale system Node","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"ba343709dd95443f7caf54aab957aa199469f8b8","number":0},{"kind":"commit","value":"7cadfaa668587a2be683c069373ca5ea3ca65fca","number":0},{"kind":"commit","value":"79dbb1450ec404a2240529f5554526da4cfec498","number":0},{"kind":"commit","value":"76d6798b4b4b6b09a7f37fb759bee341400a25b8","number":0},{"kind":"commit","value":"6ca192476370093c0f56eb35bf34772a6ac3020b","number":0},{"kind":"commit","value":"28e6496a5e3adfea57bebfc9571b981bff378523","number":0},{"kind":"commit","value":"8104ee628cc4658d164cd5a39c2a52e6f69e4ddc","number":0},{"kind":"commit","value":"ba343709d","number":0},{"kind":"commit","value":"150b197363451161308c0621385c7ca490d84108","number":0},{"kind":"commit","value":"ba343709dd","number":0},{"kind":"commit","value":"5e4a2a3d2407cdc207f05eee543c63a6136540a2","number":0},{"kind":"commit","value":"81b4c132b5fa","number":0},{"kind":"commit","value":"26b3918dd","number":0},{"kind":"commit","value":"ba343709d","number":0},{"kind":"commit","value":"ba343709d","number":0},{"kind":"commit","value":"6ca192476370","number":0},{"kind":"commit","value":"5e4a2a3d2407","number":0},{"kind":"commit","value":"6ca192476370","number":0},{"kind":"commit","value":"5e4a2a3d2407","number":0},{"kind":"commit","value":"e0fae5566afd","number":0},{"kind":"commit","value":"26b3918dd","number":0},{"kind":"commit","value":"ba343709dd95443f7caf54aab957aa199469f8b8","number":0},{"kind":"commit","value":"76d6798b4b4b6b09a7f37fb759bee341400a25b8","number":0},{"kind":"commit","value":"8104ee628cc4","number":0},{"kind":"commit","value":"28e6496a5e","number":0},{"kind":"commit","value":"8104ee628cc4","number":0},{"kind":"commit","value":"6ca192476370","number":0},{"kind":"commit","value":"79dbb1450ec4","number":0},{"kind":"commit","value":"ba343709dd","number":0},{"kind":"commit","value":"28e6496a5e","number":0},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#82309","number":82309},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#125635","number":125635},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#82355","number":82355},{"kind":"pr","value":"#91188","number":91188},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#125635","number":125635},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#125635","number":125635},{"kind":"pr","value":"#82309","number":82309},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#125729","number":125729},{"kind":"pr","value":"#125318","number":125318},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#82309","number":82309},{"kind":"pr","value":"#91188","number":91188},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#125635","number":125635},{"kind":"pr","value":"#125729","number":125729},{"kind":"pr","value":"#125318","number":125318},{"kind":"pr","value":"#82309","number":82309},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#125635","number":125635},{"kind":"pr","value":"#125721","number":125721},{"kind":"pr","value":"#125729","number":125729},{"kind":"pr","value":"#125318","number":125318},{"kind":"pr","value":"#108188","number":108188},{"kind":"pr","value":"#108199","number":108199},{"kind":"pr","value":"#126934","number":126934},{"kind":"pr","value":"#125589","number":125589},{"kind":"pr","value":"#124792","number":124792},{"kind":"pr","value":"#125635","number":125635}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":91188,"title":"fix(desktop): make managed Node authoritative for Windows install scripts","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#82355","number":82355},{"kind":"pr","value":"#82355","number":82355}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":125589,"title":"fix: Hermes never falls back to the user's node/npm/npx/uv","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/lsp/install.py","hermes_cli/doctor_tools.py","hermes_cli/gateway.py","hermes_cli/main_install_repair.py","hermes_cli/source_build.py","hermes_constants.py","scripts/install.ps1","scripts/install.sh","tests/e2e/core/upgrade/_install_helpers.py","tests/fixtures/resolution_allowlist.json","tests/gateway/test_adapter_connect_classification.py","tests/gateway/test_whatsapp_connect.py","tests/gateway/test_whatsapp_stale_bridge.py","tests/hermes_cli/test_desktop_update_verify.py","tests/hermes_cli/test_gateway_service.py","tests/hermes_cli/test_node_runtime_npm_resolution.py","tests/hermes_cli/test_source_build.py","tests/hermes_cli/test_web_ui_build.py","tests/plugins/platforms/photon/test_npm_error_log_regression.py","tests/plugins/platforms/photon/test_runtime_record.py","tests/plugins/platforms/photon/test_sidecar_lifecycle.py","tests/pm/test_node_resolution.py","tests/scripts/install/test_install_sh_repository_stage.py","tests/test_managed_runtime_resolution.py","website/docs/getting-started/installation.md"]},{"kind":"pr","number":125635,"title":"MCP stdio servers keep their configured PATH order again (revert #124792)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_mcp_tool_issue_948.py","tools/mcp_tool_common.py"]},{"kind":"pr","number":125721,"title":"fix: Hermes's own lint, activate, tui and MCP launchers use PM's node/npx/uv, never the user's","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_platform/resolver/known_dirs.py","pm/__init__.py","pm/install.py","tests/agent/lsp/test_install_and_lint_fixes.py","tests/agent/lsp/test_shell_linter_lsp_skip.py","tests/fixtures/resolution_allowlist.json","tests/gateway/test_tui_slash_worker_path.py","tests/pm/test_startup_activation.py","tests/tools/test_file_operations_edge_cases.py","tests/tools/test_mcp_tool.py","tests/tools/test_mcp_tool_issue_948.py","tools/file_operations_lint.py","tools/mcp_tool_config.py","tui_gateway/server.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}