NousResearch/hermes-agent

SQLite state.db concurrent-write and locking fixes

Cluster 102589. Data as of

Nothing open on GitHub. Fix merged in #108076 on 11 Sep 2026. Check it covers your case.

The short answer

0open issues
0open PRs
4items grouped
Known?
Yes. 4 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #108076. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this resolved, deciding PR #108076. That is separate from the fix event.
Still open
Nothing open on GitHub.

These issues and fixes address multiple sources of unintended concurrent writes and lock conflicts on state.db, including lifecycle guard raw-opens bypassing POSIX locks, WAL split-brain conditions, and serialization of SQLite access across cron, gateways, dashboard, and doctor.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #108076 state.db no longer gets a second writer from profile gateways, the dashboard, the lifecycle guard or doctor --fix (#102120 #107688 #102589 #107440; salvage #103489 #102682 #108012 #105428)

    merged to main

    files: contributors/emails/[redacted:email], cron/lifecycle_guard.py, gateway/hosted_room_policy_checkpoint.py, gateway/hosted_rooms.py, hermes_cli/doctor_state.py, hermes_cli/web_server_lifecycle.py, hermes_state_holders.py, tests/cron/test_lifecycle_guard_live_db.py, tests/gateway/test_hosted_rooms.py, tests/hermes_cli/test_doctor_wal_holder_guard.py, tests/hermes_cli/test_web_server.py, tests/state/test_fts_holder_instance_scope.py, tests/tui_gateway/test_groups_methods.py, tests/tui_gateway/test_hosted_room_service.py, tui_gateway/hosted_room_service.py

2 PRs closed without merging

From the close comments: done elsewhere 1 · merged via another change 1

  • #102596 fix(cron): route lifecycle guard script reads through the sqlite live-connection registry · done elsewhere → 902ecca, #102682, #108076
  • #102682 fix(cron): serialize lifecycle script reads with SQLite locks · merged via another change → 902ecca, #108076
Closed issues · 1
  • Closed#102589cron/lifecycle_guard raw-opens state.db when a command mentions its path, dropping the gateway's POSIX locks -> WAL split-brain
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.50: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Merged PRs
#108076
Closed issues
1
Attempts
2 PRs closed without merging
Fix link checked
11 Sep 2026

For your agent

The same facts, typed.