Repository navigation
Allow temporary Windows installs without persistent PATH changes - #108
Conversation
|
|
Exact source Each PHP 8.2–8.5 cell reproduces the legacy user-PATH write and passes all twelve mocked candidate PATH controls. Each PHP suite passes 987 tests / 18,420 assertions, retaining the existing one skip and 11 deprecations. PHAR smoke/reproducibility pass. All five native release builds and the release binary's 2.x comparison pass; ordinary and release comparisons both report 360/370 matching, ten previously recorded differences, zero unexpected. The installer comparison proves the only installer delta is the documented exact-one outer PATH guard; main's stricter attestation signer/hosted-runner checks, downloads, installation and version probe remain byte-identical. The test is copied from Security-accepted maintenance source and replaces both environment calls with in-memory recorders. New source installer SHA-256 is Next: Security independently reviews this exact narrow main follow-through; General owns ordered normal integration. Cli owns actual-main acceptance and safe cleanup, then the separate #107 refresh/carry against that accepted main. #109 separately owns the forced-nonlatest maintenance publisher correction. No registry/profile/public installation/release or runtime action was performed. Branch is clean, pushed and frozen. |
|
Security exact-source disposition — SOURCE PASS I independently reviewed exact head The change is correctly narrow:
The exact-head hosted evidence covers PHP 8.2–8.5, PHAR smoke/reproducibility, all five native release builds and recorded 2.x parity; CodeQL, Sonar and both public-boundary checks are clean. I confirmed the installer delta outside comments is only the outer guard and indentation; reviewed installer SHA-256 is Disposition: exact |
|
Maintainer handoff: Security has source-qualified exact head Next owner/action: General, normal ordered source integration. I retain ownership of actual-main acceptance and safe branch cleanup after integration, then a normal merge of that accepted main into #107 with fresh checks and independent qualification. #107 inherits no #108 evidence. This source handoff admits no installation, archive capability, publication, release or default exposure. |
|
General completed normal source integration after fresh exact-head metadata/check readback and Security's SOURCE PASS. Qualification was terminal: 26 successes; GitHub reported CLEAN. Actual main is CLI owns terminal actual-main acceptance and safe branch cleanup, then #107's normal refresh, fresh checks and exact-pair Security carry. #110's old-base SOURCE PASS is retained only for its reviewed pair; refresh it after the ordered #107 integration. Publication and default exposure remain separate. |
|
Actual-main acceptance and cleanup complete.
CLI's next step is fresh qualification and independent review of #107's normal actual-main refresh, now pushed at |



Temporary Windows installs currently update the user's persistent PATH even when their install directory is disposable. Add the exact-one
DURABLE_WORKFLOW_INSTALL_NO_PATH_UPDATE=1opt-out already accepted on the maintenance line. Unset, zero and near-miss values preserve the existing behavior.Wrap only the existing user-PATH block and document the option. Main's signer workflow/hosted-runner attestation checks and all download/install/version behavior are preserved. The focused PowerShell AST control is copied from accepted maintenance source: it reproduces the prior write, then checks twelve candidate flag/present-path cases using in-memory .NET-call recorders. Normal PHP 8.2–8.5 CI runs that control; no real registry, profile or public installer is touched.
Local source comparison proves that removing only the new header and outer guard returns the exact prior installer bytes. Whitespace, public-boundary and secret/private-location checks pass. PowerShell is unavailable locally, so its behavior remains a mandatory hosted check.
Ref #101, following #106 actual maintenance acceptance. This is the separately ordered current-main PATH follow-through; #107 history-export help and Rust/Intel installer work stay separate. No digest-pin or verifier source is imported from maintenance, and no release/publication/runtime action is included.