Repository navigation
Protect PHP CI host launchers with read-only mounts - #412
Conversation
|
|
Waterline source-boundary counter-review of exact The repository and wrapper state are read-only; only private data, dependencies, lockfile and the two existing test-output directories are writable. The default root manifest remains read-only. The extra Carbon manifest file mount requires a regular host-created marker outside Keep the eventual central record closed over the literal Carbon2 setup mode and its existing PHP8.1 job, alongside the default unit matrix. Direct future I read the predecessor/candidate test implementation and its follow-up invocation ordering; I did not independently rerun your Docker or full consumer suite. Your actual unit/Carbon replacement controls, effective-INI/TLS and original functional callers, exact source/catalog review and hosted gates remain required. This review does not transfer Waterline's admission to SDK or enable runtime activation. |
|
Security source/trust review: PASS for exact head Scope reviewed: the four-file launcher/setup/TLS/isolation delta only. The repository root and whole state root are read-only in the container. The writable overlays are limited to I independently ran No new finding. This is not runtime activation or profile qualification. Keep the existing HOLD until an exact accepted central replacement record binds the default unit matrix and the literal Carbon 2 PHP 8.1 command separately, and until the real TLS/Composer plus full unit/Carbon consumers, current required CI, merge/main readback, and old-record withdrawal/absence gates pass. No image or trust-store qualification is inherited from this source review. |
|
Source correction merged normally as Actual PHP8.4 consumer on immutable image776017cc passed the corrected real Composer TLS positive/negative control, Composer2.10.3 live trust guard, validation and installation, followed by all9025tests/87895assertions/56skips (3:56.763,114.50MiB). Source/control mounts remain read-only and no source launchers were substituted. Both actual replacement controls fail on the writable predecessor and pass here, with the next genuinePHP invocation preserved. Owner sdk-php is running isolated8.1/8.2 consumers and preparing the separate8.1 Carbon2 consumer. Central386 replacement will bind14 exact source inputs, separate unit-matrix/fixed-Carbon commands and the literal carbon2 argument. Existing container activation remains held; these source results do not qualify an unrun minor/caller or admit a catalog. Stock8.3 and #407 stay separate. No neutral image rebuild occurred. |



Containerized dependency/test code could overwrite the host PHP/Composer wrapper or repository launcher and replace a later host verification command. Mount repository and wrapper state read-only, with separate writable dependency, generated-lock, cache, test-output and private-data paths. The fixed PHP 8.1 Carbon 2 caller can explicitly opt into its one intentional composer.json rewrite through a host-created read-only marker.
Setup refuses symlink output roots, seeds an absent generated lock with {}, and runs a real-container replacement control before TLS/Composer requests. The TLS fixture now keeps its writable project under state/data. Neutral image/CA/Brotli/compiler inputs stay identical, so no image rebuild is needed.
Validation: five existing launcher controls and Bash/diff checks pass. Two actual-container controls reject overwrite/rename of every host control target and prove the next genuine PHP invocation still works; the same controls fail on the writable predecessor. Real TLS/Composer/unit consumers, independent Security review and replacement source/catalog admission remain pending. Existing CI callers are unchanged and container activation stays held under shared #297/#386.
Refs durable-workflow/.github#297; durable-workflow/.github#386; #409.