fix(strix): bound retry budget and retain attempt logs - #1333
Conversation
Transient LLM provider outages (rate limits, connection/warm-up failures, ModelBehaviorError) previously failed the required strix check on the first attempt even when no vulnerability was reported, forcing manual reruns of the whole PR queue. The gate now retries such typed outages up to 3 attempts with linear backoff inside a deterministic SECONDS-based deadline (100 min cap, >=10 min remaining required to retry), all inside the existing 120-minute job budget. Genuine vulnerability reports, configuration failures (exit 2), and unexpected exit codes never retry; every terminal outcome remains fail-closed. Signal patterns are defined before the loop and the post-loop classification is unchanged.
…ed gate - Update stale model assertions from the nonexistent gpt-5.6-luna to the shipped openai-direct/gpt-5.4 fallback (left stale by a724582). - Rework the backend-unavailable tail-scoping test to extract the neutralization/classification block (post-retry) and inject the canonical signal definitions, matching the bounded provider-outage retry loop added for the STRIX_PROVIDER_UNAVAILABLE failure class.
…iew pool Follows a724582's finding that gpt-5.6-luna 404s on the OpenAI API: the dispatch workflow still routed the review agent through that candidate, guaranteeing one wasted attempt per cycle and failing the exact-head-path policy assertions that already expected openai/gpt-5.4. Rename the embedded openai-direct catalog entry to gpt-5.4, update the pool string and the rationale comments.
…tract pool with gpt-5.4 The dispatch workflow's openai-direct slot is now gpt-5.4 (a724582: luna 404s), so update REVIEW_DISPATCH_BLOB_SHA to the recomputed blob hash and align the agent-contract candidate list/expectations.
CodeRabbit review finding: the bounded retry loop inspected the full console log while the terminal classification scopes to the tail after the last pipeline-continuation marker. An already-exempted finding before the marker therefore suppressed retries of a genuine later outage. The loop now computes the same continuation-marker scope per attempt for both the reported- vulnerability and backend/model-error checks; terminal classification is unchanged. Adds STRIX_GATE_RETRY_BACKOFF_SECONDS (default 90) so tests can exercise the loop without real sleeps, plus regression coverage for recovery after an exempted finding and zero-retry on a real tail finding.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Exact-current-head evidence: |
|
Exact-head TDD evidence for
Security/CodeQL/SBOM workflows and an independent exact-current-head formal verdict remain required; this comment does not treat pending evidence as passing. |
|
Exact-head evidence for |
Current-head verification
|
Exact-head maintenance audit
The exact-head OpenCode review dispatch was requested. |
Replacement for #1332
This current-main replacement retains the bounded provider-outage retry behavior and fixes the exact-head review findings:
Local checks:
git diff --checkRe-uploaded after the requested close-and-new workflow; based on #1332's current head
495c02dplus the bounded review fixes.