Skip to content

Native Windows gate/test support, gate result reader, wsl-run helper - #792

Merged
screenleon merged 20 commits into
mainfrom
fix/gate-wait-complete-result-v2
Nov 11, 2026
Merged

screenleon merged 20 commits into
mainfrom
fix/gate-wait-complete-result-v2

Conversation

@screenleon

@screenleon screenleon commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

Makes the PR gate and the test suite usable from native Windows (Git Bash) and fixes gate-reader problems found while doing it.

  • gate wait/status name the published result when the sentinel key is gone (exit stays 3, never success); new pmctl gate result <id|file> prints verdicts, conclusion and the three verify axes, and falls back to the newest non-empty result.

  • Quota exhaustion is reported as executor quota exhausted: <line> with no retry and no reviewer switch; gate.reviewer_executor config pins the reviewer.

  • pmctl gate mutations --preview lists touched tests and the mutation checklist (NUL-safe file names).

  • ops/diagnostics/wsl-run.sh drives WSL from a native Windows session with arguments and exit status preserved.

  • Hook reads its payload without /dev/stdin (failed on every prompt from a Windows host).

  • Tests: capability-based skips (th_require_*) with stated reasons, grep -Fi crash avoided, path-spelling fixes; docs in docs/platform-support.md and docs/review-model.md.

  • Permanent test admissions: gate rounds 1-6 on this branch each produced findings whose remedy was a new case, assessed against the six criteria. Admitted (criteria 1-6 met; layer: the command/library level, observing stdout, exit status and files through the public pmctl gate / wsl-run.sh entry points): quota-exhausted classification and the reviewer-executor config pin (test-pr-gate.sh), gate result axes after repository drift and its fallback to the newest non-empty result (test-pmctl-gate.sh, test-gate-lifecycle.sh), gate mutations --preview incl. a non-ASCII test name (test-gate-lifecycle.sh), wsl-run script/pmctl argument and exit-status round trip (test-run-tests-in-wsl.sh, native Windows only). Alternatives taken: the fallback cases were folded into the existing sentinel-key case instead of a new matrix, and qa-tester's request for every absent/stale/empty/multiple-candidate variant was declined as boundary-only (criterion 2) with the user's agreement; the advisories (JSON-first verdicts, adapter-declared stderr path) were left as follow-ups.

Verification

  • PR gate (native Windows, full tier, parallel, five reviewers) on the final commit: GO; verify artifact_valid/subject_current/policy_applicable all pass.
  • WSL2: all touched suites pass (test-pr-gate in 4 shards: 80/81/80/80 passed); CI lints 19 passed, 0 failed, 2 skipped.
  • Known open, native Windows only (pass in WSL2): test-pmctl-memory resolve/config/stats, test-pmctl-pm prepare/run, 2 test-pmctl-ship-finish cases; several suites time out natively. Documented in platform-support.md. Native Windows gate stays experimental.
  • Advisories not addressed: gate result verdicts from embedded JSON rather than headings; quota evidence from the adapter-declared stderr path; gate wait shows only the first policy-floor error line.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7

screenleon and others added 20 commits November 10, 2026 23:30
…indows host pipes it in

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…ntmatter

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…stead of retrying

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…st before a gate

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…t re-quoting; skip mode-bit cases natively

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…y hints, strengthen tests (gate-20261110-231557 findings)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…st pmctl-mode forwarding and --base (gate-20261110-235208 findings)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…'s axes after repository drift

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…n native Windows

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…-pass policy

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…ck and path lints

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…lt asserts policy_applicable

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
…lback picks the newest non-empty result

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESW7P8BvZ5Crn6vi6EA2J7
@screenleon
screenleon merged commit 5776e85 into main Nov 11, 2026
177 of 178 checks passed
@screenleon
screenleon deleted the fix/gate-wait-complete-result-v2 branch November 11, 2026 08:21
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.

1 participant