{"repo":"NousResearch/hermes-agent","public_id":"2506","display_label":"Gateway restart causes duplicate expired session flushes","summary":"These issues and PRs address a bug where expired sessions are re-flushed on every gateway restart. Multiple fix approaches are represented, involving persisting flush state to prevent redundant operations.","subsystem":"gateway","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":2,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":4481},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"stale","last_verified_at":"2026-04-01T19:05:02+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.35733333333333334},"fix_edges":[{"issue_number":2506,"pr_number":4481,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":3059,"pr_number":4481,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":2506,"title":"_session_expiry_watcher re-flushes expired sessions on every gateway restart","url":null,"state":"closed"},{"kind":"issue","number":3059,"title":"Double memory flush on gateway restart when session expires","url":null,"state":"closed"},{"kind":"pr","number":2510,"title":"fix(gateway): prevent re-flushing expired sessions on restart","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#4481","number":4481}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":2527,"title":"fix(gateway): remove expired session entries after flush to prevent restart re-flushing","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#2510","number":2510},{"kind":"pr","value":"#4481","number":4481}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":3078,"title":"fix(gateway): persist flushed-session set to DB to prevent double flush on restart","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#4481","number":4481}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":4481,"title":"fix(gateway): persist memory flush state to prevent redundant re-flushes on restart","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cli.py","gateway/run.py","gateway/session.py","hermes_cli/runtime_provider.py","run_agent.py","tests/gateway/test_async_memory_flush.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}