teknium1
6ba45b0e06
fix(sessions): storage maintenance refuses while a writer holds state.db; human-first retired-WAL guard text + recovery guide
...
`hermes sessions optimize`, `optimize-storage` and `prune` now run the same fail-closed
holder scan doctor and repair use before rewriting the store. While a gateway, Desktop,
dashboard or cron process holds state.db (or a WAL sidecar) they print each holder as
`PID N (command)` with the stop remedy and exit 1; `--force` overrides with a warning,
`--dry-run` previews are never gated. The Desktop console's `sessions optimize` gets the
same refusal. Why: a user ran `optimize-storage` under a fleet of eight live gateways and
every agent answered every turn with the retired-WAL refusal until all writers were
stopped by hand (#110054 , maintainer follow-up 09-20).
The DeletedWalGenerationError text is now two layers: a first sentence for the person
reading a chat bubble or banner (what happened, nothing is lost, quit every Hermes
process on the profile, `hermes doctor` names the holders, never `doctor --fix` or delete
files while they run, docs link), then the operator detail. The classifier fingerprint
"deleted state.db-wal or state.db-shm" is unchanged. The cause table
(`hermes_state_user_copy`, feeding the CLI banner, TUI/Desktop RPC error and the gateway
home-channel notice) and the chat explainer carry the same first steps; the gateway
notice no longer hardcodes `doctor --fix` + `gateway restart` for every non-corrupt cause,
which for a held retired generation is the second-writer trap.
New user-guide page `session-storage-recovery.md` (registered in sidebars, linked from the
guard text, the developer state-db-recovery page and the sessions guide): the three steps,
the do-nots, why maintenance refuses, and what the files beside state.db are
(retired-wal captures + manifest.json, pre-update-emergency backups, corrupt backups,
snapshots).
2026-09-20 20:13:33 -07:00
..
2026-09-20 18:54:24 -07:00
2026-09-13 05:07:50 -07:00
2026-09-18 10:22:14 -07:00
2026-09-13 05:07:11 -07:00
2026-09-19 16:20:29 +05:30
2026-09-20 14:29:39 -07:00
2026-09-15 04:56:01 -07:00
2026-09-06 20:50:02 +05:30
2026-09-20 00:35:04 -07:00
2026-09-13 09:18:02 -07:00
2026-09-20 16:31:10 -07:00
2026-09-20 16:31:10 -07:00
2026-09-19 12:38:55 -07:00
2026-09-20 12:49:40 -07:00
2026-09-20 12:49:40 -07:00
2026-09-06 05:37:03 -07:00
2026-09-19 09:56:12 -07:00
2026-09-14 20:01:19 +05:30
2026-09-03 17:13:22 -07:00
2026-09-17 08:53:15 -07:00
2026-09-20 13:22:30 -07:00
2026-09-17 08:45:46 -07:00
2026-09-17 09:07:51 -07:00
2026-09-19 02:37:36 -07:00
2026-09-17 09:11:38 -07:00
2026-09-19 10:25:30 -07:00
2026-09-19 09:28:45 -07:00
2026-09-20 12:09:47 -07:00
2026-09-07 07:06:58 -07:00
2026-09-19 12:30:32 -07:00
2026-09-20 12:09:47 -07:00
2026-09-20 00:35:04 -07:00
2026-09-03 17:13:22 -07:00
2026-09-03 17:13:22 -07:00
2026-09-04 00:15:16 -07:00
2026-09-20 14:29:39 -07:00
2026-09-20 17:00:43 -07:00
2026-09-19 09:53:48 -07:00
2026-09-19 09:53:48 -07:00
2026-09-19 09:53:48 -07:00
2026-09-20 14:29:39 -07:00
2026-09-19 09:28:13 -07:00
2026-09-19 10:52:11 -07:00
2026-09-19 20:44:24 -07:00
2026-09-19 20:44:24 -07:00
2026-09-06 22:45:31 +05:30
2026-09-15 03:47:15 -07:00
2026-09-03 09:44:26 -07:00
2026-09-20 15:27:11 -07:00
2026-09-13 05:09:43 -07:00
2026-09-20 15:50:49 -07:00
2026-09-20 18:53:10 -07:00
2026-09-11 02:07:48 -07:00
2026-09-16 17:17:47 -07:00
2026-09-19 10:28:34 -07:00
2026-09-20 19:45:30 -07:00
2026-09-13 05:20:26 -07:00
2026-09-20 18:53:10 -07:00
2026-09-19 09:52:18 -07:00
2026-09-19 10:44:26 -07:00
2026-09-19 09:40:56 -07:00
2026-09-19 09:37:23 -07:00
2026-09-19 21:24:05 -07:00
2026-09-20 13:22:30 -07:00
2026-09-18 20:55:24 -07:00
2026-09-20 14:02:17 +05:30
2026-09-19 09:20:54 -07:00
2026-09-19 12:30:32 -07:00
2026-09-07 08:19:32 -07:00
2026-09-16 17:48:48 -07:00
2026-09-18 10:03:04 -07:00
2026-09-03 04:31:46 -07:00
2026-09-20 15:28:21 -07:00
2026-09-19 10:54:43 -07:00
2026-09-03 17:13:22 -07:00
2026-09-20 17:00:43 -07:00
2026-09-18 10:08:58 -07:00
2026-09-20 10:50:27 -07:00
2026-09-14 06:44:54 -07:00
2026-09-11 15:26:46 -07:00
2026-09-17 13:52:36 +05:30
2026-09-03 17:13:22 -07:00
2026-09-04 00:15:16 -07:00
2026-09-19 20:56:31 -07:00
2026-09-12 01:35:05 -07:00
2026-09-15 03:58:05 -07:00
2026-09-12 08:23:13 -07:00
2026-09-18 13:01:12 -04:00
2026-09-16 17:48:17 -07:00
2026-09-07 08:28:43 -07:00
2026-09-18 09:21:42 -07:00
2026-09-11 11:54:49 -07:00
2026-09-03 22:00:01 -07:00
2026-09-15 19:03:33 -07:00
2026-09-03 09:44:26 -07:00
2026-09-13 05:19:48 -07:00
2026-09-15 03:47:15 -07:00
2026-09-20 15:26:34 -07:00
2026-09-20 15:26:34 -07:00
2026-09-18 20:56:35 -07:00
2026-09-20 15:51:19 -07:00
2026-09-20 14:29:39 -07:00
2026-09-19 21:08:09 -07:00
2026-09-19 00:53:26 -07:00
2026-09-18 01:43:35 +05:30
2026-09-17 12:28:25 +05:30
2026-09-06 09:11:04 -07:00
2026-09-13 05:09:06 -07:00
2026-09-19 09:21:18 -07:00
2026-09-19 10:56:19 -07:00
2026-09-11 15:26:46 -07:00
2026-09-16 11:06:06 -07:00
2026-09-03 09:44:26 -07:00
2026-09-03 15:07:39 -07:00
2026-09-17 09:03:29 -07:00
2026-09-18 09:56:28 -07:00
2026-09-19 10:44:26 -07:00
2026-09-03 17:13:22 -07:00
2026-09-14 06:55:54 -07:00
2026-09-03 09:44:26 -07:00
2026-09-18 10:22:14 -07:00
2026-09-15 06:16:38 -07:00
2026-09-20 14:02:17 +05:30
2026-09-19 10:20:55 -07:00
2026-09-20 16:03:38 -07:00
2026-09-13 21:27:35 -07:00
2026-09-19 09:57:53 -07:00
2026-09-18 09:58:12 -07:00
2026-09-19 23:38:49 -07:00
2026-09-19 23:42:20 -07:00
2026-09-03 17:13:22 -07:00
2026-09-16 17:10:13 -07:00
2026-09-13 19:23:09 +05:30
2026-09-19 09:49:39 -07:00
2026-09-08 04:38:47 -07:00
2026-09-03 17:13:22 -07:00
2026-09-18 10:22:47 -07:00
2026-09-15 19:23:53 -07:00
2026-09-17 20:56:27 +05:30
2026-09-19 10:38:30 -07:00
2026-09-06 05:35:12 -07:00
2026-09-20 10:16:51 -07:00
2026-09-20 11:27:39 -07:00
2026-09-03 17:13:22 -07:00
2026-09-18 12:51:22 -07:00
2026-09-20 15:50:26 -07:00
2026-09-18 10:22:47 -07:00
2026-09-03 17:13:22 -07:00
2026-09-03 03:31:03 -07:00
2026-09-18 01:43:35 +05:30
2026-09-03 12:29:52 -07:00
2026-09-19 12:21:39 -07:00
2026-09-03 03:31:03 -07:00
2026-09-20 10:51:03 -07:00
2026-09-09 10:31:26 +05:30
2026-09-18 01:43:35 +05:30
2026-09-16 06:27:23 -05:00
2026-09-03 13:24:04 -07:00
2026-09-04 00:15:16 -07:00
2026-09-13 05:20:26 -07:00
2026-09-15 04:12:13 -07:00
2026-09-20 14:09:57 -07:00
2026-09-10 02:21:16 +05:30
2026-09-20 18:09:19 +05:30
2026-09-18 10:03:04 -07:00
2026-09-18 10:03:04 -07:00
2026-09-06 22:56:51 +05:30
2026-09-12 08:25:14 -07:00
2026-09-20 18:24:07 -07:00
2026-09-04 00:15:16 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 09:44:26 -07:00
2026-09-04 00:15:16 -07:00
2026-09-20 12:36:34 +05:30
2026-09-20 17:00:43 -07:00
2026-09-14 20:35:28 +05:30
2026-09-10 10:45:57 -07:00
2026-09-20 12:52:07 -07:00
2026-09-20 14:09:57 -07:00
2026-09-18 01:43:35 +05:30
2026-09-20 20:13:33 -07:00
2026-09-16 17:48:17 -07:00
2026-09-15 04:18:34 -07:00
2026-09-19 10:54:43 -07:00
2026-09-19 12:12:04 +05:30
2026-09-20 14:09:57 -07:00
2026-09-20 15:26:34 -07:00
2026-09-09 12:17:57 +05:30
2026-09-18 01:43:35 +05:30
2026-09-19 00:59:27 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 09:49:14 -07:00
2026-09-19 12:38:55 -07:00
2026-09-20 17:00:43 -07:00
2026-09-19 00:04:42 -07:00
2026-09-19 10:47:48 -07:00
2026-09-19 00:04:42 -07:00
2026-09-19 12:38:55 -07:00
2026-09-18 09:21:42 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 01:43:35 +05:30
2026-09-19 10:51:40 -07:00
2026-09-17 18:36:10 -07:00
2026-09-06 13:21:17 -07:00
2026-09-20 14:29:39 -07:00
2026-09-10 11:48:01 -07:00
2026-09-20 10:21:52 -07:00
2026-09-20 10:23:04 -07:00
2026-09-19 09:51:12 -07:00
2026-09-04 00:15:16 -07:00
2026-09-15 04:48:20 -07:00
2026-09-03 17:13:22 -07:00
2026-09-04 07:17:00 -07:00