Skip to content

fix(strix): continue all-429 startup failures at admission boundary - #2448

Merged
seonghobae merged 2 commits into
mainfrom
fix/strix-preflight-capacity-continuation-20260927
Sep 27, 2026
Merged

seonghobae merged 2 commits into
mainfrom
fix/strix-preflight-capacity-continuation-20260927

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Root cause

Strix all-429 sidecar startup failures occur before model-gate retries can run. Exact failed jobs: late-life-anxiety-reanalysis #257 job108504580446 and #269 job108303563901. All selected routes were HTTP429, ready0; this is capacity loss, not a security verdict.

Repair

Reuse the existing stdlib preflight classifier from #2440. Preserve failed scan/status evidence and export typed recovery outputs to a separate no-checkout job with Contents write. It validates the live open/Ready PR repository, head, base SHA and base ref before issuing one native strix-scan payload. Existing two-attempt budget, malformed-counter exhaustion and bounded jitter are retained. No ZDR/gateway/model-timeout change.

Verification

115 affected tests passed before the final CLI correction; the workflow classifier call itself now has an execution regression, and 47 classifier/dispatch tests passed after correction. actionlint and diffcheck pass. This proves local behavior only. Hosted review and same-head runtime recovery remain unverified. ADR extension remains Proposed.

Review

Please inspect the exact new head, including the classifier CLI connection, isolated write authority, live metadata binding, and cancellation/attempt budget. No old approval or queued check establishes acceptance.

@coderabbitai

coderabbitai Bot commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 9 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: b901348f-f4ee-4d63-8ae1-882311e422d3

📥 Commits

Reviewing files that changed from the base of the PR and between 23f36cd and bcd182c.

📒 Files selected for processing (4)
  • .github/workflows/strix.yml
  • docs/adr/0031-noema-transport-capacity-redispatch.md
  • docs/doctoring/strix-preflight-capacity-continuation-20260927.md
  • tests/test_strix_preflight_continuation.py

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent read-only technical review receipt for exact head bcd182c449fc95c06c6801bd1c1c696de3a503d3 / base 23f36cd56fbe245a06e7a9727cb28d9511154645. Reviewer: separate FMLS audit session, Orca receipt msg_0933b2e8b115. This COMMENT attributes the reviewer's findings; it is not self-approval or a GitHub APPROVED review.

Independent read-only technical review #2448

Head: bcd182c
Base: 23f36cd
Verdict: no blocking defect found in requested source chain. This is not GitHub approval, deployment acceptance, or merge authorization.

Source trace

  • strix.yml:789,814-820: actual failed sidecar step invokes trusted noema_preflight_capacity.py CLI; report path matches sidecar.sh:28,236. Stale report removed before launch (799-809).
  • classifier:45-91,94-109: strict integer ready=0/probed>=1, exact route count, rejected/deferred integer429 only; primary fallback also all429. Missing/malformed/linked/nonregular/oversized evidence ineligible.
  • classifier:112-159 and noema_transport_redispatch.py:9-56: typed outputs, canonical SHA, missing counter0, invalid counter exhausts;0->1->2,2 not eligible; provider wait1..300 or deterministic60..180 jitter.
  • strix.yml:370-376 exports only outputs; original job failure remains failure.
  • strix.yml:1424-1451: independent no-checkout write job; requires admission, original failure, capacity=true, eligible=true, not cancelled. contents:write and PR:read only; no model inputs/provider secrets. GH_TOKEN prefers existing central dispatch secret; consumer github.token fallback cannot itself authorize central repo, so missing credential fails visibly.
  • strix.yml:1454-1506: organization/origin/number/head/base validation; delay<=300,next attempt1|2; after delay GET livePR and compares head+repo,base+repo+ref,strict draft==false,open. Mismatch retires without POST. Valid path sends one central strix-scan with same identity and incremented attempt; existing admission rechecks target.

Independent executed verification

PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 PYTHONDONTWRITEBYTECODE=1 python3 -B -m pytest -q -p no:cacheprovider tests/test_strix_preflight_continuation.py tests/test_noema_preflight_capacity.py
Exit0:47 passed in2.86s. Actual classifier CLI and extracted dispatch shell exercised with GitHub/sleep stubs; no external requests.
actionlint .github/workflows/strix.yml: exit0, no diagnostics.
git status --porcelain=v1: empty; exact head unchanged.

Limits

No REST/API query, workflow dispatch, source edit, approval, or merge performed. Prior115contract tests/hosted47 test claims not independently rerun. Live credentials, runner scheduling, actual429 continuation dispatch and completed security verdict unverified. Two-continuation bound applies per dispatch chain; fresh operator/scheduler invocations reset initial budget and are not globally deduplicated by this patch. No finding requiring source change in the requested scope.

Receipt msg_f254fb6c51f9 read: #2440 all429 startup repair is not proof for #2148 HTTP502; #2157 bootstrap success is a different exacthead/gate; A2 bypass scope still UNKNOWN. Existing FMLS Goal status unchanged.

@seonghobae
seonghobae merged commit de71b9e into main Sep 27, 2026
7 of 20 checks passed
@seonghobae
seonghobae deleted the fix/strix-preflight-capacity-continuation-20260927 branch September 27, 2026 14:19
@seonghobae

Copy link
Copy Markdown
Contributor Author

Explicit bypass/deployment receipt

Merged #2448 at 2026-09-27 14:19:50Z using user-authorized, head-matched gh pr merge --admin --merge --match-head-commit bcd182c449fc95c06c6801bd1c1c696de3a503d3.

Reviewed head: bcd182c449fc95c06c6801bd1c1c696de3a503d3; base: 23f36cd56fbe245a06e7a9727cb28d9511154645; actual merge: de71b9eea8f6cc25e0e10fad8a9ab03a54549b1d.

Separate read-only audit session found no blocker in the source chain and independently executed 47 classifier/dispatch tests + actionlint. Its report is attributed in the COMMENT review; no self-approval was issued. Immediately before merge, live GraphQL showed zero unresolved threads (complete page), mergeable, zero required formal approvals, strict 12 required check contexts, and active Lock default branch rules (deletion/non-fast-forward/pull-request). Merge state was BLOCKED: required checks remained queued, with cancelled/skipped entries also present. Those gates were explicitly bypassed, not passed. No ruleset/protection changes, review dismissal, or force push occurred.

Purpose: recover observed all-429 startup capacity failures at a separate bounded admission boundary while retaining failed scan/security-status evidence. Main source integration is now confirmed. Actual provider recovery, hosted current-head continuation, and completed security verdict remain unverified. Local main validation is the next step and cannot establish hosted acceptance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant