{"repo":"NousResearch/hermes-agent","public_id":"53770","display_label":"Desktop app and Python backend readiness token mismatch after update","summary":"Members describe a shared theme: a stale packaged desktop build (app.asar / Electron readiness parser) can be out of sync with the newer Python `hermes serve` backend, leading to launch timeouts on Windows. Several items propose emitting both ready tokens for compatibility, and others propose detecting stale builds or guarding the parser.","subsystem":"apps/desktop","counts":{"members":8,"open_issues":0,"open_issues_distinct":0,"open_prs":3,"closed_issues":3,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":122876,"merged_at":"2026-09-27T01:35:06+00:00"},"resolution":{"state":"partially_resolved","by":"pr-122876"},"freshness":{"state":"verified","last_verified_at":"2026-09-27T01:35:06+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.24},"fix_edges":[{"issue_number":53770,"pr_number":122876,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-27T01:35:06+00:00"},{"issue_number":60772,"pr_number":122876,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-27T01:35:06+00:00"}],"members":[{"kind":"issue","number":53770,"title":"Windows Desktop update can leave stale app.asar with old 45s backend timeout while source has 90s timeout","url":null,"state":"closed"},{"kind":"issue","number":60412,"title":"[Bug]: `hermes serve` headless refactor (#55923) breaks desktop app launch — port discovery sentinel mismatch after `hermes update`","url":null,"state":"closed"},{"kind":"issue","number":60772,"title":"Windows Desktop can timeout when packaged Electron readiness parser is older than Python backend","url":null,"state":"closed"},{"kind":"pr","number":53776,"title":"fix(desktop): detect stale app.asar build and prompt for rebuild","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"39d09453f95e8aefc0c97e5d9b30ff341cae9ed8","number":0}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":60763,"title":"fix(serve): emit both HERMES_DASHBOARD_READY and HERMES_BACKEND_READY for backward compatibility","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"f0f8c84d1","number":0},{"kind":"pr","value":"#55923","number":55923},{"kind":"pr","value":"#60779","number":60779}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":60779,"title":"fix(desktop): keep legacy ready token for desktop serve","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#60763","number":60763},{"kind":"pr","value":"#60772","number":60772},{"kind":"pr","value":"#60412","number":60412}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":60842,"title":"fix(desktop): guard packaged backend readiness parser","url":null,"state":"open","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":122876,"title":"fix(serve): announce both ready tokens so a stale packaged parser still boots","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/scripts/after-pack-toolchain.test.mjs","apps/desktop/scripts/after-pack.mjs","apps/desktop/scripts/after-pack.test.mjs","apps/desktop/scripts/backend-ready-artifact.mjs","apps/desktop/scripts/backend-ready-artifact.test.mjs","hermes_cli/web_server.py","tests/hermes_cli/test_serve_mcp_discovery_after_bind.py","tests/hermes_cli/test_serve_port_in_use.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}