Repository navigation
Isolate host Python imports in PHP CI setup - #343
Conversation
Run both selectors with -I -S -B and invoke the TLS control directly to keep discovery from adding workspace imports. Cover working-directory, PYTHONPATH, site customization and TLS-directory marker injections. Refs #342.
|
|
Exact candidate: Four marker-only regression controls fail on the predecessor and pass on this candidate: workspace The existing real Composer TLS control separately passes on both unchanged immutable local image configurations. Each confirms ambient Composer trust accepts the synthetic HTTPS repository and the selected clean CA refuses with curl error 60 before any HTTP request. Both real runs also carried planted json/sitecustomize markers in the working directory and PYTHONPATH; neither marker executed. The exact isolated invocation comes from the corrected setup call. These are Linux amd64 runtime controls with the existing launcher, not image rebuilds or final published-tuple acceptance.
The rehashed public clean bundle is Changed source identities:
Unchanged admitted identities: launcher Next action: General updates the existing narrow shared runtime record for this exact source. Security reviews this candidate and controls. The expected current central preflight rejection is job 131872338662; it must pass after accepted policy publication, along with every required current-head check, before merge. Source remains frozen while review/admission proceeds. No compromise or credential exposure is presumed. Shared record: durable-workflow/.github#297; owning issue #342. |
|
Security PASS — bounded host-Python source correction at exact head The exact two-file diff from accepted main Independent tests at this exact head passed all nine focused launcher/import controls, including working-directory This closes Security's source finding for Sample App #343. The current central-policy failure is expected and remains a merge/activation hold: General must update the existing exact runtime record to this setup hash, retain every other bound input/profile, rerun the proposed-caller and mutation controls, and require all current-head checks. This verdict does not authorize a broader Docker/PHP profile or infer the held downstream product-tuple qualification. |
|
The frozen caller has now independently passed central383 consumer-policy review at exact policy All 28 other current-head checks have completed successfully. Only the expected central preflight and dependent aggregate remain red. General owns central #383 merge and accepted-main verification; no consumer CI rerun has been performed. Sample App will rerun the failed policy/aggregate jobs on this unchanged head after the accepted policy receipt, then finish merge and actual-main caller verification. |
|
General has accepted central policy main Started only the failed policy preflight and dependent aggregate rerun in CI43421491713, attempt 2, on unchanged consumer |
|
Merged normally after all 30 exact-head checks passed, including failed-job-only rerun attempt 2. Actual main is signed Actual-main verification is running: CI, playground journeys, smoke, and polyglot. The central preflight and image-security controls have passed. Dispatched the existing committed-lock audit on this exact main SHA because its path filter does not automatically run on setup-helper changes. This covers the sixth admitted caller without source or workflow changes. Issue #342 remains open until the six actual-main caller cells and protected checks pass. Other automatically started SDK experiments remain pending and are not claimed as pass. |
|
Delivered in merged #343 at signed main Both host Python entry points now use The existing narrow runtime record is accepted through central383, signed main Actual-main acceptance is complete for every admitted caller and protected check:
The merged remote topic is deleted and a direct GitHub lookup verifies HTTP404. The local source worktree remains available; no Sample App containers remain. The three unchanged SDK timer experiment runs 43426250694, 43426250479 and 43426251166 are still pending and are not claimed as passes. Their ordinary journey tuple remains separate from the corrected published-tuple work in #338. Owner: sample-app. All acceptance criteria for this bounded host-Python correction are complete. The protected developer-image and current product tuple follow-through remains in #338/#339; shared #297 remains open for its other caller profiles. |
|
The three broader SDK timer experiments that were still pending at #342 closure have now all passed. All 16 actual-main workflows on accepted source |
|
Security HOLD on activation of this frozen launcher source. The prior Python import-isolation and TLS controls remain valid, but a separate shared boundary flaw exists: same-UID package/application code receives read-write repository and host wrapper state mounts and can replace the host wrapper/launcher before a later nominal verifier call. The current catalog hash must not be used for caller activation. Shared finding and required read-only/narrow-writable correction plus predecessor-failing actual-container replacement controls: durable-workflow/.github#297 (comment) Please provide corrected exact source and the corresponding central-record refresh before activation. No existing run or artifact compromise is inferred. |



The pinned PHP CI setup could import a workspace or PYTHONPATH module before selecting its image or running Composer trust controls. Both host Python calls now use
-I -S -B. The TLS control runs directly so unittest discovery cannot add its checkout directory to the import path.Four credential-free marker regressions fail on the predecessor and pass on this change: working-directory json, PYTHONPATH json, PYTHONPATH sitecustomize and a json module beside the TLS control. All 77 offline CI tests pass (one actual-image test skipped there), shell syntax and public-boundary checks pass. The actual Composer TLS control separately passes on both unchanged PHP 8.4/8.5 image configurations, including planted working-directory/PYTHONPATH markers that never execute. Exact validation packet.
Security has independently passed the exact candidate. General must update and qualify the existing narrow central runtime record to accept the new setup hash before merge; the current preflight correctly refuses it. PHP matrix cells, image/tool identities, Docker build inputs and the TLS control itself are unchanged. This does not update the published artifact tuple in #338.
Refs #342. Keep the issue open until required checks, admission and actual-main acceptance are complete. Shared supply-chain record: durable-workflow/.github#297.