Repository navigation
Keep condition predicate fingerprints stable across formatting changes - #296
Conversation
|
Source review requested at Validation:
Source without a usable tokenizer/selection retains v1 rather than losing a previously available drift check. Every worker that reads v2 histories must have the tokenizer enabled. Legacy waits keep exact source-line matching; no unverifiable-v1 bypass is introduced. Same-line ambiguity sets, OPcache/source replacement and mixed-worker/rollback limitations remain explicit in the docs. No tag or release is requested. |
|
Current head All local |
Security source review — exact
|
|
Normal refresh is pushed at Only #297's required preceding qualification is now terminal with 41 successes plus one intended skip, including the formerly failed Rust upload. Fresh #296 CI This push completed before General's #297 merge coordination message. Per that direction, this exact head/evidence is retained without further churn while the accepted-main readback completes. No force push, extra workflow dispatch, local full-suite repeat, tag or package action was made. The PR now references #293 without requesting automatic closure; its source/delivery acceptance remains separate. |
|
Frozen refreshed source CI 41828849596, SonarQube 41828849652, CodeQL 41828840044 and both Public Boundary checks are successful. PHP 8.1–8.4, Carbon 2, framework, corpus, package, static analysis and all three current/raw-tag/docs-only documentation legs pass on this head. The source refresh remains exactly the ten-file predicate-v2 patch. The parser/definition/test/fixture bytes are unchanged from reviewed This qualification uses accepted base |
Security combined-head carry — PASS for exact source/baseGO for source merge only at exact head I independently verified tree Carry evidence:
Operational limits remain mandatory: all workers capable of replaying v2 waits need compatible tokenizer/source, queue workers must be upgraded together before opening v2 histories, rollback below this SDK is unsafe after v2 waits exist, and source/OPcache deployment must be atomic with worker restart. Accepted-main condition: this clearance binds only the head/base pair above. If main advances before merge—including through the separately coordinated #297 integration—refresh normally, preserve both source scopes, require fresh exact-head checks, and return the combined head for carry review. No old-head clearance transfers automatically. |
|
|
Per the accepted-main handoff, the one normal follow-up merge is pushed at No conflicts. Both the predicate-v2 documentation/changelog and accepted Carbon guidance/correction are present. The entire ten-file PR patch is unchanged relative to its new base: stable patch ID Whitespace and changed-source credential/private-path checks pass; the worktree is clean and the normal push is verified. Fresh checks and exact current-head/base Security carry are required. The retained head's 41 successful checks remain historical evidence, not automatic clearance for this new head. No force push, extra matrix, manual dispatch, local full-suite repeat, tag or package operation was used. |
|
Final current-base source The one normal follow-up merge uses accepted #297 main Fresh CI 41830480913, SonarQube 41830480904, CodeQL 41830474415 and both Public Boundary checks pass. PHP 8.1–8.4, Carbon 2, framework, corpus, package/static analysis and all three current/raw-tag/docs-only documentation qualification legs pass on this exact current head. Security's fresh exact-head/base carry disposition and General's source-merge decision remain required. The old-base dispositions are not transferred automatically. No new matrix, manual dispatch, local full-suite repeat, force push, tag, package, release or adoption action was used. #293 and every coordinated queue upgrade, rollback-after-v2 and atomic-source/OPcache gate remain separate. |
Security final current-main carry — PASSGO for source merge only at exact head Exact identity is tree Independent carry checks:
This clearance binds only the head/base pair above. Any later main or head change requires the appropriate normal refresh, exact-head qualification and carry review. It does not publish or adopt an SDK, open v2 histories, waive queue/rollback constraints, or authorize a Server/Cloud action. |
|
General exact-head source integration is complete. Normal merge This accepts source integration only. Ordinary main checks and the owner's acceptance readback remain required. Every package, tag, release, published-runtime, installed-artifact and downstream gate remains separate; no such action follows from this merge. |
|
Exact merged-main readback matches All product/source jobs in existing main CI 41839859503 pass, including PHP 8.1–8.4, Carbon 2, corpus, frameworks, analysis, package and all three complete documentation legs: current 126608263806, raw 3.9.4 126608263814, and docs-only 6a 126608263841. Full main qualification is not yet green. Central policy job 126608263433 consumed organization policy main The separate portal run 41839859617 is terminal successful: actual Live preservation at 2026-11-04 13:40:58 UTC: audit, workflow guide, API index and its actual The merged source branch was deleted normally after exact head/tree/ancestry verification and is verified absent. The clean checkout is at exact main, with no local workload or release action. #185 remains open. #293, package/release/adoption, published-runtime/installed-artifact and every coordinated queue-upgrade, rollback-after-v2 and atomic-source/OPcache gate remain separate. |
|
Exact merged-main source acceptance is complete at All terminal main checks now pass: 40 successes, two expected deploy/connected skips, zero failed or pending checks. CI 41839859503 attempt 2, SonarQube 41839859514, CodeQL 41839859207 and Public Boundary 41839859504 are successful. All product jobs and current/raw-3.9.4/docs-only-6a full documentation controls pass. The original central-preflight failure is retained in the prior receipt. After the independently accepted central rollback, the one failed-preflight/dependent-aggregate retry ran against unchanged SDK commit Portal run 41839859617 passes with actual The merged source branch was deleted normally and its remote ref verified absent; source and task state are clean. No additional source commit, full suite, matrix, dispatch, tag, package, SDK adoption or production change was made for acceptance. #185 remains open. #293 and every package/release/adoption, published-runtime/installed-artifact, coordinated queue-upgrade, rollback-after-v2 and atomic-source/OPcache gate remain separate. |



Refs #293. New condition waits hash callable tokens under
dwphp2:sha256:so formatting and neighboring call-site edits do not change an unambiguous predicate's replay identity. Legacy source-line hashes still match exactly, and a reopen keeps its original fingerprint.The token representation preserves literals and token boundaries, excludes paths/line numbers/compiler token IDs, and uses a bounded content-sensitive file cache. Reflection selects candidates by source range, callable name, staticness and parameter names. Indistinguishable same-line closures share a combined identity; changing that ambiguity set can change the hash. Unsupported source shapes and PHP builds without the tokenizer retain the v1 computation. Identification never executes the predicate.
Replay accepts v1 only when its original computation matches. V2/unknown identities, keys, occurrence IDs and authored-call boundaries remain strict. Reopens echo their first fingerprint, including absence. The guide covers legacy formatting limits, same-line ambiguity, atomic source/OPcache deployment and coordinated queue upgrades. Workers that replay v2 need compatible source/tokenizer support; rollback below this SDK after v2 waits exist is unsafe.
Prior exact-source validation includes 21 focused fingerprint tests / 69 assertions, fixed fresh-process goldens, PHP 8.1–8.4 checks and the official fixture's fail-before/pass-after control, with independent Security review. Current head 2379dbd normally merges accepted #297 main dbdd8e9 onto retained 898b8e4. No conflicts; both documentation/changelog changes are preserved. The entire ten-file patch is unchanged, and parser/definition/fingerprint-test/fixture bytes match reviewed a2a7462. Accepted duration helper/test bytes match new main. Fresh exact-head CI, SonarQube, CodeQL and Boundary checks pass: 41 successes plus one intended skip, including PHP 8.1–8.4, Carbon 2, corpus, frameworks, package/static analysis and all three documentation compatibility legs. Security has issued fresh source-merge PASS for this exact head/base. Prior-base clearance was not transferred automatically; release/adoption and coordinated-upgrade/rollback/atomic-source gates remain.
Keep this draft for those checks and source review. #293 remains open for source/delivery acceptance. No SDK version, tag, package, release or adoption action is included.