hermes-agent/cron
kshitij 1005a057f0 review follow-ups: canonical classifier in hermes_state, compression-busy=locked, hedged gateway wording, drop dead constant
- 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.
2026-08-08 14:18:26 +05:30
..
scripts fix(cron-recipes): pre-release hardening — honest cadences, strict slot names, surface-aware UX 2026-06-11 10:49:47 -07:00
__init__.py
…
blueprint_catalog.py docs: finish Automation Blueprints terminology rebrand (#44470) 2026-06-11 17:22:22 -04:00
executions.py fix(state): make journal mode canonical and behaviorally verified 2026-07-29 18:13:09 -07:00
jobs.py fix(cron): make pause authoritative against half-paused records 2026-08-08 13:48:00 +05:30
lifecycle_guard.py fix(cron): lifecycle guard — never crash on binary referenced paths, stop matching lifecycle words inside SQL/text 2026-08-06 07:49:35 -07:00
monitor.py feat(cron): monitor-mode jobs — hash-suppressed change detection 2026-08-07 08:57:44 -07:00
notepad.py feat(cron): per-job durable notepad — KV scratchpad surviving scheduled runs 2026-08-07 08:57:48 -07:00
scheduler.py review follow-ups: canonical classifier in hermes_state, compression-busy=locked, hedged gateway wording, drop dead constant 2026-08-08 14:18:26 +05:30
scheduler_provider.py fix(cron): surface initial scheduler registration failures 2026-08-07 17:45:06 +05:30
suggestion_catalog.py fix(cron-recipes): pre-release hardening — honest cadences, strict slot names, surface-aware UX 2026-06-11 10:49:47 -07:00
suggestions.py fix(cron): surface initial scheduler registration failures 2026-08-07 17:45:06 +05:30