state.db WAL lifecycle and multi-process safety fixes
NousResearch/hermes-agent · cluster 109786
Data as of
Nothing open on GitHub. Fix merged in #109841. Check it covers your case.
The short answer
- Known?
- Yes. 7 related items grouped here, 1 issue already closed.
- Fix event
- A fix was merged to main in PR #109841. Check it covers your case. No release data is tracked.
- Tracker
- The maintainers' tracker marks this
resolved, deciding PR #109841. That is separate from the fix event. - Still open
- Nothing open on GitHub.
These items address bugs in state.db WAL generation management, including premature unlinking by short-lived connections, lock guard behavior across handle lifecycles, and second-process maintenance refusing to run while live holders exist. Several fixes target specific symptoms like Desktop chat dying after updates and hermes doctor disrupting a running gateway.
Open issues0
Open PRs0
Fixes on record
-
#109841 fix(state): tightening state.db modes no longer drops the holder's SQLite locks (#109786, salvage #109754)
files:
hermes_state.py,tests/test_hermes_state.py -
#110544 state.db WAL survives sibling closes and stray lock cancellation on every runtime (Desktop chat dies after update; salvage #109758)
files:
hermes_state.py,hermes_state_dbfile.py,hermes_state_lockguard.py,tests/hermes_state/test_deleted_wal_generation_guard.py,tests/hermes_state/test_wal_lock_guard.py -
#110872 state.db WAL lock guard follows the handle lifecycle: reopen, checkpoint-vs-close, fd reuse (review of #110544)
files:
hermes_state.py,hermes_state_dbfile.py,hermes_state_lockguard.py,tests/hermes_state/test_wal_lock_guard_lifecycle.py -
#110914 state.db maintenance from a second process refuses any live holder (doctor --fix checkpoint, schema repair; #103339 item 2)
files:
hermes_cli/doctor_state.py,hermes_state_holders.py,hermes_state_repair.py,tests/hermes_cli/test_doctor_wal_checkpoint_guard.py,tests/hermes_state/test_state_db_malformed_repair.py,tests/hermes_state/test_state_db_repair_non_destructive.py,tests/hermes_state/test_state_db_second_process_maintenance.py -
#111033 fix(desktop): stopped clarify no longer swallows the next question; doctor counts state.db holders on macOS (#109641)
files:
apps/desktop/src/components/assistant-ui/thread/message-parts.tsx,apps/desktop/src/lib/chat-messages.test.ts,apps/desktop/src/lib/chat-messages/tool-parts.ts,hermes_state_dbfile.py,tests/hermes_state/test_state_db_stats.py
1 PR closed without merging
From the close comments: done elsewhere 1
-
#109864 fix(state): short-lived write-then-close connections must not unlink a live WAL generation (#109786) · done elsewhere →
#110544,#110872,#110914,#111033
Closed issues · 1
- Closed#109786state.db WAL generation is unlinked by short-lived write-then-close connections (`hermes doctor` kills a running gateway)
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.29: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36.1.00means 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