Skip to content

test(handoff): bound missing pipe output and CI execution - #372

Merged
abruption merged 2 commits into
mainfrom
test/370-bounded-watch-pipe
Nov 5, 2026
Merged

abruption merged 2 commits into
mainfrom
test/370-bounded-watch-pipe

Conversation

@abruption

@abruption abruption commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Summary

An interrupted watch can return 130 after failing to deliver its final frame. The test retained its pipe write descriptor and then performed a blocking read, so missing output could leave CI waiting indefinitely.

  • Bound that fixture's reads with readiness checks and fixed, bounded diagnostics. Prove real helper output before entering the existing interrupt finish window; retain the end-frame, exit-code, descriptor-flag and helper-reaping assertions.
  • Add a missing-frame regression in a child with an 8s outer watchdog, plus a warmup-failure diagnostic/reaping regression. The negative case shortens only its final observation deadline; no production timeout is extended. Child development/warning flags are preserved, and only capped unittest headers are reflected on failure.
  • Cap the Core step at 5min and the matrix job at 15min; retain the standard unittest CLI with -X faulthandler for fatal-error diagnostics. No background traceback timer or shell-specific wrapper is added. These are execution limits, not runner queue-time guarantees.

Refs #370. This addresses the reproduced fixture hazard, not an established cause of the historical 23-minute CI stall. Product runtime/source/version/dependencies and native delivery remain unchanged. Separately, #316 was reopened with monitoring after an accidental closing phrase was found in PR #320; #268/#180 remain P1/Long-term. No relationship between these historical observations is asserted.

Validation

  • macOS arm64 / Apple Python 3.9.6: 37 watch tests pass, including default discovery without a fixed top-level import name.
  • Python 3.13.7 with -X dev -W error::ResourceWarning: 132 handoff watch/runtime/lifecycle/process tests pass.
  • Final standard CLI smoke with -X faulthandler against the watch module: 37 pass. Documentation/matrix checks: 91 pass. Generator consistency and git diff --check pass.
  • Removing the new readiness guard in a mutation makes the missing-frame regression fail through the outer watchdog rather than hang; source was restored.
  • Previous successful main CI41552040408: seven platform Core steps took 9–47s, complete test jobs 68–142s. The new 5/15min limits retain margin. os.fork occurrences in this suite are subprocess fixture source strings, not direct calls in the watchdog-hosting test process.

Local broad-suite limitation: an earlier full Core run (980 tests) was not green: 5 failures, 32 errors, 6 skips involving private-storage guards on the external test volume. Two representative failures also reproduce on an unchanged HEAD source copy. This is not presented as a passing full suite or proof of every failure's cause; no permissions were relaxed and no internal-volume fallback was used. Hosted Linux/macOS/Windows CI remains required.

Independent review

The current independent-cli-review skill ran Claude Code 2.1.314 / metadata-confirmed claude-opus-5-5 and Antigravity CLI 1.5.0 / init-confirmed gemini-4-argon-medium (medium), in parallel, fresh non-interactive read-only sessions with no tools/tests/network/writes requested. Both produced successful substantive responses.

  • First frozen packet 76004 bytes, SHA-256 b2220b6b8738dd2cf85596746caeeb0e28f232b29f52485f745ca063bdfb0193: Claude 117.981s / Antigravity 94.908s.
  • Follow-up packet 80118 bytes, SHA-256 59c092c629fdb338483c02ded2e1c8c601f5259465a4cd80ffd10c26d64b0c66: Claude 173.958s / Antigravity 61.853s. Input hashes remained unchanged for both runs.

Codex checked the feedback against source. Follow-ups preserve constructor-failure diagnostics, restrict the short negative timeout to the final read, propagate child warning settings, bound child summaries and improve timeout diagnostics. The final review's conditional Windows-shell finding led to an initial explicit-shell correction. Hosted CI then exposed the old matrix guard's literal command expectation and a separate macOS3.9 KeyboardInterrupt during cleanup. The optional threaded traceback wrapper was removed; the final workflow keeps the standard, cross-platform unittest command, finite execution caps and fatal-error faulthandler flag. Existing matrix guard tests remain unchanged and pass locally. This simplification was tested after the paired reviews; it is not represented as a third full source review. The fixture refinements (including one executed, non-skipped child assertion) were retested. No cause is assigned to the separate cleanup interruption or the historical stall; current-head CI is required.

This PR prepares tests/CI only. It authorizes no merge, tag/release, installation, service changes, model session activation or live message experiment. Automatic Codex review is left to trigger without a manual mention.

@abruption abruption self-assigned this Nov 5, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-05T06:28:10.109065Z f8314ff Manual request
🔒 Security Review ✅ Completed 2026-11-05T06:18:22.722292Z c7f99b1 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@abruption

Copy link
Copy Markdown
Owner Author

@codex review

Please review the current head f8314ff2213f74b9b97bcae39bc684e1e0015493. The previous review summary covers c7f99b1; the follow-up keeps the standard unittest CLI with finite execution limits and removes the optional threaded diagnostic wrapper.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: f8314ff221

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@abruption
abruption merged commit 6302dd1 into main Nov 5, 2026
44 checks passed
@abruption
abruption deleted the test/370-bounded-watch-pipe branch November 5, 2026 08:29
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