Two recovery paths for execute/errored plans using the domain model's
classify_error() for canonical error classification:
1. Transient failures (§28530/§35958): rate limit, timeout, connection
errors — reset to execute/queued and re-execute with the same
strategy. Preserves strategy_decisions_json for decision
hierarchy reconstruction.
2. Non-transient failures (§18323-18329): strategy constraint,
authentication, unknown — delegate to
service.try_auto_revert_from_execute() which enforces
MAX_REVERSIONS loop guard, increments reversion_count, records a
reversion decision, and respects the delete_content automation
threshold. Error findings are redacted via redact_error_details()
and stored as JSON for the strategy actor (§18329).
Error classification uses the domain model's classify_error() and
ErrorCategory enum — single source of truth, no parallel frozenset.
AuthenticationError correctly classified as non-transient per domain
model.
ISSUES CLOSED: #10843