Repository navigation
Maintain original activity leases while PHP callbacks run inline - #202
Conversation
|
|
PHP SDK 3.2.0 is published from merged Portal run 39638685098 passes build/deploy. The live deployment audit reports the exact merged source, the homepage identifies PHP SDK 3.2 and its onboarding command selects The earlier release-metadata original remains failed at its four recorded identity checks; it is not replaced by this result. Actual six-minute/no-progress lease maintenance plus killed-worker recovery remain unfinished under workflow#878. Server 2.10.1's separate critical PHP image publication still pins Core 2.9.0 and does not advertise the new lease capability. Package publication does not close the whole activity-lease issue. |



Keep an inline activity alive under its original grant
Part of Workflow #878. This adds automatic maintenance to the earlier bounded Client primitive; an endpoint alone does not fix an ordinary blocking activity.
Current candidate
e13d84b95c142cb6feaa962255bde3e30923c86e/ whole tree5f6f292de897b56e9f202b488610eb190be1a2e7adds the real TLS and rotating-authentication control below to qualifiedcec79c1b. Production source, dependencies and metadata are unchanged. It incorporates main3de24dband preserves its tracing portal. Fresh whole-head CI and Sonar are required independently.Behavior
Actual qualification
Reviewed analyzer follow-through
The seventeen findings on the preceding candidate were reviewed individually. Identity capture, original deadlines, renewal acknowledgement, helper progress ordering and IPC send/read/validation now have cohesive methods. A dedicated maintenance exception distinguishes helper setup/communication failure. Worker presence configuration is grouped without changing registered/unregistered behavior, the unused request-path argument is removed, and cluster discovery reuses its path constant. No deadline, message-size, timeout, refusal or callback assertion changes.
Exact final PHP 8.3.35 source again passes 2,632 cases / 13,155 assertions / 56 existing skips (2,576 passed), including 72 focused cases / 232 assertions. PHPStan, strict Composer validation and the dependency boundary pass. The initial cleanup missed the direct constructor in the owner-death fixture; its failed ready assertion is retained and the fixture is updated for the grouped presence argument before these final passes. The first PHPStan invocation hit its runner's 128 MiB limit; its complete 512 MiB run passes. No source error is inferred from that resource failure.
One individual
requiresuggestion (AaFeHafTgdQwD3TIDTFQ) is marked FALSE-POSITIVE, not fixed: the custom bootstrap is an executable factory that must return a fresh configured Client.require_oncecan return boolean true for an already included file and break that contract. The CLI autoloader does userequire_once. Fresh Sonar workflow39596692472and app analysis now pass. The public issue API explicitly shows 16 CLOSED/FIXED, one RESOLVED/FALSE-POSITIVE and zero OPEN/CONFIRMED, rather than inferring resolution from the badge. No rule, threshold or profile is changed. Normal supported PHP/Laravel/Symfony, corpus, package, documentation and integration CI39596692454is terminal SUCCESS. Entire cleanup-phase tools/dependencies/raw are removed at 12:04:11 UTC, with borrowed images preserved.Actual private-CA and dynamic-authentication boundary
The added local TLS control generates one synthetic private certificate and first proves that an ordinary Client rejects it before any HTTP request reaches the fixture. A custom Guzzle Client with that trust file is then recreated by the documented bootstrap in the independent helper. While its original callback blocks for 4.2 seconds against a three-second lease, the worker credential changes on disk. Actual renewal requests use both the original and rotated credentials, and exactly one completion is retained. TLS verification remains enabled throughout.
The focused real-transport test passes 1 / 17; the complete maintenance file passes 12 / 121, and production PHPStan and TLS fixture lint pass. These are overlapping selections. The first fixture expected the lower-level TransportException, but the public Client wraps it in ServerException; that unsuccessful fixture run is retained and the final test asserts the real public wrapper and underlying certificate failure. The first tool launch inherited an application entrypoint and stopped before tests; its corrected standalone tool does not start an application stack.
Compatibility decision: do not serialize custom HTTP handles or flatten dynamic authentication into static credentials. The explicit bootstrap must recreate them for the same runtime URI, namespace and protocol. A runtime advertising maintenance is checked before claim; missing custom bootstrap remains an actionable configuration refusal. Runtimes without affirmative capability retain their original path. The test follow-through does not change production source, dependencies, protocol or authority.
Merged source checkpoint
All applicable normal checks on
e13d84b9pass, including the supported PHP/Laravel/Symfony matrix, real integration selections, package/corpus/docs, repository policy and Sonar. Protected mergeacce3db8bf6b835b73bc653905588bea49041781has exactly the qualified tree5f6f292de897b56e9f202b488610eb190be1a2e7. The completed remote PR branch is absent.Fresh-main CI
39622133587, portal, Sonar and boundary are independently queued. This is merged source, not a published-package or complete #878 acceptance. Actual installed six-minute and killed-worker cohorts remain open. No Server/native/shared/frozen/schema edit, resource hold, threshold or profile adjustment.