Repository navigation
fix(recovery): report sanitized standby command failures - #4696
Conversation
devantler
left a comment
There was a problem hiding this comment.
🤖 Generated by the Agentic Engineer
Self-review (fallback — CodeRabbit, Codex and Cursor Bugbot unavailable)
Reviewed commit: 9306072e6303b25d7a0c237828b5688ea544ebde
- CodeRabbit: the included repository allowance is exhausted. Its completed review at #4694 (review) states zero included reviews remain (2026-10-09T21:37:29Z); the hourly allowance has not reset. This is quota evidence, not a review of this commit. No paid overage is authorized.
- Codex: freshly read account review exhaustion at #4650 (comment) (2026-10-08T15:23:30Z). No reset is stated; an account-limit change is required. No paid credits are authorized.
- Cursor Bugbot: freshly read user/team usage or spend exhaustion at devantler-tech/monorepo#3949 (comment) (2026-10-07T19:32:36Z). No reset is stated; an account-limit change is required.
Verdict: no P0/P1 findings
Reviewed the complete three-file base-to-head diff and the command construction, exception capture and callers. The classifier emits only literal finite categories from bounded, recognized kubectl status lines or the caller's own cancelled/deadline context. Arbitrary errors, malformed or ambiguous server reasons and oversized stderr stay UNKNOWN. No raw error, stderr, secret or command payload reaches the returned message, and a recognized status is explicitly not asserted to prove a particular root cause.
The regression covers every supported status, context failures and malicious or incomplete evidence, with one command call and immediate failure. It failed before implementation; the complete race suite and go vet pass after implementation. The change touches no workflow, execution flag, production permission, source/current-main binding, object guard, retention decision or peer predicate. The two hosted recovery safety workflows passed with their production repair jobs skipped. Remaining CI is a separate gate; this review authorizes neither a recovery rerun nor a production mutation.
Direct current-PR reads include all reviews and conversation comments (both empty with complete pagination), no review threads, and no Bugbot review check. The successful CodeRabbit status only says automatic review is disabled, so it is not treated as a verdict.
The current-head safety workflows passed, with both production repair jobs skipped. CI's changes job failed before a runtime assertion: the public registry authentication endpoint returned HTTP 504 during the pinned backup-denial fixture build. This is not a recovery-code failure or a proof that the pull-limit incident is resolved. The same public authentication endpoint now answers HTTP 200. I restarted only the failed CI jobs once, at the unchanged reviewed head. No recovery job was rerun, and no check was relaxed. #4694 remains the separate fix for hosted fixture dependence on the direct public-registry path. |
Readiness at
This is user evaluation of the bounded reporting behavior, not a claim that the real production rejection has been diagnosed. That inaccessible server-side behavior still needs a separately approved, protected diagnostic. No workflow, authority, execution flag, retention guard or recovery retry changes in this PR. |
Why
The approved standby recovery stopped safely, but its failure report did not say why the command was rejected. That leaves the next recovery decision without useful evidence.
What
Report a small set of safe failure categories without exposing private error details. Recovery still stops on the first failure, with no extra retry, cleanup or production authorization.
Fixes #4695