ci(disk-hygiene): run the full test_hygiene module in CI - #3087
Conversation
Closes #2871 The Windows disk-hygiene lane invoked only GuardTests, so the other TestCase classes in test_hygiene.py never gated on that required job. The full module is not host-destructive (tempdir fixtures, no live drive-root scans) and is green on Linux (317 tests). Invoke `python -m unittest -v test_hygiene` so every class is a required check. Host-specific methods still skip via unittest.skipUnless; classes are not omitted. The plugin-test wrapper can SKIP when Python is absent, so it is not this guarantee — this job provisions Python. Co-authored-by: Cursor Agent <cursoragent@cursor.com>
|
Claude finished @kyle-sexton's task in 2m 39s —— View job Claude finished the code review
SummaryReviewed the one changed file, Blocking finding (posted inline on
The PR description states these exact two tests "are already green on current No other issues found in the diff itself — the workflow YAML syntax, step naming, and comment update are otherwise fine, and the approach (widen the command, not swap to a Linux-safe subset) matches the stated intent of catching real coverage gaps. |
|
Claude finished @kyle-sexton's task in 44s —— View job Security review
No security issues found. This PR's only change is in
Skip-gate condition 2 applies (no security-relevant surface after reading the diff) — stopping here per the review lane's criteria. |
|
Last security-reviewed head: |
Closes #2871 The Windows lane stays GuardTests-only: NT allowlist branches need a Windows host (#2774), and two full-suite tests fail on windows-2025 (preview root-children status, stash path 8.3 vs long name). Those two are green on Linux. Add a required Ubuntu job that runs `python -m unittest -v test_hygiene` with Python provisioned, so every class gates and hygiene.test.sh's SKIP-when-Python-absent path is not the guarantee. The Windows job comment names the two excluded tests. Co-authored-by: Cursor Agent <cursoragent@cursor.com>
|
Claude has reviewed this PR 5 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
|
Claude finished @cursor[bot]'s task in 5m 14s —— View job Code review
FindingsPosted one inline comment on the substantive issue: the new Other notes (not blocking, FYI only)
|
Review noted plugin-gate already runs hygiene.test.sh when Python is present. Keep the dedicated job: it cannot take that wrapper's SKIP-when-Python-absent path and is not docs-only gated. Update the workflow comments to say that instead of implying plugin-gate never reaches the module. Co-authored-by: Cursor Agent <cursoragent@cursor.com>
|
Claude finished @cursor[bot]'s task in 2m 42s —— View job Code review
FindingsPrior finding #1 (Windows job failing) — resolved. Commit Prior finding #2 (duplicates No other issues found in the diff (YAML syntax, job wiring into |
Refresh overlapping .github/workflows/ci.yml after #3089 landed. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
Claude finished @cursor[bot]'s task in 1m 32s —— View job Code review
Skip gate appliedThis trigger fired on a Prior findings, current status
No new issues found in the diff itself. |
Review: plugin-gate already runs the full module on non-docs-only diffs. Keep the job as a fast required check that does not wait on plugin-gate's Node/ShellCheck/full-plugin matrix, and say that in the comment instead of claiming a coverage gap plugin-gate does not have. Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Refresh after #3088; no ci.yml overlap. Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
Claude finished @cursor[bot]'s task in 1m 53s —— View job Code review
Skip gateThe last full review round covered head Prior findings, current status
New finding this roundPosted inline — No other issues found — job wiring into |
The GuardTests job comment still called disk-hygiene-tests "the required non-skippable gate" while the lines under it already said dedicated fast signal. Use the same wording in both places. Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Closes #2871
Summary
test_hygiene.pyhas tenTestCaseclasses. The required Windows lane invoked onlyGuardTests. This PR adds a dedicated Ubuntu job that always provisions Python and runs the whole module.Fix
disk-hygiene-testsjob onubuntu-24.04:python -m unittest -v test_hygiene, listed inci-status.needs. plugin-gate already reaches the same module viahygiene.test.shon non-docs-only diffs; this job is a fast required signal that does not wait on plugin-gate's Node/ShellCheck/full-plugin matrix and cannot take the wrapper's SKIP-when-Python-absent path.disk-hygiene-guard-windowsstaystest_hygiene.GuardTests. A one-line flip of that job to the whole module landed red on windows-2025 (315/317, run 32477560257). The workflow comment names the two failures rather than silently omitting classes:HygieneTests.test_preview_allows_root_children_os_managed_snapshot— expectsready-for-explicit-approval, Windows returnsblockedHandoffVerifyTests.test_stash_must_exist_in_an_independent_checkout— path-string compare; 8.3RUNNER~1!= longrunneradminClasses now required in CI via
disk-hygiene-tests:HygieneTests,ChildrenRollupTests,VersionFloorTests,StandingPolicyTests,OsAutocleanAdvisoryTests,LeastObservableEnginePathTests,TargetRootIdentityTests,HandoffVerifyTests,GuardTests,DirectReadKillSwitchTests. GuardTests also remain on Windows.Verification
python -m unittest -v test_hygiene— 317 tests, OK.disk-hygiene-testsis green (317 tests, all ten classes collected).scripts/check-lane-coverage.sh --check— every lane reachable fromci-status.needs.Related
Refs #2774 (Windows GuardTests lane; NT allowlist). Refs #2840 (fixture git isolation). Refs #2856 / #2862 (same family: coverage that existed but did not gate).