Skip to content

Reject invalid Python regression-lane timeouts - #18476

Merged
teamleaderleo merged 2 commits into
manaflow-ai:mainfrom
BlueRaddish:fix/oct7-portable-contract
Oct 8, 2026
Merged

teamleaderleo merged 2 commits into
manaflow-ai:mainfrom
BlueRaddish:fix/oct7-portable-contract

Conversation

@BlueRaddish

@BlueRaddish BlueRaddish commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The Python regression-lane runner now rejects zero, negative, NaN, and infinite --timeout values before selecting or starting tests. NaN and infinity could disable the promised timeout bound; nonpositive values could kill valid tests immediately. Existing positive finite timeouts and the 900-second default keep their behavior.

Testing

python3 tests/test_ci_test_execution_registry.py LaneRunnerTests.test_invalid_timeouts_are_rejected_before_listing_tests failed for all five new CLI cases on regression commit 805a906b445d2e96fc78781a0ac2383c07d06ff1. With the fix, python3 tests/test_ci_test_execution_registry.py passes all 33 tests, including real process concurrency, failure reporting, and hung-test termination. git diff --check passes.

The suite ran under WSL on the existing reviewed Windows checkout; no app build or runtime test was needed. python3 scripts/verify-local.py could not establish its base because native Linux Git cannot resolve this Windows worktree's absolute .git pointer. A native verification checkout was abandoned during asset fetching when the host ran low on memory; no full-static pass is claimed. The first complete-suite attempt also lacked sparse .github files; after materializing those existing files, all 33 tests passed. No hook was bypassed. The diagnostic is internal CI tooling and does not add app/catalog strings.

AI assistance from OpenAI Codex was used for diagnosis, implementation, and tests. Open-PR checks for run_python_test_lane and lane/timeout symptoms found no matching fix; matching candidate file patches were inspected.

Changelog

none

Proof

Internal test-runner behavior; the committed CLI regression and red/green suite are the proof.

Checklist

  • Behavior changes have added or updated tests, or Testing says why not

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Note

Low Risk
Internal CI test-runner CLI validation only; no app, auth, or production runtime impact.

Overview
The Python regression-lane runner (run_python_test_lane.py) now validates --timeout at CLI parse time: it must be a positive finite number. Zero, negative, NaN, and ±infinity exit with --timeout must be a positive finite number instead of being passed through to subprocess.wait(timeout=...), where non-finite values could break the per-test kill bound and nonpositive values could time out tests immediately.

A new LaneRunnerTests.test_invalid_timeouts_are_rejected_before_listing_tests covers 0, -1, nan, inf, and -inf with --list so invalid timeouts fail before any registry listing or test execution. Existing positive finite timeouts (including the 900s default) are unchanged.

Reviewed by Cursor Bugbot for commit 68ba1ed. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Bug Fixes
    • Invalid timeout values—including zero, negative, or non-finite numbers—are now rejected with an error before tests are listed.

BlueRaddish and others added 2 commits October 7, 2026 17:00
Co-authored-by: OpenAI Codex <noreply@openai.com>
Co-authored-by: OpenAI Codex <noreply@openai.com>
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 8ec64f89-243c-4ddb-8fbb-472197e2af94
📥 Commits

Reviewing files that changed from the base of the PR and between 11bd707 and 68ba1ed.

📒 Files selected for processing (2)
  • scripts/ci/run_python_test_lane.py
  • tests/test_ci_test_execution_registry.py

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The Python test lane now rejects timeout values that are non-finite or less than or equal to zero. A regression test checks rejection before the lane lists tests.

Changes

Timeout validation

Layer / File(s) Summary
Timeout validation and regression test
scripts/ci/run_python_test_lane.py, tests/test_ci_test_execution_registry.py
The lane rejects timeout values that are non-finite or less than or equal to zero. The test checks the exit status, error message, and empty standard output for five invalid values.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: teamleaderleo

Merge Risk: ⚪ Minimal · up to 68ba1

Invalid timeout values are rejected before tests are selected or started, while existing valid-timeout behavior is preserved. No outstanding merge risk was identified in the reviewed change.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the primary change: rejecting invalid Python regression-lane timeout values.
Description check ✅ Passed The description includes the required Summary, Testing, Changelog, Proof, and Checklist sections. It explains the behavior change, test coverage, verification limits, and internal-only scope. Some non…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS. The pull request changes only Python lane timeout validation and its regression test. The diff adds math.isfinite(args.timeout) and a positive-value check before test listing, plus tests for i…
Cmux Swift Actor Isolation ✅ Passed The pull request changes only Python CI runner code and Python tests. The authoritative diff contains no Swift files or Swift declarations, so it cannot introduce or worsen Swift 6 actor-isolation mis…
Cmux Swift Blocking Runtime ✅ Passed The pull request changes only Python CI tooling and its Python tests. It introduces finite-positive timeout validation and a deterministic CLI regression test. The diff introduces no Swift code or blo…
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only Python CI runner and registry-test files. The diff adds finite-positive --timeout validation and its test; it does not change browser.* commands, `Sources/Termi…
Cmux Expensive Synchronous Load ✅ Passed The pull request changes only Python files: scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. It adds Python timeout validation and tests. It does not add or move Sw…
Cmux Cache Substitution Correctness ✅ Passed PASS: The pull request changes only Python files (scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py). It introduces no production Swift, TypeScript, or JavaScript cha…
Cmux No Hacky Sleeps ✅ Passed PASS. The PR changes only Python timeout validation and adds a CLI regression test. It introduces no sleep, timer, polling, delayed dispatch, or wall-clock synchronization. Existing process timeout ha…
Cmux Algorithmic Complexity ✅ Passed PASS: The production diff adds only math.isfinite(args.timeout) and a scalar comparison in scripts/ci/run_python_test_lane.py; it does not add collection scans, sorting, filtering, joins, or a slo…
Cmux Swift Concurrency ✅ Passed The pull request changes only scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. Both are Python files. The diff introduces no cmux-owned Swift code or legacy Swift c…
Cmux Swift @Concurrent ✅ Passed The reviewed diff changes only Python CI code and Python tests. It contains no Swift files, Swift declarations, nonisolated async functions, or @concurrent annotations. The Swift concurrency check…
Cmux Swift Package Boundaries ✅ Passed PASS. The reviewed diff changes only scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. It contains no Swift production changes, so the Swift package-boundary rule do…
Cmux Swiftpm Lockfiles ✅ Passed The pull request changes only scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. It does not change SwiftPM packages, Xcode project references, .gitignore, workflow…
Cmux Swift Logging ✅ Passed The pull request changes only scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. The diff contains no Swift or other production app/runtime logging changes, so the Sw…
Cmux User-Facing Error Privacy ✅ Passed PASS — the changed text is --timeout must be a positive finite number in scripts/ci/run_python_test_lane.py. The runner is invoked by GitHub CI workflows, including .github/workflows/ci.yml and …
Cmux Full Internationalization ✅ Passed PASS. The pull request changes only scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. The added text is internal CLI validation, a test error assertion, and test-onl…
Cmux Swiftui State Layout ✅ Passed PASS: The pull request changes only Python files: scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. It adds timeout validation and tests. It introduces no SwiftUI, `…
Cmux Architecture Rethink ✅ Passed The pull request changes only Python CI tooling and its Python tests. It adds positive-finite timeout validation and a regression test. The diff introduces no Swift code, timing repair path, state own…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed The pull request changes only Python CI runner and Python test files: scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. The diff adds timeout validation and tests. I…
Cmux Source Artifacts ✅ Passed The pull request changes only scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. The diff adds hand-written Python validation code and a focused regression test. It a…
Cmux No Test Or Debug Seam In Production Source ✅ Passed The pull request changes only scripts/ci/run_python_test_lane.py and tests/test_ci_test_execution_registry.py. It changes no Swift file under a production Sources/ path, so the specified product…
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@6639835 6639835 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Reviewed lane-runner parsing and execution order at 68ba1ed. Positive-finite timeout validation precedes registry/test/environment/process work, rejecting zero, negative, NaN and infinite values while preserving defaults. The regression checks diagnostic and absence of listed tests. No actionable issue found within this diff. Static review only; CI lane/unittest execution was not performed.

@teamleaderleo

Copy link
Copy Markdown
Collaborator

Thank you @BlueRaddish!

@teamleaderleo
teamleaderleo merged commit f0a2bad into manaflow-ai:main Oct 8, 2026
75 checks passed
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Merge receipt for 68ba1ed720: every check was green at merge (18 verified; 26 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 8, 2026
29661b9 gh-merge-green: allow explicit Vercel status override (manaflow-ai#18614)
dd6e295 fix: preserve SSH ProxyCommand child environment (manaflow-ai#18285)
f0a2bad Reject invalid Python regression-lane timeouts (manaflow-ai#18476)
3430354 Preserve PR media referenced through GitHub blob URLs (manaflow-ai#18562)
3b71b41 Reset a browser pane's selected frame and element refs when the page navigates (manaflow-ai#18577)
04e1d68 Clear force-close bypass when a confirmed close is rejected (manaflow-ai#18414)
8d86447 Treat Copilot value flags as value options when restoring (manaflow-ai#18470)
f6c678a Keep __proto__ keys in whole-area browser storage reads (manaflow-ai#18527)
7e97128 Keep minimized windows in the Dock when the global hotkey reveals cmux (manaflow-ai#18533)
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.

3 participants