Repository navigation
feat: Per-difficulty too-wide threshold: park a medium/large card after ONE fresh-build timeout - #550
Conversation
…er ONE fresh-build timeout
There was a problem hiding this comment.
QA panel review — PASS
code-review-structural · head d0e8edda3941 · formal
Low-risk, well-scoped PR: adds a per-difficulty override for the decompose-after-timeouts threshold with proper fallback to the global value. The panel raised a single nit-level maintainability note (cross-test-file imports of private helpers), which the verifier confirmed verbatim. No findings were refuted or dropped; no prior requests to disposition. No coverage gaps.
Findings
| Severity | Location | Finding | Verified | |
|---|---|---|---|---|
| ⚪ | nit | tests/test_timeout_threshold_549.py:7 |
Cross-test-file imports of private helpers create brittle coupling between test modules | confirmed |
findings JSON (machine-readable)
[
{
"file": "tests/test_timeout_threshold_549.py",
"line": 7,
"severity": "nit",
"category": "maintainability",
"claim": "Cross-test-file imports of private helpers create brittle coupling between test modules",
"evidence": "test_timeout_threshold_549.py imports _CARD, _TIMEOUT, _SplitStore, _blocks, and _timing_out_board from test_timeout_decompose_378. These are private (underscore-prefixed) helpers with no stability contract. A rename, restructure, or split of that module would break this test file silently.",
"source": "protopatch",
"verdict": "confirmed",
"note": "Line 7 reads verbatim: `from test_timeout_decompose_378 import _CARD, _TIMEOUT, _SplitStore, _blocks, _timing_out_board` \u2014 all five are underscore-prefixed private names imported across test modules."
}
]There was a problem hiding this comment.
Promoting the PASS verdict for head d0e8edda3941: all checks terminal-green, zero unresolved review threads. (approve-on-green)
Open findings carried by this approval — non-blocking, but they did not go away:
- nit
tests/test_timeout_threshold_549.py:7— Cross-test-file imports of private helpers create brittle coupling between test modules
Approving a WARN does not resolve its findings (issue #22).
Summary
Added YAML-only difficulty thresholds, preserving the global default and existing timeout guards. Documented
{medium: 1, large: 1}and added regression coverage.Ruff checks passed. Full pytest run had 3,129 passes and 40 skips; its sole failure was the documentation key count, now corrected with all nine documentation tests passing. The 568 focused timeout and loop tests also passed.
Refs #549.