Repository navigation
Charge activity poll transit before skipping initial renewal - #338
Conversation
|
The unchanged corpus policy passes against exact main base A direct unchanged-base run independently fails on The fix requires original poll timing for the shortcut, charges the full transit against all original bounds, and confirms unknown, slow or short grants. Existing fast reuse, fork, shutdown, attempt/deadline and old-Server controls remain in the normal suite. Current main PR CI is running; maintenance backport and draft release #337 remain held until source acceptance. No package has been published. |
|
The first main-targeted Sonar analysis correctly failed php:S1448: adding grant capture made ActivityLeaseProcess exceed the existing method limit. The calculation now belongs to ActivityLeaseAuthority, which already owns all grant bounds; no threshold or gate was changed. The resulting activity/helper and authority controls pass 94 tests / 340 assertions and PHPStan. Normal current-head checks are rerunning on the incremental commit. Earlier corpus proof remains explicitly bound to 878e010; current-head corpus qualification is required again. |
|
|
Source review and current-head qualification complete at The 10-file change preserves ordinary confirmation for slow/unknown/short activity grants, first-client proof, normal renewal scheduling, attempt/deadline fencing, helper replacement and fork/shutdown behavior. Only a proven helper with original poll timing and sufficient conservative bounds can skip confirmation. The test transport, parent and helper are local and explicitly source-bound; no external Server is used. All 42 current-head checks are terminal: 41 successes / one intended cooperative-qualification skip. CI passes every supported PHP/framework cell, static analysis, package/dependency checks, docs compatibility, unchanged corpus and target-branch qualification. PHP8.4 reports 8,288 tests / 85,495 assertions / 56 optional skips. The corpus proves 75→76, actual worker base-fail/candidate-pass. Sonar's final provider record is matching SHA with base=target main, gate OK and zero bugs/vulnerabilities/smells, superseding the retained first-head method-count failure. Whitespace, public boundary and secret/private-path review pass. Normal merge is the next source action, followed by the exact maintenance backport. #326 and release337 remain open/held for that backport and independent publication/maintenance-quality gates; this does not claim installed or release acceptance. |
|
Security finite source/custody review — PASS for exact head The correction closes the confirmed delayed-grant authorization path without widening helper authority:
The official regression path is meaningful rather than fixture-only: it exercises the public Worker and isolated local helper over loopback, binds both parent and helper to the selected SDK source, and retains completion RPC evidence. Current-head CI Disposition is Source PASS only. Normal merge/main acceptance, exact 3.9.x backport, maintenance-quality/Sonar resolution, published-package identity, and release PR 337 remain separate required gates. This review does not authorize a tag, package publication, deployment, or installed/release acceptance. No unresolved finite source finding. |
|
Actual main qualification is terminal at merge Preview artifact Exact maintenance follow-up #339 is draft at78f25360, with local94 tests340 assertions, PHPStan and unchanged-policy62→63 worker base-fail/candidate-pass. Ordinary maintenance PR checks are running. The observed provider base=main / target3.9.x remains outside maintenance quality acceptance. General owns that route and qualified release337 execution; no publication, deployment or installed acceptance is claimed. The merged338 topic branch/worktree are no longer needed and are being removed; the active339 and337 branches are retained. |



A reused activity helper could treat a slow poll response as a new grant because its age started at receipt. A response delivered after lease expiry could therefore dispatch an application callback. This follow-up to #326 records the original activity poll start and charges the entire transit before allowing the fresh-grant shortcut.
ActivityLeaseAuthority captures conservative original bounds for a qualifying fast grant. Slow, unknown or short grants retain confirmation, and the helper requires an explicit freshness decision. The first helper still proves its client; healthy reuse retains one renewal across three activities. No public API, capability, dependency, protocol or Server implementation changes.
The regression runs the public Worker over inert loopback HTTP, covering an expired response and transit consuming the three-second safety margin. Its immutable official corpus fixture observes the actual callback count and retained completion RPC. Both parent and helper explicitly load the selected SDK source so the base comparison cannot use a cached candidate helper.
Validation: 94 focused activity/helper and authority tests with 340 assertions, PHPStan, public boundary and whitespace/secret review pass. The unchanged-policy corpus grows 75→76 and verifies actual base failure / candidate success; the separate base invocation fails specifically on callback count. Current-head ordinary corpus CI and main-targeted Sonar pass with base=target main, matching revision and zero findings. All 42 current-head checks are terminal: 41 successes and one intended skip. PHP 8.4 passes 8,288 tests / 85,495 assertions with 56 optional skips; PHP 8.1–8.3 and Carbon 2 cells also pass.
After main acceptance, sdk-php will backport the exact correction to 3.9.x before release PR #337 moves. The maintenance Sonar access/baseline restriction remains General-owned. #326 stays open until published-package acceptance; no tag, package publication, account or gate change is included.