-
Notifications
You must be signed in to change notification settings - Fork 0
fix(strix): scan-start jitter plus gpt-5.6-luna fallback migration #1321
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -453,7 +453,7 @@ jobs: | |
| - name: Gate Strix secrets | ||
| id: gate | ||
| env: | ||
| STRIX_MODEL: ${{ github.event.client_payload.strix_llm || (steps.target_visibility.outputs.is_private == 'false' && 'nvidia_nim/nvidia/nemotron-3-super-120b-a12b' || 'gpt-5.4') }} | ||
| STRIX_MODEL: ${{ github.event.client_payload.strix_llm || (steps.target_visibility.outputs.is_private == 'false' && 'nvidia_nim/nvidia/nemotron-3-super-120b-a12b' || 'gpt-5.6-luna') }} | ||
| STRIX_MODEL_REQUESTED: ${{ github.event.client_payload.strix_llm || '' }} | ||
| STRIX_OPENAI_API_KEY: ${{ secrets.STRIX_OPENAI_API_KEY || secrets.OPENAI_API_KEY }} | ||
| STRIX_OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} | ||
|
|
@@ -464,7 +464,7 @@ jobs: | |
| run: | | ||
| strix_model="$(printf '%s' "$STRIX_MODEL" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" | ||
| if [ -z "$STRIX_MODEL_REQUESTED" ] && [ "$strix_model" = "nvidia_nim/nvidia/nemotron-3-super-120b-a12b" ] && [ -z "${STRIX_NVIDIA_NIM_API_KEY:-}" ]; then | ||
| strix_model="gpt-5.4" | ||
| strix_model="gpt-5.6-luna" | ||
| fi | ||
| echo "strix_model=$strix_model" >> "$GITHUB_OUTPUT" | ||
| case "$strix_model" in | ||
|
|
@@ -834,7 +834,7 @@ jobs: | |
| STRIX_LLM_MAX_RETRIES: 1 | ||
| STRIX_TRANSIENT_RETRY_PER_MODEL: 2 | ||
| STRIX_TRANSIENT_RETRY_BACKOFF_SECONDS: 60 | ||
| STRIX_FALLBACK_MODELS: ${{ steps.gate.outputs.provider_mode == 'github_models' && 'openai-direct/gpt-5.4' || steps.gate.outputs.provider_mode == 'openai_direct' && 'openai-direct/gpt-5.4' || steps.gate.outputs.provider_mode == 'openrouter' && 'openai-direct/gpt-5.4' || steps.gate.outputs.provider_mode == 'nvidia_nim' && 'nvidia_nim/nvidia/llama-3.3-nemotron-super-49b-v1.5 openai-direct/gpt-5.4' || '' }} | ||
| STRIX_FALLBACK_MODELS: ${{ steps.gate.outputs.provider_mode == 'github_models' && 'openai-direct/gpt-5.6-luna' || steps.gate.outputs.provider_mode == 'openai_direct' && 'openai-direct/gpt-5.6-luna' || steps.gate.outputs.provider_mode == 'openrouter' && 'openai-direct/gpt-5.6-luna' || steps.gate.outputs.provider_mode == 'nvidia_nim' && 'nvidia_nim/nvidia/llama-3.3-nemotron-super-49b-v1.5 openai-direct/gpt-5.6-luna' || '' }} | ||
| STRIX_GITHUB_MODELS_API_BASE_FILE: ${{ env.STRIX_GITHUB_MODELS_API_BASE_FILE }} | ||
| STRIX_GITHUB_MODELS_KEY_FILE: ${{ env.STRIX_GITHUB_MODELS_KEY_FILE }} | ||
| STRIX_OPENAI_FALLBACK_KEY_FILE: ${{ env.STRIX_OPENAI_FALLBACK_KEY_FILE }} | ||
|
|
@@ -855,6 +855,8 @@ jobs: | |
| PR_BASE_SHA: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.base.sha || github.event.client_payload.pr_base_sha }} | ||
| PR_HEAD_SHA: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.event.client_payload.pr_head_sha }} | ||
| IS_PR_EVIDENCE_RUN: ${{ (github.event_name == 'pull_request_target' || github.event.client_payload.pr_number != '') && 'true' || 'false' }} | ||
| github_run_id: ${{ github.run_id }} | ||
| github_run_attempt: ${{ github.run_attempt }} | ||
| run: | | ||
| budget_suffix="TIME""OUT" | ||
| process_budget_seconds="5400" | ||
|
|
@@ -871,6 +873,19 @@ jobs: | |
| # could not complete a scan. Provider failure is typed infrastructure | ||
| # evidence, but remains non-passing because no authoritative complete | ||
| # vulnerability result exists. | ||
|
|
||
| # De-synchronize concurrent PR scans. Several pull requests often | ||
| # start within the same minute; without a spread they all hit the | ||
| # same NVIDIA NIM / OpenAI capacity window at once and exhaust it | ||
| # with 429s before any retry ladder can recover. A run-id-derived | ||
| # jitter stays deterministic per run while bounding the delay well | ||
| # inside the process budget. | ||
| scan_stagger_seconds=$(( (github_run_id % 8) * 15 + (github_run_attempt - 1) * 30 )) | ||
|
Contributor
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. 📝 Info: Stagger plus gate stays under the step timeout Worst-case stagger is 165s (run_id%8==7, attempt 3). Added to the gate's 5700s total timeout that is 5865s, under the 100-minute (6000s) step timeout, leaving a ~135s margin. Bounded but tight. Was this helpful? React with 👍 or 👎 to provide feedback.
Contributor
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. 📝 Info: run_id % 8 bucketing can still collide The stagger uses Was this helpful? React with 👍 or 👎 to provide feedback. |
||
| if [ "$scan_stagger_seconds" -gt 0 ]; then | ||
| echo "Staggering Strix scan start by ${scan_stagger_seconds}s to avoid provider-capacity collisions across concurrent PR scans." >&2 | ||
| sleep "$scan_stagger_seconds" | ||
| fi | ||
|
Comment on lines
+883
to
+887
Contributor
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. 📝 Info: Zero-valued arithmetic expansion will not trip set -e When Was this helpful? React with 👍 or 👎 to provide feedback. |
||
|
|
||
| strix_run_log="$RUNNER_TEMP/strix_gate_console.log" | ||
| strix_rc=0 | ||
| set +e | ||
|
|
||
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.
🟡 Model rename breaks pinned Strix workflow tests
Every
gpt-5.4string in the workflow becamegpt-5.6-luna, butscripts/ci/test_strix_quick_gate.sh:306and:363-365still assert the workflow containsgpt-5.4, as doesscripts/ci/strix_required_workflow_smoke.sh:171-175. Those assertions now fail and exit 1, so the required Strix quality check breaks.Prompt for agents
Was this helpful? React with 👍 or 👎 to provide feedback.