Repository navigation
ci: passing guard tests print no ::error annotations - #15399
Conversation
Red: test_ci_ui_tests_dispatch, test_ci_pr_media, test_ci_late_placement, test_ci_main_regression_bisect, test_ci_prune_pr_media and test_ios_upload_batching print ::error/::warning/::notice from their fixtures, which the runner turns into annotations on a passing run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
unittest.main(buffer=True) captures each test's stdout and stderr and prints it only when that test fails or errors, so a fixture's ::error line never reaches the step log of a passing run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (11)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe pull request adds a unittest that checks output from selected test modules for GitHub workflow commands. It enables output buffering in eight test entry points and adds the guard test to the CI launcher and ChangesWorkflow Command Output Guard
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The guard and its CI wiring are mergeable after normal checks; no unresolved failure was established. 🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 9 files. (2 skipped: 2 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
CI failure attributionCI passes on Written by |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…port skipped modules test_ci_parallel_artifact_transport printed seven ::warning:: lines on a pass (ci-artifact-transport.yml); it now buffers too. The check matches leading whitespace and every runner command, and a module that fails locally shows as skipped rather than silently unchecked. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
Merge receipt for |
9eb402d Sidebar: opt-in compact status glyph for agent, PR and branch state (manaflow-ai#14838) 0b2d3e0 ci: run CmuxCloud package tests and move 22 Cloud logic suites out of the app host (manaflow-ai#15333) defccda fix(cloud): say a machine's id and age in its accessibility label (manaflow-ai#15326) 8b23dd7 ci: re-run lost-runner jobs; end the UI wait when compile admission fails (manaflow-ai#15400) 734cff3 ci: let the UI test lane replay the fuzzer regressions (manaflow-ai#15401) c9b235a Refuse a split that would leave a pane below its minimum size (manaflow-ai#15392) 56eacd4 Describe memory-pressure hibernation the way it works (manaflow-ai#15290) da27bbc ci: passing guard tests print no ::error annotations (manaflow-ai#15399) 93d0706 ci: explicit owned E2E runs take root runners; rescue jobs waiting in setup (manaflow-ai#15402) f12f578 PR media: keep each tour's folder through the artifact hand-off (manaflow-ai#15405) cd9d1c9 test: release offscreen terminal fixtures before the next suite (manaflow-ai#15322) 78c566c triage: severity and area labels, with the rules in the repo (manaflow-ai#15228) 54473f6 Serialize async test app contexts (manaflow-ai#15390) 192ee4c Stabilize minimal-mode workspace routing test (manaflow-ai#15385) 31a59ab Cloud machine list reports who created each machine (manaflow-ai#15261)
PR #15160 run 36420353579 showed
Error: No ci-ui-tests.yml run titled 'UI tests for CI run 100 attempt 1' appeared...andError: https://x/900 ended success without running the UI testson its run page. Those came from test fixtures in "Validate focused test launcher", which passed. The runner parses any output line starting with::as a workflow command, so a script under test that annotates on purpose turned into a red annotation.An audit of all 171 Python guard tests in ci-guards.yml and ci-fast-guards.yml found six that leak on a pass: test_ci_ui_tests_dispatch, test_ci_pr_media, test_ci_late_placement, test_ci_main_regression_bisect, test_ci_prune_pr_media and test_ios_upload_batching. test_ci_helper_prebuild_lifecycle does too, going by its output here, and so does test_ci_parallel_artifact_transport, which prints seven
::warning::lines from ci-artifact-transport.yml. test_ci_merge_main still prints::group::folds, which are not annotations and are left alone. Each now runsunittest.main(buffer=True), which captures a test's stdout and stderr and prints them only when that test fails. A passing run prints nothing, and a failure still shows its full output.The regression test, tests/test_ci_guard_tests_emit_no_workflow_commands.py, runs those modules with
GITHUB_ACTIONS=trueand fails if a passing module prints a line the runner would parse as a command. It is wired into the same step. A module that fails in that environment is reported as skipped instead of passing silently.Red (commit 1, 17bc4f7):
python3 tests/test_ci_guard_tests_emit_no_workflow_commands.pygave FAILED (failures=5); helper_prebuild_lifecycle fails locally under the sandbox, so it was skipped. Green (commit 2): OK in 4.4 s. Each of the six modules still passes on its own.Changelog
none
— Radish g1 🌿 (run_worker_20260928_22d4c630)
🤖 Generated with Claude Code
Summary by CodeRabbit