# NousResearch/hermes-agent · Dashboard process detection and lifecycle management fixes

## Open now

- 3 issues, 6 PRs open on GitHub.
- #37593: Native Windows: \`hermes dashboard --status\` and \`--stop\` miss a live dashboard listener
- #41598: Windows dashboard can keep stale Session 0 process after update, showing old version
- #44567: \[Bug\]: Bugs Encountered When Using Hermes Dashboard on Windows 11
- PR #37645: fix(cli): fall back to PowerShell for dashboard --status/--stop on Windows (fixes #37593)
- PR #39197: fix(dashboard): clean stale processes at dashboard startup (#39136)
- PR #41636: fix(41598): Detect Windows Session 0 stale dashboard via port check
- PR #56723: fix(update): detect profile dashboard processes in stale-dashboard sweep
- PR #56745: \[codex\] Harden profile stale runtime sweep after update
- PR #61408: fix: detect profiled dashboard process during update

These issues and PRs address problems with detecting, stopping, and warning about dashboard processes across several scenarios: when global flags like --profile precede the subcommand, on Windows (including Session 0 and PowerShell fallback), and when stale processes remain after updates.

## TL;DR

- 22 member(s): 3 open issue(s), 4 closed issue(s), 6 open PR(s), 1 merged PR(s), 8 PR(s) closed without merging.
- A fix was merged to main in PR #16895. Verify it addresses your case.
- **Recommended:** read PR #16895 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-16895`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.08`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #37593: Native Windows: \`hermes dashboard --status\` and \`--stop\` miss a live dashboard listener
- #41598: Windows dashboard can keep stale Session 0 process after update, showing old version
- #44567: \[Bug\]: Bugs Encountered When Using Hermes Dashboard on Windows 11

## Closed / duplicate issues

- #16872: hermes update doesn't warn about stale dashboard processes (frontend/backend version mismatch)
- #44035: \[Bug\]: dashboard status/update miss running dashboards when --profile appears before the subcommand
- #56717: \[Bug\]: non-default profile can keep stale runtime after update, causing ImportError
- #60540: hermes update leaves dashboard/serve backends running old code when launched with pre-subcommand flags (--profile <name> dashboard)

## Prior & competing PRs

- **#16895: fix(cli): warn about stale dashboard processes after hermes update**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `hermes_cli/main.py`, `tests/hermes_cli/test_update_stale_dashboard.py`
- **#44048: fix(cli): detect dashboard PIDs when --profile precedes the subcommand**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#44165`, `#44165`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#44206: fix(cli): detect dashboard processes when --profile precedes subcommand (#44035)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#44165`, `#44035`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#16881: fix(cli): warn about stale dashboard processes after hermes update**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `66b114238`, `#16895`, `#16872`
- **#17149: test(update-autostash): include stdout in fake_run defaults so stale-dashboard scan doesn't crash**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#17642`
- **#37645: fix(cli): fall back to PowerShell for dashboard --status/--stop on Windows (fixes #37593)**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `hermes_cli/main.py`, `tests/hermes_cli/test_dashboard_lifecycle_flags.py`
- **#39197: fix(dashboard): clean stale processes at dashboard startup (#39136)**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `hermes_cli/main.py`, `tests/hermes_cli/test_dashboard_lifecycle_flags.py`, `tests/hermes_cli/test_update_stale_dashboard.py`
- **#41636: fix(41598): Detect Windows Session 0 stale dashboard via port check**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `hermes_cli/main.py`, `tests/hermes_cli/test_dashboard_lifecycle_flags.py`
- **#44165: fix(cli): tokenized dashboard cmdline matcher — detect global flags before the subcommand**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `7bf1373cb8`, `#121156`
- **#44252: fix(cli): dashboard status/stop/update miss running dashboards when --profile precedes the subcommand**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`
- **#44578: fix(dashboard): add PowerShell fallback for process detection on Windows 11**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#37645`, `#37645`
- **#56723: fix(update): detect profile dashboard processes in stale-dashboard sweep**. open
  - maintainer direction: category `partial_fix`; implication `needs_llm`; refs `#56717`, `#56717`
  - files: `hermes_cli/main.py`, `tests/hermes_cli/test_stale_dashboard_profile_detection.py`
- **#56745: \[codex\] Harden profile stale runtime sweep after update**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#60606`
  - files: `hermes_cli/gateway.py`, `hermes_cli/main.py`, `tests/hermes_cli/test_gateway.py`, `tests/hermes_cli/test_stale_dashboard_profile_detection.py`
- **#60606: fix(cli): reap dashboard/serve backends launched with pre-subcommand flags on update**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`
- **#61408: fix: detect profiled dashboard process during update**. open
  - maintainer direction: category `stale_abandoned`; implication `active`; refs `#44035`, `#34234`
  - files: `hermes_cli/main.py`, `tests/hermes_cli/test_update_stale_dashboard.py`

## Fix status

- Merged to main in PR #16895 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-04-28`.
- Subsystem: `dashboard`
