# NousResearch/hermes-agent · Detecting 0-byte state.db as data loss, not healthy

## Open now

- Nothing open on GitHub.

These issues and PRs address a bug where a zero-byte state.db file is not recognized as a data-loss condition, causing silent total loss. The work involves updating detection logic, quarantining truncated files, and related corruption-handling improvements.

## TL;DR

- 7 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 2 merged PR(s), 4 PR(s) closed without merging.
- A fix was merged to main in PR #98017. Verify it addresses your case.
- **Recommended:** read PR #98017 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-98017`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.29`: the share of member 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.

## Closed / duplicate issues

- #97568: is_zeroed_state_db() returns False for a 0-byte file, so total data loss is silent

## Prior & competing PRs

- **#98017: fix(state): quarantine 0-byte truncated state.db (salvage of #97580)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `hermes_cli/backup.py`, `hermes_state.py`, `hermes_state_schema.py`, `tests/test_zeroed_state_db.py`
- **#99513: fix(state): corruption detection & heal cluster — 0-byte quarantine race, decode-error probe/heal, CJK never-raises**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `contributors/emails/[redacted:email]`, `hermes_cli/backup.py`, `hermes_cli/web_server.py`, `hermes_state.py`, `hermes_state_schema.py`, `tests/hermes_cli/test_web_server.py`, `tests/test_98924_readonly_fts_decode_error.py`, `tests/test_fts_update_of_narrowing.py`, `tests/test_state_db_malformed_repair.py`, `tests/test_tui_gateway_server.py`, `tests/test_zeroed_state_db.py`, `tui_gateway/methods_prompt.py`, `tui_gateway/server.py`
- **#97580: fix(state): quarantine 0-byte truncated state.db and record store provenance (#97568)**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `a071fc80da`, `#98017`, `#99513`
- **#98300: fix(agent): detect 0-byte state.db as zeroed, not healthy (#97568)**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#98017`
- **#99100: fix(state): is_zeroed_state_db returns True for 0-byte file (complete data loss)**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `a071fc80da`, `#97580`, `#97568`, `#98017`, `#99513`, `#97568`
- **#99179: fix(sessions): treat a zero-byte state.db as zeroed so total loss is not silent**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `a071fc80da`, `#97580`, `#97568`, `#98017`, `#99513`, `#97568`

## Fix status

- Merged to main in PR #98017 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-08-31`.
