{"repo":"NousResearch/hermes-agent","public_id":"78836","display_label":"Session/resource ops routed to owning profile","summary":"Multiple fixes addressing desktop app routing errors where session mutations, deletions, and resource executions were incorrectly directed to the foreground or wrong profile/gateway instead of the owning one. Covers stored resources, messaging session deletes, and archive operations across several related issues.","subsystem":"apps/desktop","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":95081},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-31T12:56:20+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":78836,"pr_number":95081,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":78836,"pr_number":99376,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":87716,"pr_number":95081,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":93734,"pr_number":95081,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":94640,"pr_number":95081,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":96531,"pr_number":99376,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":78836,"title":"[Bug] Desktop app: deleting QQ/Telegram messaging sessions from sidebar flashes then reappears (DELETE routed to wrong profile backend)","url":null,"state":"closed"},{"kind":"pr","number":78877,"title":"fix(desktop): route messaging session DELETE to owning profile (#78836)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"71d804d00","number":0},{"kind":"pr","value":"#95081","number":95081},{"kind":"pr","value":"#94724","number":94724}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":95081,"title":"fix(desktop): stored resources execute on their owning gateway, never the foreground one (multi-gateway class 2, tracker #94724)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/connection-apply.ts","apps/desktop/electron/desktop-remote-route.test.ts","apps/desktop/electron/main.ts","apps/desktop/electron/preload.ts","apps/desktop/electron/terminal-ipc.test.ts","apps/desktop/electron/terminal-ipc.ts","apps/desktop/electron/window-connection-route.test.ts","apps/desktop/electron/window-connection-route.ts","apps/desktop/src/app/chat/session-tile-actions.ts","apps/desktop/src/app/gateway/hooks/use-gateway-boot.ts","apps/desktop/src/app/session/hooks/use-prompt-actions/index.ts","apps/desktop/src/app/session/hooks/use-session-actions.test.tsx","apps/desktop/src/app/session/hooks/use-session-actions/index.ts","apps/desktop/src/app/session/hooks/use-session-actions/utils.ts","apps/desktop/src/components/assistant-ui/thread/user-edit-composer.tsx","apps/desktop/src/global.d.ts","apps/desktop/src/sdk/index.ts","apps/desktop/src/sdk/profile-routing.test.ts","apps/desktop/src/store/gateway.ts","apps/desktop/src/store/session-request-router.test.ts","apps/desktop/src/store/session-request-router.ts","apps/desktop/src/store/session-states.test.ts","apps/desktop/src/store/session-states.ts","contributors/emails/[redacted:email]","tests/test_session_delete_profile_isolation.py"]},{"kind":"pr","number":97199,"title":"fix(desktop): scope every session mutation to its owning profile","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"5cc3da6827","number":0},{"kind":"commit","value":"7c2ec7c73b","number":0},{"kind":"pr","value":"#99376","number":99376},{"kind":"pr","value":"#96531","number":96531},{"kind":"pr","value":"#98609","number":98609},{"kind":"pr","value":"#78836","number":78836}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":99376,"title":"fix(desktop): session archive/delete land in the owning profile; new rows stop getting profile_name=NULL (#96531 #98609 #99222, salvage #97199)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/api/sessions.test.ts","apps/desktop/src/api/sessions.ts","contributors/emails/[redacted:email]","hermes_state.py","run_agent.py","tests/test_session_db_profile_stamp.py","tests/test_tui_gateway_server.py","tui_gateway/methods_session.py","tui_gateway/server.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}