Repository navigation
Qualify native non-root EP and prepare 2.3.106 runtime fix - #325
Merged
Merged
Conversation
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.
Scope
Add explicit-input macOS non-root qualification harnesses and canonical OI-2/OI-5 evidence for the published EP 2.3.105 wheel. Prepare the normal 2.3.106 immutable release for the reproduced EP runtime-slot installation defect: venv and pip children now use the owned slot as their working directory, independent of the caller's private or inaccessible cwd.
Native evidence
22dd1e49c263b55dc9eee396810a09fc43509984fe685f3c00d26289d55e8adc.Reproduced lifecycle defect and open native continuation
The separate UID-20000 preserve/restore attempt stopped before lifecycle mutation. Actual child stderr shows pip's
os.getcwd()raisingPermissionErrorbecause the released provisioner inherited the caller's inaccessible cwd. A two-line production fix binds both slot-installation subprocesses to the owned slot; the targeted test asserts both child calls carry that cwd. The published 2.3.105 artifact remains unchanged. The native lifecycle rerun used an accessible disposable cwd to qualify those released bytes: a real initial foreground Server ran under UID/GID 20000; preserve retained identity/data, and restore stayed inactive with provider reverification required. This is an adapted service-boundary PASS, not launchd or live provider authentication. This PR prepares the 2.3.106 version projections; after protected merge, the normal release workflow must publish new immutable bytes and those actual published bytes must be requalified under UID 20000.The lifecycle harness uses a filesystem-only service adapter and deliberately failing synthetic provider executables. An interactive-UID dry run is not native evidence. Both parameterized repository harnesses have now run under the admitted UID/GID 20000 with the unchanged published 2.3.105 wheel: the foreground/API runner returned
PASS_WITH_DECLARED_LIMITS, and the lifecycle runner returnedPASS_ADAPTED_LIFECYCLE_WITH_REAL_INITIAL_SERVER. Final exact-head protected gates remain required before merge.Validation
Risk and rollback
The source fix changes only the child cwd inside an already created, owned runtime slot. No production host action is in this PR. The separate test account and disposable data remain retained for bounded diagnosis and cleanup. Revert the commit if the slot behavior regresses; do not relabel the old wheel as corrected.