{"repo":"NousResearch/hermes-agent","public_id":"113186","display_label":"Dashboard reconcile thread safety and shutdown fixes","summary":"These items address concurrency issues with dashboard startup reconcile threads, including segfaults in SQLite under concurrent access and improper thread lifecycle management at shutdown. A related item covers how the test runner reports interpreter crashes from such failures.","subsystem":null,"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":113552},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-19T02:41:52+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":113186,"pr_number":113552,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":113186,"pr_number":115587,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":113186,"title":"CI flake: tests/hermes_cli/test_web_profiles_off_loop.py segfaults in sqlite under concurrent dashboard startup reconcile threads","url":null,"state":"closed"},{"kind":"pr","number":113235,"title":"fix(web): serialize dashboard session startup reconcile","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"c15286f44d0","number":0},{"kind":"pr","value":"#113186","number":113186},{"kind":"pr","value":"#113552","number":113552},{"kind":"pr","value":"#115587","number":115587}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":113265,"title":"fix(web): join dashboard eager-reconcile thread on shutdown","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"c15286f44d0","number":0},{"kind":"pr","value":"#113552","number":113552},{"kind":"pr","value":"#113186","number":113186},{"kind":"pr","value":"#115587","number":115587}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":113552,"title":"web dashboard: state.db reconcile worker no longer segfaults the test interpreter (joined at lifespan shutdown)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/web_server.py","tests/hermes_cli/test_web_server_boot_handshake.py"]},{"kind":"pr","number":115587,"title":"Test runner reports an interpreter segfault as CRASHED instead of \"0 failed, no tests ran\" (#113186 runner half)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["scripts/run_tests_parallel.py","tests/scripts/test_run_tests_parallel.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}