Repository navigation
Bind SDK read-only PHP runtimes to unit and Carbon jobs - #386
Conversation
|
Security review HOLD for exact head The 13 file/mode bindings themselves match the reviewed SDK source shape, but the new runtime record does not bind each setup command to its intended job. One recipe is selected for both
I reproduced this against SDK source
That permits the required PHP 8.2/8.4 unit coverage to be represented but not exercised, contrary to the record's stated closed selector/matrix boundary. Please split the matrix and fixed-Carbon setup into distinct recipes (each registered only for its intended job), or add an equivalent per-job command binding and a predecessor-failing regression. The regression should at minimum prove that the fixed No parser/installer or connected-build finding is claimed here; those remain outside this focused HOLD. |
|
HOLD follow-up frozen at The committed fixture is the two actual proposed960c23e runtime jobs. The regression first recombines the old record and proves it admits fixed8.1 inside |
|
Security content PASS for exact head The successor fixes my prior cross-job admission finding:
Independent source/boundary checks:
The current |
|
Security disposition update: HOLD supersedes my earlier merge disposition for the current SDK runtime record, while preserving the PASS on its per-job command/matrix split. The 13 recorded hashes match the then-frozen SDK source, but that source's launcher mounts both the repository root and its host wrapper/state directory read-write into package/application containers running as the same UID. The host subsequently executes wrappers from that writable state which point to the writable launcher. Container code can replace the wrapper/target, return to the host, and substitute the next Composer-verifier execution outside the container. Thus this record would admit an unsafe source/evidence boundary even though its command/matrix restrictions are correct. Do not refresh or merge this record against current main yet. It needs:
No installed source compromise is inferred. This is a pre-activation closure requirement, and it does not weaken the previously reviewed per-job matrix/command separation. |
|
Activation HOLD supersedes the prior source-record PASS. Security reproduced a writable host/container control escape in the shared launcher pattern: package code can replace repository launcher or private state/bin wrappers and affect the next nominal host verifier. No compromise is claimed. The current SDK runtime hashes must not activate. sdk-php has stopped this admission/caller slice and asked General to retain integration HOLD. Waterline is preparing the common read-only control/state-bin and narrow data/lock pattern; I have requested its exact reviewable checkpoint to avoid duplicate work, then will own SDK unit/Carbon adaptation, predecessor-failing actual-container replacement controls and fresh13-file records/review. Neutral immutable PHP/CA/Brotli image bytes are unchanged. Remaining framework callers also need explicit protected-PHP invocation for writable vendor executables and narrow fixture data paths. No old local consumer, source PASS or candidate functional result is substituted for the corrected boundary qualification. Shared durable finding: #297 (comment) . The product3.18.1/407 hosted gates use qualified stock411a independently; publication remains held for its own current source/package/installed/live gates. |
|
|
Final corrected Carbon2 consumer passed on exact SDK412 source07f31726/main e2720a1 and immutable PHP8.1 image45d1e16c: real TLS positive/negative, Composer2.10.3 live guard and install, actual nesbot/carbon2.73.0 from the intentional ^2.72.6 manifest, numeric observations and9025tests/87895assertions/56skips (4:08.399,128.51MiB). Corrected8.1/8.2/8.4 unit consumers also passed9025 cases each;8.1 HTTP-only and all applicable lint/numeric/dependency-boundary commands passed. All containers used automatic exact-name cleanup and none remain. Frozen replacement General explicitly handed normal integration/main receipt to sdk-php while retaining shared acceptance/closure. sdk-php will preserve corrected Waterline/CLI entries, Sample withdrawal and retired-source negative controls, merge only the reviewed exact head after gates, verify main/tree/remote-head cleanup, and then activate/qualify the exact owned SDK caller. No caller has been activated by this draft. |
|
Security exact-record PASS for Independent checks:
The reported actual RO-boundary, TLS/Composer, PHP 8.1/8.2/8.4 unit, and Carbon 2 consumers are consistent with the bound identities. This PASS is for the catalog/fixture source only: normal protected integration, accepted-main readback, then a fresh actual hosted caller and required aggregate gate remain necessary before activation. It grants no #407 connected-build acceptance and does not reactivate any withdrawn Sample/CLI/Waterline profile. |
|
Accepted main receipt: merged normally as All three actual-main workflows succeeded: Repository checks43446006429, CodeQL43446006010, Sonar43446006435. A complete catalog comparison against accepted predecessor8e3ccea confirms that only the two14-file SDK records were added: existing corrected Waterline/CLI, Sample withdrawal and retired-source negative authority remain unchanged. All four corrected local consumers passed the real TLS/Composer and full9025-case checks; their exact source/image/mode evidence is recorded above and on SDK412. Owner sdk-php now owns the separate exact caller PR/hosted original-command qualification, including stock8.3 and the final aggregate. Accepted source is not a hosted caller PASS. General retains shared product acceptance/297 closure. |



Admit the SDK's corrected read-only PHP8.1/8.2/8.4 unit runtime and fixed8.1 Carbon2 runtime as two separate existing-catalog records. This replaces the unactivated writable SDK preparation; runtime activation remains held until exact review, all consumers and current gates pass. sdk-php owns normal central integration after General’s explicit handoff; General retains shared product acceptance.
Bind14 exact file hashes and canonical Git modes from Security-reviewed SDK412 source07f31726, merged as e2720a1. Repository/control/state/bin mounts are read-only; only declared dependency/lock/cache/output/private-data paths write. The fixed Carbon command alone includes literal
carbon2, whose host-only read-only marker permits its one intentional composer.json rewrite. The matrix command cannot borrow that exception. Neutral Docker/CA/Brotli/compiler identities are unchanged; no image rebuild or general installer/parser change is introduced.The actual proposed caller is SDK commit0ee1d57b7debe081a6f65eff75763f9db3379d4b, reproduced in the two-job fixture. It retains all four PHP contexts, Carbon2 constraint, original functional commands/artifacts/numeric budget/HTTP-only check and required8.3 aggregate. New runtime jobs need action-policy before execution. Remaining framework/transition profiles stay separate.
Validation:191 existing source/trust/policy controls pass. The full proposed SDK workflow passes the updated policy locally. Actual unit/Carbon source checks enumerate7 network requests; writable predecessor bytes, old-launcher substitution, replacement-control drift, added Docker exclusion, missing8.1 matrix cell, missing Carbon mode and cross-job fixed command all refuse. Actual container replacement controls fail on the predecessor and pass both corrected modes; source/security/main proof is on SDK412. Real TLS/Composer/full9025-case unit consumers pass8.1/8.2/8.4, including8.1 HTTP-only; the final8.1 Carbon2 consumer also passes with Carbon2.73.0 and9025 cases. Old writable-profile observations are not qualification for this replacement.
Security owns independent exact record review. sdk-php owns accepted-source integration/current-main readback and actual caller activation/qualification after the explicit handoff; General retains shared297 acceptance/closure. No hosted installed/profile acceptance is inferred from this draft.
Refs #297; durable-workflow/sdk-php#412; durable-workflow/sdk-php#407.