- Move classify_persistence_error into hermes_state beside is_disk_full_error and delegate the disk bucket to it (fixes 'ENOSPC writing state.db' and 'not enough space' classifying as unknown). run_agent keeps a thin lazy delegating wrapper so the documented import path and fast import survive. - Classify CompressionSessionBusyError (and its RPC-wrapped message forms) as 'locked': the motivating #81227 failure mode stringifies to 'is being compressed by another writer', which the substring heuristic missed. - Export PERSISTENCE_ERROR_CAUSES and iterate it in the cron explainer suppression instead of a hardcoded tuple, so a future cause bucket cannot silently desynchronize cron delivery. - Hedge the gateway locked/unknown recovery wording ('should already be saved' instead of 'was recorded') to match the explainer - the early turn-start persist may also have failed. - Drop STATE_DB_WAL_WARN_BYTES (speculative dead constant with no consumer; the pre-existing 50 MB doctor WAL check covers the warning). - Tests: compression-busy classification, is_disk_full_error delegation, causes-tuple coverage; mutation-checked red-green. |
||
|---|---|---|
| .. | ||
| scripts | ||
| __init__.py | ||
| blueprint_catalog.py | ||
| executions.py | ||
| jobs.py | ||
| lifecycle_guard.py | ||
| monitor.py | ||
| notepad.py | ||
| scheduler.py | ||
| scheduler_provider.py | ||
| suggestion_catalog.py | ||
| suggestions.py | ||