{"repo":"NousResearch/hermes-agent","public_id":"91495","display_label":"Desktop-spawned backend session and mode fixes","summary":"These items address issues with the desktop-spawned backend process, specifically around WebSocket session token rejection and incorrect forced headless mode or SPA configuration being applied to it.","subsystem":"apps/desktop","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":95890},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-26T22:51:23+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":91495,"pr_number":95890,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":91495,"title":"Hermes Desktop fails to start with: WebSocket (/api/ws) rejected the session token","url":null,"state":"closed"},{"kind":"pr","number":84444,"title":"fix(desktop): keep SPA mounted in headless serve when spawned by Desktop","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#91592","number":91592},{"kind":"pr","value":"#91495","number":91495},{"kind":"pr","value":"#91592","number":91592}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":91497,"title":"fix(desktop): exempt desktop-spawned serve from forced headless mode","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#84444","number":84444}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":91552,"title":"fix(serve): let the desktop-spawned backend keep its own SPA","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#84444","number":84444},{"kind":"pr","value":"#84444","number":84444},{"kind":"pr","value":"#91495","number":91495},{"kind":"pr","value":"#84444","number":84444},{"kind":"pr","value":"#84444","number":84444}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":91592,"title":"fix(cli): do not force headless serve when Desktop spawned the backend (#91495)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"26f178e5fa","number":0},{"kind":"pr","value":"#91495","number":91495},{"kind":"pr","value":"#94227","number":94227},{"kind":"pr","value":"#95890","number":95890},{"kind":"pr","value":"#84444","number":84444},{"kind":"pr","value":"#84444","number":84444},{"kind":"pr","value":"#91552","number":91552},{"kind":"pr","value":"#91495","number":91495}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":95890,"title":"fix(desktop+serve): update no longer strands you on a white screen — headless token page at / + visible error/auto-reload","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/main.ts","apps/desktop/electron/renderer-load-error-page.test.ts","apps/desktop/electron/renderer-load-error-page.ts","apps/desktop/electron/window-renderer-lifecycle.test.ts","apps/desktop/electron/window-renderer-lifecycle.ts","contributors/emails/[redacted:email]","hermes_cli/web_server.py","tests/hermes_cli/test_web_server.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}