{"repo":"NousResearch/hermes-agent","public_id":"57052","display_label":"Session lease acquisition and expiry bugs/fixes","summary":"Multiple bug reports and corresponding fixes addressing how active-session leases are claimed, held, and relinquished in desktop and TUI contexts, particularly around idle tabs, session switching, and detach timing.","subsystem":"apps/desktop","counts":{"members":9,"open_issues":1,"open_issues_distinct":1,"open_prs":1,"closed_issues":2,"merged_prs":2,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":122923,"merged_at":"2026-09-25T22:13:27+00:00"},"resolution":{"state":"partially_resolved","by":"pr-122923"},"freshness":{"state":"verified","last_verified_at":"2026-09-25T22:13:27+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.18666666666666665},"fix_edges":[{"issue_number":62823,"pr_number":122923,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-25T22:13:27+00:00"},{"issue_number":62823,"pr_number":123010,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-25T20:48:04+00:00"}],"members":[{"kind":"issue","number":57052,"title":"[Bug]: Idle desktop/TUI tabs permanently pin max_concurrent_sessions slots (claimed at composer paint, never released while connected)","url":null,"state":"open"},{"kind":"issue","number":62823,"title":"Bug: \"Session Zombie\" queue lock and UI state leaks during session switching in Desktop App","url":null,"state":"closed"},{"kind":"issue","number":68920,"title":"[Bug]: Desktop/TUI sessions leak active-session leases — max_concurrent_sessions blocks new sessions over time","url":null,"state":"closed"},{"kind":"pr","number":57059,"title":"fix(tui-gateway): claim active-session leases lazily and release them when idle (#57052)","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":67049,"title":"fix(desktop): isolate new-session windows","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#66270","number":66270}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":68947,"title":"fix(tui): release active-session lease immediately on session detach, not after orphan-reap delay (#68920)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"e35c2f6049633d3b6d897d63e637fc63b1b8b8c6","number":0},{"kind":"commit","value":"0f9ef9b115bf","number":0},{"kind":"pr","value":"#68920","number":68920},{"kind":"pr","value":"#68947","number":68947},{"kind":"pr","value":"#68949","number":68949},{"kind":"pr","value":"#1","number":1},{"kind":"pr","value":"#15803","number":15803},{"kind":"pr","value":"#14532","number":14532},{"kind":"pr","value":"#6","number":6},{"kind":"pr","value":"#9","number":9},{"kind":"pr","value":"#374151","number":374151},{"kind":"pr","value":"#4338","number":4338}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":68949,"title":"fix(tui): reclaim leaked active-session leases with an owner-tagged pid-scoped sweep","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#68947","number":68947},{"kind":"pr","value":"#68920","number":68920}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":122923,"title":"fix(desktop): track one unscoped stream pin per session","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/session/hooks/use-message-stream/gateway-event/index.ts","apps/desktop/src/lib/gateway-events.test.ts","apps/desktop/src/lib/gateway-events.ts"]},{"kind":"pr","number":123010,"title":"fix(tui-gateway): reap stale deferred active-session leases","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tui_gateway/test_deferred_lease_reaper.py","tui_gateway/session_lifecycle.py","tui_gateway/session_reaper.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}