diff --git a/agent/turn_explainers.py b/agent/turn_explainers.py index c07b28a5ef..360fc1f68b 100644 --- a/agent/turn_explainers.py +++ b/agent/turn_explainers.py @@ -107,6 +107,12 @@ _PERSISTENCE_CAUSE_EXPLANATIONS: Dict[str, str] = { "for the other process to finish, then send your message " "again." ), + "session_row_missing": ( + "this session was deleted from storage while the chat was still open, " + "and Hermes could not recreate it, so this message was not saved. " + "Send your message again; if it keeps failing, run " + "`hermes {profile_arg}doctor`." + ), "locked": ( "the turn was stopped because session storage was busy " "(another Hermes process was writing to the state " diff --git a/hermes_state_user_copy.py b/hermes_state_user_copy.py index 2fecd87939..c2314bcc9c 100644 --- a/hermes_state_user_copy.py +++ b/hermes_state_user_copy.py @@ -45,6 +45,11 @@ _STORAGE_FAILURES: dict[str, tuple[str, str, str]] = { "the session database file is damaged", _DOCTOR + " Recovery: `hermes {profile_arg}sessions recover --source --inspect-only`.", ), + "session_row_missing": ( + "storage_session_missing", + "this session's database row was deleted while the chat was still open and could not be recreated", + "Try again; if it persists, run `hermes {profile_arg}doctor`.", + ), "fts_index": ( "storage_index_corrupt", "the session search index is damaged (the messages themselves are intact)",