-
Notifications
You must be signed in to change notification settings - Fork 0
fix(strix): reserve NIM budget after GitHub Models 410 brownout #955
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,86 @@ | ||
| # Strix GitHub Models retirement brownout and NVIDIA NIM budget | ||
|
|
||
| ## Decision | ||
|
|
||
| Required Strix runs on ContextualWisdomLab/.github#930, #934, #941, and | ||
| #949 failed closed after the public NVIDIA NIM primary | ||
|
Comment on lines
+5
to
+6
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win PR 번호 목록을 한 문장으로 유지하십시오. Line 6의 🧰 Tools🪛 markdownlint-cli2 (0.23.2)[warning] 6-6: No space after hash on atx style heading (MD018, no-missing-space-atx) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||
| (`nvidia_nim/nvidia/nemotron-3-super-120b-a12b`) consumed the 90-minute | ||
| process budget or later GitHub Models fallbacks returned HTTP 410 | ||
| `github_models_retirement_brownout`. A commercial buyer reading the | ||
| required security dashboard therefore saw red Strix checks that were | ||
| provider-family outages, not vulnerability evidence. | ||
|
|
||
| This increment: | ||
|
|
||
| 1. Caps each NVIDIA NIM attempt at 1800 seconds so a second hosted NIM | ||
| candidate still receives test-time compute inside the 5700-second | ||
| total budget (Conductor-style recursive allocation; Zhang et al., | ||
| 2025). The 90-minute hard process cap remains for non-NIM models. | ||
| 2. Adds `nvidia_nim/nvidia/llama-3.1-nemotron-ultra-253b-v1` before | ||
| Llama-3.3-Nemotron-Super-49B. This preserves the protected-main | ||
| `Super-49B → GitHub Models` smoke contract while still reserving | ||
| another hosted NVIDIA attempt before the GitHub Models family. | ||
| 3. Classifies a single bounded log line that contains | ||
| `github_models_retirement_brownout`, GitHub Models context, and | ||
| a digit-terminated `Error code: 410` / `HTTP 410` or the phrase | ||
| `retirement brownout` as family-dead provider evidence. Remaining | ||
| `github_models/*` fallbacks are skipped. Application 410s, issue | ||
| `#410`, longer codes such as `4100` / `4104`, and cross-line | ||
| spoofing stay non-retryable (CWE-1288; MITRE, n.d.). | ||
| 4. Keeps GitHub Models as last-resort fallbacks for github_models and | ||
| openai_direct modes. Vulnerability signals still block neutralization. | ||
|
|
||
| Accuracy, not wall-clock speed, is the allocation criterion (Narimani et | ||
| al., 2026; Muppidi et al., 2025). One 5401-second hung NIM attempt that | ||
| prevents fallbacks produces *less* scan evidence than two bounded NIM | ||
| attempts plus a skipped retired family. | ||
|
|
||
| CWE-770 forbids allocating a shared resource without an independent | ||
| limit (MITRE, 2026). The 1800-second NIM process cap is that limit: one | ||
| hung hosted attempt cannot consume the remaining 5700-second scan budget | ||
| and starve later NVIDIA candidates or the fail-closed evidence path. | ||
|
|
||
| ## Trust boundary | ||
|
|
||
| The brownout classifier uses the same same-line discipline as the NVIDIA | ||
| catalog-404 classifier. Scanner stdout can include target-repository | ||
| text; requiring the retirement code, GitHub Models context, and 410 on | ||
| one physical line prevents application `410 Gone` pages from skipping | ||
| the fallback family. Incomplete scans remain fail-closed until a | ||
| distinct model produces complete evidence or the outer workflow sees | ||
| backend-unavailable signal with no vulnerability marker. | ||
|
|
||
| `NVIDIA_NIM_API_KEY` remains the public-scan credential. Review-agent | ||
| secrets and `COPILOT_GITHUB_TOKEN` are unchanged. | ||
|
|
||
| ## References | ||
|
|
||
| Fielding, R., Nottingham, M., & Reschke, J. (2022). *HTTP semantics* | ||
| (RFC 9110). Internet Engineering Task Force. | ||
| https://doi.org/10.17487/RFC9110 | ||
|
|
||
| MITRE. (n.d.). *CWE-1288: Improper validation of unsafe equivalence in | ||
| input*. Retrieved August 13, 2026, from | ||
| https://cwe.mitre.org/data/definitions/1288.html | ||
|
|
||
| MITRE. (2026). *CWE-770: Allocation of resources without limits or | ||
| throttling*. https://cwe.mitre.org/data/definitions/770.html | ||
|
|
||
| Muppidi, S., Jagmohan, A., Vempaty, A., Luss, R., Dognin, P., Riemer, | ||
| M., Sattigeri, P., Murugesan, K., Padhi, I., Swaminathan, S., Rawat, A., | ||
| Ganhotra, J., Ganti, R., Ghalwash, M., Baldini, I., Tchrakian, T., Daly, | ||
| E., Uceda-Sosa, R., & Varshney, K. R. (2025). *TRINITY: An evolved | ||
| foundation model perspective* (arXiv:2512.04695). arXiv. | ||
| https://doi.org/10.48550/arXiv.2512.04695 | ||
|
|
||
| Narimani, H., Salmani, E., Salmani, S., Rezaei, H., & Ramezani, V. | ||
| (2026). *Fugu: A language model routing architecture* (arXiv:2606.21228). | ||
| arXiv. https://doi.org/10.48550/arXiv.2606.21228 | ||
|
|
||
| NVIDIA Corporation. (2026). *Llama-3.1-Nemotron-Ultra-253B-v1* [Model | ||
| card]. NVIDIA NIM. | ||
| https://build.nvidia.com/nvidia/llama-3_1-nemotron-ultra-253b-v1/modelcard | ||
|
|
||
| Zhang, X., Chen, H., Liu, Y., & collaborators. (2025). *Conductor: | ||
| Recursive test-time compute for multi-agent systems* (arXiv:2512.04388). | ||
| arXiv. https://doi.org/10.48550/arXiv.2512.04388 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🔴 Critical | ⚡ Quick win
GitHub Models brownout 증거를 같은 줄의 공급자 HTTP 410으로 제한하십시오.
현재 workflow 패턴은
4100및4104를 HTTP 410으로 허용합니다. gate classifier는 HTTP 410 없이retirement brownout문구만 있어도 family-dead 상태로 분류합니다. 또한 classifier는 공급자 예외 표지를 요구하지 않으므로 스캔 대상 출력이 조건을 모방할 수 있습니다..github/workflows/strix.yml#L866-L866: 각 HTTP 410 대안 뒤에([^0-9]|$)경계를 추가하고, 공급자 예외 표지가 있는 동일 로그 줄만 neutralization 후보로 허용하십시오.scripts/ci/strix_quick_gate.sh#L2857-L2865:retirement brownout단독 대안을 제거하십시오. GitHub Models 문맥, 공급자 예외 표지, 종료된 HTTP 410이 한 물리적 줄에 모두 있어야 합니다.tests/test_strix_github_models_retirement_brownout.py#L98-L138: HTTP 410이 없는retirement brownout문구와 공급자처럼 보이는 대상 출력이 거부되는 회귀 테스트를 추가하십시오. workflow terminal path에서4100,4104, provider exhaustion이 성공으로 끝나지 않는지도 검증하십시오.docs/doctoring/strix-github-models-retirement-brownout.md#L23-L29: HTTP 410 없이 문구만으로 분류할 수 있다는 설명을 제거하십시오.CHANGELOG.md#L29-L30: 실제 제한 조건과 일치하도록retirement brownout단독 조건 설명을 제거하십시오.📍 Affects 5 files
.github/workflows/strix.yml#L866-L866(this comment)scripts/ci/strix_quick_gate.sh#L2857-L2865tests/test_strix_github_models_retirement_brownout.py#L98-L138docs/doctoring/strix-github-models-retirement-brownout.md#L23-L29CHANGELOG.md#L29-L30🤖 Prompt for AI Agents