Repository navigation
chore(release): prepare v1.2.1 maintenance candidate - #321
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
abruption
marked this pull request as draft
October 19, 2026 05:36
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.
Summary
Prepare v1.2.1, not yet published, on integrated main
32e76d2c85d945d66466f630d9729ec0be5288d8after the owner-authorized sequence:ba00540e24e4e378c002c11e7cbeb23b85003b9fc5625a1667de50b2684067febed1772ed693eca732e76d2c85d945d66466f630d9729ec0be5288d8Each sequential merge used normal repository protections and updated-main checks. This preparation PR also fixes #322, the bounded SSH staging-initialization issue investigated after its first CI failure. It is therefore no longer a version/documentation-only change.
15378c6d503a69d1d738ac4739182e23257aa6f2f7fd31ef3fd2fa60e692867f.CI investigation and fix
The original run 39203502096 / macOS Python 3.13 core job, at
e8f1e7dccfd204939028bc0c4d0d39da381eee47, failedRemoteTransfer.test_interrupted_transfer_preserves_old_installation: installation/launcher preservation assertions passed, but one owned staging directory remained. The original failed run/log is preserved; it was not blindly rerun until green.Controlled local fixtures using the actual generated receiver reproduced a real window:
mktempcreates the directory before its path is assigned and before the previous script installs cleanup traps. HUP, INT and TERM during that window each left staging behind before this fix. Separate actual-decoder partial-transfer and foreground-cleanup-wait controls already passed on the old code. This establishes the initialization defect, not the actual scheduling or proven root cause of the original CI event.The fix initializes the staging variable, registers owned-path EXIT cleanup first, defers the parent's handled signals, and ignores those signals only in the allocation child until its exact path is returned. It restores normal termination handling and honors pending cancellation before decoding input. Existing concurrent-publication locks, rollback/receipt validation and unknown/no-automatic-retry behavior remain unchanged. Tests preserve unrelated sentinel data and the old install's bytes, permissions, inode, launcher identity and usability.
Limits remain explicit: cancellation waits for allocator/filesystem I/O to return, not a universal deadline. Cleanup after SIGKILL, host loss or arbitrary repeated interruption of cleanup/publication is not guaranteed. A lost SSH outcome is still unknown and does not authorize automatic resend.
Validation and independent review
Final source:
3e65a667b8bb53db1df62c6501554b62c66c132e, clean, based on the integrated main above. The substantive runtime commit is6289997a2df0028799f018b9b9a334de32b8deb7; subsequent test-only commits add the decoder-entry assertion and explicit Bash receiver variants, with byte-identical runtime.6289997: first full run 1316 tests OK, 19 skipped, 105.987 seconds, dev/faulthandler/ResourceWarning-as-error. Six asyncio slow-task debug messages are retained; no fatal/Traceback/ResourceWarning/unraisable matches were observed. This is not evidence resolving test(relay): investigate intermittent native CI crash and shutdown diagnostics #316.sh. The CI variants print the actual available Bash version; Linux/Bash-version coverage is a current-head CI gate, not claimed already measured locally.94bdb65wheel/sdist build and distribution checks 41 OK, 3 PowerShell skips. Fresh wheel core, sdist core and wheel relay/MCP-extras installs outside the checkout pass-Isite-packages imports, version/help, initialized fixture-home empty JSON discovery, missing-DB refusal andpip check. Final3e65a66differs only in test code, not installed runtime; actual final-tree archives are rebuilt by current-head CI.-Iand verified version 1.2.1, site-packages origin and presence of the actual signal fix. Final standalone source SHA-256 is6ce6c767af8439581580fa9b0e4b62bdddc10ceaf9f8bab9736126c9eed43779.The frozen dual-CLI review metadata is recorded below before updating this PR. Earlier 1311-test/doc-only preparation evidence is not used as validation of the new runtime change. Local builds remain rehearsal artifacts, not authenticated publication assets.
Independent pre-push review
independent-cli-reviewran separate parallel non-interactive Claude Code 2.1.303 (requested and response-confirmed claude-opus-5-5) and Codex CLI 0.163.0 (isolated default; actual model name not exposed). Reviewer tools/tests/network/writes were disabled; neither saw the other's output. Both rounds ended with exit 0 and complete final responses, with input/source hashes unchanged:94bdb65: 49,254-byte packet, SHA-25689f53b0e81dae6ffb3002304568ff7e61582d61785e2768fb39b0b4cbc286cd4.3e65a66: 9,870-byte packet, SHA-2569b70bcffb3e4115934da9c26124dd6d7bbb6175fcb338c61305e8a244d485536.Neither reviewer established a mandatory correction. Root read the raw responses and checked the signal-path ordering, real fixture control/cleanup/assertion consumers, unchanged publisher/receipt contracts and installed source origin. Unverified Bash/ksh or inherited-signal behavior was not promoted to fact; the added Bash cases and printed actual version must be observed in current Linux CI. Optional broader shell/test assurances are not claimed. The local
run.assert_called_once()is a mocked client-call assertion, not a live SSH submission measurement.The original timing test and preservation assertions are retained. Added deterministic fixtures cover each creation-phase signal, a marked actual decoder chunk, and proof that the parent waits for foreground trap cleanup. No increased sleeps, blanket staging deletion, relaxed assertion or protection bypass is used.
Current-head CI rerun
Run 39207220021 at exact
3e65a667b8bb53db1df62c6501554b62c66c132ecompleted all 28 checks successfully, including the previously failing macOS Python 3.13 job and aggregate release gate. The original failed run remains unchanged.The Ubuntu Python 3.9 job explicitly logged GNU Bash 5.2.21(1)-release (x86_64-pc-linux-gnu) and all three Bash creation-phase signal cases as ok, not skipped. Ordinary sh cases, the original interrupted-transfer case, actual decoder-phase interruption and foreground cleanup wait also passed. This is CI unit/component evidence for the local POSIX receiver, not live SSH or native-agent acceptance.
Configured Codex code and security reviews both completed on exact
3e65a667b8bb53db1df62c6501554b62c66c132e, with no findings or unresolved findings. GitHub reports Ready, MERGEABLE/CLEAN; this records the current gates, not owner approval to merge or publish.The separately tracked #316 diagnostics and original #319 warning record are retained; passing this fix does not establish their cause or resolution. No live SSH destination, agent message/ACK, fleet, global installation or operational experiment is performed.
Publication boundary
This PR remains subject to current-head CI and automatic code/security review, followed by owner approval before merge. It does not authorize tag/draft creation, release workflow dispatch, publication or deployment. Recheck version availability/protections and require exact protected-main CI before any separately authorized publication. Verify all seven immutable assets and authenticated provenance, retain the mandatory human
pypienvironment approval, and never bypass audits or overwrite immutable assets. Current private Trusted Publisher binding is not claimed verified.The PR was Draft during investigation and returned to Ready after independent verification so configured automatic code/security reviews run on the new head without a review mention. Their current-head completion is tracked separately from successful CI and does not itself authorize merge or publication.