Repository navigation
Conversation
OptimumAF
marked this pull request as ready for review
October 7, 2026 20:34
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Windows native CI has repeated 40- and 90-second child-process timeouts with the same selected physical source/configuration hashes as the passing local baseline. PR15's first diagnostic run collected 87 passes, 2 deadline failures and 1 skip; it did not establish a cause or fix.
This workflow-only diagnostic addition samples only Python test descendants of the freshly launched pytest process. It validates ancestry and creation time, holds process handles against PID reuse, and excludes pytest itself (including a venv forwarding interpreter). Allowlisted counters cover cumulative user/kernel CPU, working set/private memory, OS-reported peak working set, I/O bytes, and exit state. Five-second polling is bounded by 900 seconds, 4,096 sample rows, 256 children and three probe errors. Reaching a sampler bound stops observation only; the existing tests continue with their original deadlines.
The original pytest arguments, test assertions, guarded producer/fixture source identities, 40/90-second child deadlines, and scientific/source/native admission gates are unchanged. There is no child-code injection, profiling, debugger attachment, priority/affinity change or access to unrelated processes. The artifact allowlist now contains four existing diagnostic JSON files plus owned-child-samples.jsonl and owned-child-sampler.json. Command lines, credentials, environment values, host/user names, absolute interpreter paths, raw JUnit XML and raw test-output files are excluded from uploaded receipts.
Validation: PyYAML semantic checks; native source-hash/deadline checks; dummy child CPU/memory/I/O and exit-code propagation; exclusion of a validation sibling; fabricated command-line canary absent from receipts; sampler cap leaves its child running to ordinary completion. Both original native cases passed with sampling: closure 35.44 seconds and guard 59.93 seconds overall. Guard evidence retains three observations, all 23 controls passed, no science calls, trace/profile restoration and released ownership; all prior unaccepted gates remain false.
Measured probe wall time was 2.046 seconds for closure and 3.565 seconds for guard. Overall runs were 1.914 and 2.920 seconds longer than historical ordered local baselines. These comparisons include PowerShell startup, stdio redirection and scheduling; probe wall time is not CPU overhead or proof of slowdown. CI overhead may differ. Five-second polling can miss short children, and CPU/I/O correlation cannot establish the exact Python phase or scientific admission. This update authorizes one normal instrumented CI run; no fix or merge approval is claimed.