From c6aa8761bb2b1007e9c05ac51748fd7734735ff3 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 1 Sep 2026 21:24:33 +0900 Subject: [PATCH] fix(strix): keep model preflight timeout positive Supersede closed draft #1597 from current protected main. The Strix workflow blob on main is byte-identical to the pre-fix blob verified in #1597; the one-line LLM_TIMEOUT=300 repair and regression contract already passed the focused runner test before the workflow-permission-only push rejection. No provider bypass, fallback, severity, retry, or fail-closed policy change. --- .github/workflows/strix.yml | 2 +- tests/test_strix_llm_timeout_contract.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tests/test_strix_llm_timeout_contract.py diff --git a/.github/workflows/strix.yml b/.github/workflows/strix.yml index 672c9b796e..26d5d8b2cb 100644 --- a/.github/workflows/strix.yml +++ b/.github/workflows/strix.yml @@ -783,7 +783,7 @@ jobs: 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' }} run: | - export LLM_TIMEOUT=0 + export LLM_TIMEOUT=300 export STRIX_MEMORY_COMPRESSOR_TIMEOUT=0 export STRIX_PROCESS_TIMEOUT_SECONDS=0 export STRIX_TOTAL_TIMEOUT_SECONDS=0 diff --git a/tests/test_strix_llm_timeout_contract.py b/tests/test_strix_llm_timeout_contract.py new file mode 100644 index 0000000000..6f6da35694 --- /dev/null +++ b/tests/test_strix_llm_timeout_contract.py @@ -0,0 +1,20 @@ +"""Regression contract for the Strix model preflight request timeout.""" + +from __future__ import annotations + +import re +from pathlib import Path + + +WORKFLOW_PATH = Path(__file__).parents[1] / ".github" / "workflows" / "strix.yml" + + +def test_strix_model_preflight_timeout_matches_upstream_default() -> None: + """Keep model preflight finite and positive instead of cancelling it immediately.""" + workflow = WORKFLOW_PATH.read_text(encoding="utf-8") + configured_timeouts = re.findall( + r"(?m)^\s*export LLM_TIMEOUT=([0-9]+)\s*$", + workflow, + ) + + assert configured_timeouts == ["300"]