{"repo":"NousResearch/hermes-agent","public_id":"119973","display_label":"Multiplexed gateway delivery-ledger state.db routing bug","summary":"A bug causes a multiplexed gateway to lose redelivery of served-profile replies after a crash, because delivery-ledger rows are written to the profile's state.db while the boot sweep reads the launch state.db. The fix and related changes ensure ledger rows and background paths follow the correct database under multiplexing.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":120103,"merged_at":"2026-09-23T15:09:48+00:00"},"resolution":{"state":"resolved","by":"pr-120103"},"freshness":{"state":"verified","last_verified_at":"2026-09-23T15:09:48+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":84253,"pr_number":120103,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-23T15:09:48+00:00"},{"issue_number":119242,"pr_number":120103,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T15:09:48+00:00"},{"issue_number":119858,"pr_number":120103,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T15:09:48+00:00"},{"issue_number":119859,"pr_number":120103,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T15:09:48+00:00"},{"issue_number":119973,"pr_number":120103,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-23T15:09:48+00:00"},{"issue_number":120018,"pr_number":120103,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-23T15:09:48+00:00"},{"issue_number":120044,"pr_number":120103,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-23T15:09:48+00:00"}],"members":[{"kind":"issue","number":119973,"title":"[Bug]: A multiplexed gateway never redelivers a served profile's reply after a crash: its delivery-ledger rows go to the profile's state.db, the boot sweep reads the launch one","url":null,"state":"closed"},{"kind":"pr","number":119974,"title":"fix(gateway): keep a served profile's delivery-ledger rows in the launch state.db","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"bd970b0588","number":0},{"kind":"pr","value":"#120103","number":120103}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":120103,"title":"Cron, kanban, ledger and adapter background paths follow the owning profile under multiplex (#119858, #119859, #119973, #119242; salvage #119974 #120045 #120019 #120009 #112888)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/redact.py","agent/secret_scope.py","contributors/emails/[redacted:email]","contributors/emails/[redacted:email]","cron/lifecycle_guard.py","gateway/AGENTS.md","gateway/delivery_ledger.py","gateway/platforms/api_server.py","gateway/platforms/api_server_openai_routes.py","gateway/platforms/api_server_runs.py","gateway/run_adapters.py","hermes_cli/env_loader.py","hermes_cli/kanban.py","hermes_cli/kanban_specify.py","hermes_cli/profiles.py","hermes_constants.py","hermes_logging.py","tests/agent/test_i18n.py","tests/agent/test_secret_scope_pinned_launch_home.py","tests/agent/test_serves_routed_profile_pin.py","tests/conftest.py","tests/cron/test_bot_chat_own_profile_multiplex_home.py","tests/gateway/test_api_server_response_store_profile_scope.py","tests/gateway/test_delivery_ledger_process_home.py","tests/gateway/test_planned_restart_notice_multiplex.py","tests/gateway/test_restart_resume_pending.py","tests/hermes_cli/test_profile_delete_service_name.py","tests/test_hermes_logging.py","tests/tools/test_kanban_comment_injection.py","tests/tools/test_kanban_persisted_identity.py","tools/environments/local.py","tools/kanban_tools.py","website/docs/user-guide/messaging/index.md","website/docs/user-guide/multi-profile-gateways.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}