Repository navigation
Description
External performance report, topic 19. The reported timings and proposed fixes have not been independently reproduced. The supplied patches are reference drafts for review and current-source qualification.
Problem
In five-local-steps the worker, not the Server, bounds the race. Each
workflow costs a worker about 120 ms (p50):
- replay plus five 20 ms local activities: about 108 ms;
- the completion round trip: 10–11 ms;
- the query poll: about 1.5 ms.
The proposed optimization overlaps completion I/O with useful work on one already-leased task. The ordering and failure semantics need independent qualification.
Proposal
Behind a Worker option, off by default at first, and only in run() on the
default transport:
- The transport can let go of a sent request. The default
curl_multi
transport suspends the armed Fiber once its request body is sent in full.
It finishes reading the answer when the Fiber resumes. Only the armed
Fiber's first request suspends. Retries, injected PSR-18 clients, streams
and progress callbacks never do. - Lease the next task first. Before a completion that follows a local
activity, the Worker polls with a 0-second timeout. If that poll leases a
task:- the Worker sends the completion from a Fiber;
- it runs the leased task while the Server answers;
- it takes the answer, with the lease its carried poll took (16b),
before that task completes.
- What stays synchronous. These completions are still sent at once:
- one that schedules an activity;
- one under a cancellation request;
- one after a kept failure;
- every completion from
tick(), and every completion with telemetry or
metrics on.
- Failures keep their meaning. A lost claim is let go as before. A
refusal that stops the Worker, or a failure of the poll that leased the
next task, is thrown once the next task is done. - A Worker holds at most one workflow task ahead. While it does, an
activity completion carries no workflow poll. - Read a missing
workflow_pollkey as "leased nothing" (11a). The
first cut read it as "unknown", counted the poll as still held, and
stopped carrying workflow polls. Five-steps then sent 3,036 workflow
polls instead of 36.
Reported benchmark evidence
Reporter-supplied cumulative measurements, not an isolated-effect or independently verified performance claim: 200 sequentially started workflows, five sequential 20ms activities or five local activities each, six PHP worker processes, mean of three repetitions, one machine, fresh SQLite/MySQL8.0/PostgreSQL16 databases with default durability. "Five" and "local" below mean last-close wall time in seconds; S/M/P means SQLite/MySQL/PostgreSQL. Preserve regressions and noise in the reported results.
Five-local-steps: 4.28 → 3.98 on the slowest backend. S / M / P went
4.22 / 4.22 / 4.28 → 3.92 / 3.93 / 3.98, which is 6–7% on every backend.
That's what the ~10 ms round trip per ~120 ms workflow predicts.
Five-steps pipelines nothing and sends the same requests as before.
Acceptance
- Fourteen tests, in
tests/WorkerCompletionPipeliningTest.phpand
tests/Psr18TransportSuspensionTest.php, cover:- the order of sends and answers;
- each synchronous case;
- the failure paths;
- the transport against a real socket;
- the missing-key answer.
- With the option off, the Worker sends exactly what it sends today.
Implementation constraints
The initial implementation must be opt-in. It changes when the
worker learns a completion failed: after the next task, not before it.
- Ship it opt-in and qualify it under realistic load. Any default change needs separate compatibility and rollout evidence.
- The suspending transport is new code on every request, so it needs an
owner.
Dependencies
- Carry the next workflow poll on the workflow task completion #330
- Deliver a carried poll's lease from its completion's answer #331
Related existing work: #66, #137.
Draft patches and validation boundary
Current main was independently read as afa5a95e3116cd69c731c821f00e8223d42f7ff6. The supplied draft series targets afa5a95e3116cd69c731c821f00e8223d42f7ff6; patches are cumulative reference material, not a current-main application or test result. Review and rebase on maintained source, preserve all existing tests and published compatibility, then establish causal controls and actual conformance before shipping. No patch was applied or executed during intake.
Known draft gap / required control: The supplied draft does not yet implement the requested opt-in option. Do not enable pipelining by default. Retain synchronous tick(), cancellation/failure/telemetry paths, lease/fencing rules and one-task-ahead bounds, and define transport lifecycle ownership before adoption.
The following sanitized unified diffs identify proposed reference material:
0009-t19-Pipeline-workflow-task-completions-after-local-activ.patch— 68,098 bytes, SHA-256e218bcb68d8d32a36234986205d994c9ecc2279482d1110649515b2b40e93f8e.
Next action: the owning maintainer reviews the candidate against current source and the acceptance criteria above. Preserve durability, lease/fencing, idempotency, fairness and whole-completion/history budgets. New producer capabilities need versioned schemas and real producer/consumer compatibility proof; historical/frozen evidence is not rewritten.
Activity
rmcdaniel commentedon Nov 6, 2026
Sanitized reference diff
0009-t19-Pipeline-workflow-task-completions-after-local-activ.patch, part 1/2.This is an unverified, cumulative draft from the external report. Mail author/date/commit-message metadata was removed; the unified-diff hunks were retained. No patch was applied or executed, and no build/test or compatibility result is implied. The known gaps and acceptance criteria in this issue remain mandatory.
Complete sanitized patch: 68,098 bytes, SHA-256
e218bcb68d8d32a36234986205d994c9ecc2279482d1110649515b2b40e93f8e. This part: 46,737 bytes, SHA-2562cc2591459fb443b6707ca53edc67ddf25b53be95283c698517155e016c8b6f2. Parts concatenate in order; a part boundary is between complete file diffs.rmcdaniel commentedon Nov 6, 2026
Sanitized reference diff
0009-t19-Pipeline-workflow-task-completions-after-local-activ.patch, part 2/2.This is an unverified, cumulative draft from the external report. Mail author/date/commit-message metadata was removed; the unified-diff hunks were retained. No patch was applied or executed, and no build/test or compatibility result is implied. The known gaps and acceptance criteria in this issue remain mandatory.
Complete sanitized patch: 68,098 bytes, SHA-256
e218bcb68d8d32a36234986205d994c9ecc2279482d1110649515b2b40e93f8e. This part: 21,361 bytes, SHA-256842416fb2f3f9ab89357793cca0a33efbfebe78788b4dfc812a751af9b34c434. Parts concatenate in order; a part boundary is between complete file diffs.rmcdaniel commentedon Nov 6, 2026
sdk-php owns this opt-in P0 after the carried-poll prerequisites. I reconciled the actual dependency chain: #330/#331 still need Server #1062/#1067, with #1060/#1061's unresolved worker-binding and error controls retained. The supplied draft's missing opt-in option remains a concrete implementation gap. Nothing in the accepted helper/grant backport #335 enables completion pipelining.
Next action: after the carried-answer contracts are accepted, sdk-php implements an explicit default-off Worker option and owns the default transport's send/suspend/resume/cleanup lifecycle. Qualification must preserve synchronous tick/cancellation/kept-failure/telemetry/metrics paths, one-task-ahead and available-slot limits, original lease fencing, missing-key semantics and deferred error ordering, including a real-socket transport control. I requested the actual producer checkpoints from Server; no default change, invented capability or benchmark claim is selected.
rmcdaniel commentedon Nov 7, 2026
I reconciled the actual3.9.5 package and current Server1073 successor: the maintenance release does not enable completion pipelining. Producer b985 has terminal CI but retains Security Source HOLD6699666744 for the real HTTP envelope and overly broad soft-decline shape; #330/#331 therefore have no valid successor handoff yet. Next owner/action: Server returns the accepted advertised carried-answer contracts, then sdk-php implements the explicit default-OFF Worker option and owns send/suspend/resume/cleanup, one-task-ahead/free-slot limits, original leases and deferred-error/telemetry/metrics semantics with real-socket controls. No option/default or transport was silently changed.
rmcdaniel commentedon Nov 7, 2026
The carried-poll source prerequisite has landed: #344 at
e929f1d, #345 at41a3e37, and #346 atfc6309bdb77b17c91f6875984df6997750966a5b/ tree3d7d2f7f883cfcda859d5a849d364827baa0ccf3. #346 has independent Security source acceptance and 41 successful exact-head checks / one intended skip. Actual-main qualification and completed-topic cleanup are finishing.SDK-PHP owns the next source slice. It will add an explicit Worker option defaulting OFF, restricted to managed
run()and the owned default transport. Publictick(), injected HTTP clients, streams/progress, activity-scheduling, cancellation, retained-failure, telemetry and metrics paths remain synchronous. One already-leased workflow ahead is the hard bound; its slot prevents another carried workflow poll.The implementation must own the suspended request's lifecycle, consume only the armed Fiber's first eligible request, join the prior answer before the next task completes, and report deferred failure once. Current Worker claim/cancellation/grant fields are mutable across a task: resuming a parent frame must not clear or replace the next task's state. This is a design constraint from maintained-source review, not a claimed defect in the existing synchronous worker. Real-socket request-body/answer-order and cleanup controls, default-off packet parity, causal corpus and independent source review are required before adoption.
No pipeline source, imported patch, new runtime, release or benchmark has been executed or accepted by this update. The published producer/SDK tuple and existing release gates remain separate.
rmcdaniel commentedon Nov 7, 2026
The #330/#331 source prerequisite is now fully main-qualified and cleaned up: #346 main
fc6309bdb77b17c91f6875984df6997750966a5b, tree3d7d2f7f883cfcda859d5a849d364827baa0ccf3, all 42 main checks terminal (40 success / two intended skips).SDK-PHP is starting the pipeline source on isolated
feat/332-opt-in-completion-pipeline, rooted at that exact main. No pipeline code or test has run yet; the branch currently contains only the accepted baseline. The first concrete slice is the owned, one-shot default-transport suspension primitive with real-socket send/answer/cleanup controls, followed by the explicit Worker option defaulting OFF and the managed one-task-ahead path. The existing synchronous exclusions and deferred-failure/cancellation/grant constraints from the preceding design record remain required.Normal source authoring and bounded source tests do not select a release, new bootstrap/profile execution or a published Server tuple. Those gates remain separate.
rmcdaniel commentedon Nov 7, 2026
First useful increment is pushed in draft #347, exact
ddce20b064b8f0a1572f703ce85e6920b92e93db/ treecf1e4d2e5167459eab89f3dac504bf925774f91c, based on mainfc6309bdb77b17c91f6875984df6997750966a5b.This increment only implements the explicitly armed owned-default-transport primitive. One Fiber's first request must match the exact completion URI; it yields outside cURL's native callback after the full JSON body is sent, then finishes the same response on resume. Another Fiber cannot consume or release its arm. Earlier ineligible I/O, payload progress and injected HTTP clients remain synchronous. Unarmed requests retain their existing path.
Eight real-loopback/socket and ownership tests pass with 45 assertions. The related transport/timeout/payload/poll set passes 226 tests / 1,998 assertions, and changed-production PHPStan passes. Credential/private-path and public-boundary checks pass; local containers are removed. Normal CI and requested finite primitive review are active.
No Worker option or pipeline loop is implemented yet. SDK-PHP is continuing those on this same draft, with the explicit option defaulting OFF, managed-run-only eligibility, one-ahead bound, synchronous exclusions and deferred failure/claim-state controls. The draft is not merge-ready and is not full #332 source, release or performance acceptance.
rmcdaniel commentedon Nov 7, 2026
The complete Worker source increment is now pushed in draft #347:
1e8cb6cdb466cb1f7b99d572cdefd57469c794e6/ tree5d67ce3714b8be1e60e2d3b2b82bb4d73719a938, based on mainfc6309bdb77b17c91f6875984df6997750966a5b.The explicit constructor/create option defaults OFF. Managed run can prefetch one ordinary zero-timeout workflow, send the local-work completion, execute that original leased workflow while the reply waits, then join before the next completion or failure. Original grant/expiry/transit/fence are preserved. Held or uncertain slots block another carried workflow poll. Public tick, scheduling, cancellation/cooperative mode, kept local failures, telemetry, metrics and unsupported transport paths stay synchronous.
Local qualification passes 106 tests / 995 assertions plus changed-production PHPStan. The official same-consumer regression passes this candidate and fails exact pre-pipeline main at the expected ordering assertion. Default-OFF real HTTP packet streams are equal against that predecessor after only generated poll-ID/duration normalization (both SHA-256
3b6d769737587a8401b2d1eff49376a9bd9aa9f189e49fd05ed412209a49787e). Lost-answer retry retains identical commands/fence without re-executing local work; original-grant refusal, matched/mismatched lost claims, fatal/transient probes, explicit/SIGTERM drain and one-ahead bounds pass. Review also found and fixed a prototype gap: a joined registration refusal now blocks the next task's failure acknowledgement as well as its successful completion.SDK-PHP owns normal full CI and the requested independent full-source review next. Earlier primitive-only reviews do not accept this successor. Credential/private-path and public-boundary checks pass; local containers are absent. No published runtime, package, realistic-load result or performance claim is inferred; existing release/combined-minor and installed tuple gates remain separate. This issue stays open.
rmcdaniel commentedon Nov 7, 2026
Draft #347 now contains the default-OFF Worker implementation and review-fix successor
bf604c2533bbdb6ccbb88b32b001b091ca223702/ treec80b22d9d16589d275b3c0dbd55a54c05eaead72. All 42 exact-head checks are terminal (41 success / one intended skip), including the full PHP 8.3 result of 8,402 tests / 85,970 assertions / 56 skips. Local causal socket controls, original-grant/fencing, retry/fairness, terminal ownership cleanup, shutdown and default-OFF packet parity pass; the unchanged corpus validator and all 83 policy tests pass.The independent review found a real prototype prefetch-policy gap. The successor preserves identity rotation versus uncertain recovery, bounded delay and attempt counts, capacity fairness and occupied-slot heartbeat reporting. Exact reviewed-predecessor failures and successor passes are recorded in the fix handoff. SDK-PHP has requested independent closure of that Source HOLD; the draft remains unmerged until it closes. SDK-PHP then owns normal main qualification and cleanup.
Published delivery is still separate: General retains the #293 combined candidate/freeze/version decision and publication inputs; Server owns the immutable published producer handoff; SDK-PHP owns the actual installed consumer and realistic-load qualification. I asked General for that concrete release path and asked Server to bind ordinary prefetch admission/slot behavior to the actual producer revision. Source socket fixtures do not establish Server admission or speedup. No tag or narrower maintenance feature release is inferred, and this issue stays open.
4 remaining items
rmcdaniel commentedon Nov 7, 2026
The initial installed-consumer harness is now Source/main/cleanup complete in #348 at exact main
530da5f3c27d94fffe631700c5da16bbf87299ac/ tree7df8cb1b0788aa8639ef2d88fe3cf0949d56fe5c. Final receipt binds independent custody/main PASS, 42 PR contexts (41 success / one intended skip), 40 actual-main checks (39 success / one intended skip), PHP8.3 8,449 tests / 86,063 assertions, and exact topic/container cleanup. Product and workflow bytes remain the accepted783d7efbytes. Pipelining remains default OFF.The maintained CLI prepares all three inline-carrier paths, actual older-producer fallback, useful controlled overlap and one successful-answer loss/retry, with authenticated single-read subject/lock selection and bounded cleanup. These are Source controls. The full driver has not executed against a published SDK or Native image, and the four initial scenarios do not close real expiry/refencing/opposite-slot/refusal or undelayed backend/load acceptance.
Concrete next inputs / owners: Server qualifies its one-line release-metadata successor and returns the actual producer publication/index/runner packet; General owns its execution selection, the actual Workflow successor caller/published2.21 support handoff and final SDK cohort/freeze under #293. I asked both owners and returned the exact source runner. sdk-php owns the selected normally installed proof and complete remaining matrix after that handoff. No release, runtime, profile or performance result is inferred; this issue stays open.
rmcdaniel commentedon Nov 7, 2026
The remaining caller-owned qualification selections are implemented in draft #349, exact
b24555ccf5ca2485284744df420902965b002351/ tree101bebcee2a51d1c6e685c2d82df4026900c5c8b. This extends maintained #348 beyond its initial four rows: original-ID loss recovery, whole transit/buffer age, expiry and activity/workflow registration replacement, opposite-slot/missing-key capacity, default OFF/false, plus direct six-worker / 200-workflow / five-20ms-step local/remote cells and a three-repetition OFF/ON comparator. Timings and regressions remain descriptive.102 focused Source tests / 206 assertions, lint and level-6 analysis pass; source container cleanup and boundary/secret checks pass. No new package/image/runtime/profile or actual load execution occurred. Workflow refence now follows the producer-owned accepted Source vector, including atomic release and a fresh n+1 claim under the original ID, rather than transferring the activity refusal to workflow recovery.
Next action/owner: SDK-PHP completes normal b245 CI and independent Security Source review, then maintained Source acceptance. General supplies the immutable published tuple and actual caller selection; SDK-PHP then owns the real installed/fallback/failure/load matrix. This issue and #328–#331 stay open for that acceptance; Source tests do not close it. Held #340 remains separate.
rmcdaniel commentedon Nov 7, 2026
The remaining consumer qualification harness is now maintained at main
b9525ef5f685f79acdc7da172f7cab39f8251e4b: #349 Source/main/cleanup receipt. Independent Source review passed, all 40 actual-main checks are terminal (39 success / one intended skip), and topic/container/temporary vendor-copy cleanup is verified. PHP8.3 passes 8,504 tests / 86,176 assertions.This supplies the real-fault/authority/capacity/default/fallback and bounded-load harness source. No installed or Native row ran. Next owner/action: General returns the immutable published tuple and actual caller selection; SDK-PHP then executes and records this issue's actual required installed outcomes. The issue remains open. The current publisher prerequisite is the corrected Workflow caller's separate installer-404 NONPASS under central #297, not an accepted profile or product result.
rmcdaniel commentedon Nov 7, 2026
The publisher prerequisite has advanced: the corrected actual Workflow caller is now independently accepted, with terminal/custody reconciliation. Its earlier installer-404 original remains NONPASS. SDK #340's refreshed exact head591 is Source/hosted PASS; its first merge/preview packet is prepared, unselected and under finite review.
This issue's implementation and complete maintained harness remain accepted Source; no installed/Native row has run. The real next input is the immutable published tuple under #293's current producer handoff. Server owns the frozen3c6 native publisher and actual index/platform/runner receipts; General owns distinct execution selection, published Workflow2.21 metadata/verifier and the combined SDK freeze. SDK-PHP has asked those owners and retains this issue's actual installed/fallback/fault/load qualification. A docs preview does not supply that tuple. The issue remains open.
rmcdaniel commentedon Nov 7, 2026
The actual producer is published as Native Server 3.2.0, source/runner
3c6f1eda9c6d2ebc0ee5bec8ccf431900052be9e, indexsha256:6916f6f3bb1ee58d071f10f888068fd321cd1576fb70dc97ce8e9e61da493d62, with the accepted schema-63 carrier handoff. Published Workflow 2.21.0 authority is also available. The remaining SDK release prerequisite is coordinated Laravel contract Source PR350, under fresh hosted qualification and independent Source review.SDK-PHP retains this issue's implemented consumer and complete maintained harness, then the actual published-package/fallback/fencing/transit/lost-answer/load qualification. General owns the SDK freeze/publication and exact bounded tuple admission; Server owns the remaining Native parity/Compose receipts. The accepted preview and stable documentation builds supply no installed-product result. No installed row has run and this issue remains open.
rmcdaniel commentedon Nov 7, 2026
The coordinated Laravel prerequisite is now actually integrated on main 6ec471d with Source/main acceptance, preview terminal/artifact/nondeployment acceptance, and owned-topic cleanup. Live documentation remains on the accepted published SDK3.9.5 tuple. The narrow Unreleased/published-history carry is draft351, under ordinary Source qualification.
This issue still requires released code and the actual installed consumer matrix. General owns the exact SDK candidate freeze/publication/tuple admission under #293; Server owns its already-prepared qualifier runner and separately selected producer receipts after the operator-required split. SDK-PHP retains package identity, default-OFF/fallback/fencing/transit/original-ID and bounded-load evidence. No SDK3.10 tag/package or installed row is claimed; this issue remains open.
rmcdaniel commentedon Nov 7, 2026
The older-producer fallback candidate is now concrete at #293/6707736265, following General's read-only preparation request: published native Server3.0.5, source
bc24589db02161a21febbb30211309537fd1e24e, annotated tag object685f57ed19127a9e53ea6da28fddf310bfb16c3a, release433291416, original publisher41729986887/a1 SUCCESS.Both DockerHub and GHCR agree on index
sha256:3cb6e5bf8ec766ac2abd933369b40a77af62794b6d7b921ce21d3fb263e88b72; linux/amd64 manifestsha256:2659280f3ad58d1812ce00f44a927beed9781237143b8487ef12e1301eed551e; configsha256:0abb6928655d3a56e3ea9fb061f7edefd479a731eade94a30346dde9f7634800. Config platform, source, tag and publication-run labels agree. Static source's complete worker capability map omits all three carried-poll flags, and registration plus cluster discovery attach that map under protocol1.20. The linked proposal binds the exact source blobs and verified small metadata.This supplies an eligible metadata/Source candidate for the real older-Server fallback row. No image layer was acquired and no runtime/install/profile or fallback invocation ran. Default-OFF, explicit-OFF, one-ahead/failure boundaries and actual load acceptance remain open under this issue's unchanged criteria. The actual fallback cell and exact SDK3.10 package/runner still require the separate complete tuple/admission after canonical3.2 qualification. SDK-PHP retains that installed proof; General retains the tuple/execution choice. No capability-masked3.2 result will replace this older producer.
rmcdaniel commentedon Nov 7, 2026
The proposed Server3.0.5 older-producer binding now has independent METADATA / STATIC CONTRACT PASS for the exact candidate proposal. It confirms the release/source/tag chain, both registries' exact index/amd64 manifest/config, publisher labels, protocol1.20 and absent carried capability map. The annotated tag is unsigned and targets a valid GitHub-signed merge; no stronger signature claim is made.
The new-producer prerequisite also has an actual owned Source PR: Server1089, exact prepared head
1a5462058ac7c2c7008c372292a50b3580d3b3c7, follows accepted Server1088 main. Its ordinary Source qualification and later separately selected producer receipts remain incomplete. General retains exact SDK3.10 publication/tuple admission. SDK-PHP retains the actual installed older-producer fallback and this issue's default-OFF/one-ahead/failure/load matrix. No runtime row or release acceptance follows from this metadata PASS.rmcdaniel commentedon Nov 7, 2026
SDK source prerequisites are complete on main
a969c1d4c07b5d1c1fab4e354f98a98a80e3cbd5: the coordinated Laravel contract and release-note/history carry have Source/main acceptance and exact topic cleanup. The complete maintained consumer harness remains accepted Source.The real older-producer candidate Server3.0.5 now has metadata/static-contract PASS, not an executed fallback result. The new producer's qualifier is Server1089, current head
462ca242be0c45534702bc40989fa01786d1d5e7. Its narrow security delta is accepted and fresh Sonar passes; broad CI/full Source, main and separately selected canonical producer receipts remain pending. Old1a546's failed result stays attributed.Next actions and owners: Server completes that qualifier Source/main and producer evidence; General freezes/publishes the exact SDK3.10 candidate and returns the bounded published tuple; SDK-PHP then verifies normal registry/archive identity and the actual installed fallback, lease/fencing/transit/original-ID, default-OFF/one-ahead/failure and bounded-load rows. Those owners have the concrete handoff requests and diagnosis. No SDK3.10 package, installed row or throughput result is claimed. This issue remains open for its released/installed acceptance.
rmcdaniel commentedon Nov 7, 2026
Recheck 2026-11-07 19:40 UTC: Server's qualifier fix server#1091 is now merged and main-accepted (
1c34f3b7). SDK source and the consumer harness are complete on main69d0e408.Next owner / action: Server returns the refreshed qualifier packet → Security effect review → General selects the effect and the 3.10.0 freeze/publication. sdk-php then runs the installed matrix for this issue (expiry/refence, opposite-slot, fallback on Server 3.0.5, default-OFF, load). Details: #293 status. I asked Server and General in chat.
rmcdaniel commentedon Nov 7, 2026
SDK-owned next actions are on #293:
Owners: sdk-php for #353 and #354. General owns the tag and phase selections; Server owns the qualifier receipts.
rmcdaniel commentedon Nov 7, 2026
Progress on this issue's installed cells:
4e6c6b7b);Remaining: Server's Native 3.2.0 qualifier receipts, then General's 3.10.0 tag, then the selected installed phases. sdk-php executes the phases. Details are on #293 (latest comment).
rmcdaniel commentedon Nov 7, 2026
State: no longer blocked externally. SDK 3.10.0 is published (tag
3.10.0→4e6c6b7b, release 437881850, Packagist). Its installed identity is independently accepted: lockf8142378, SDK inventoryc562d378, runner seal94a9604f. The Native 3.2.0 producer qualifier is accepted.This issue's installed behavior is pending. Its cells are in the 18-cell phase D, prepared on #355/6713911732, plus the phase E load cells.
Next owner / action: General selects phase D, then sdk-php executes it and posts the per-cell results. The issue is not complete until those results exist. Details: #293 (latest comment).
rmcdaniel commentedon Nov 8, 2026
Closing: acceptance met on the published 3.10.0 tuple.
Acceptance met: the opt-in pipeline (default OFF) passed its source tests, and installed D4
pipeline,pipeline-loss,pipeline-buffer-age,default-off,explicit-off,packet-defaults. It was qualified under realistic load: 36 load cells, explicit OFF/ON × local/remote × 3 repetitions × SQLite/MySQL/PostgreSQL. The descriptive results include regressions (MySQL local ON slower; SQLite remote ON slower) and are preserved. The option stays default OFF; any default change needs separate compatibility and rollout evidence, as the issue requires.Evidence:
783d7ef, treec80b22d9), with the consumer harness in Prepare installed native completion-poll consumer controls #348/Prepare the remaining completion-poll qualification matrix #349. The #355 opposite-slot correction was merged at main1aebc537(runner seal76ab2cf5).3.10.0→4e6c6b7b, release 437881850, Packagist. Installed identity: lockf8142378, vendor21e7ddae, SDK inventoryc562d378.3c6f1eda(image2a1c9659, canonical acceptance server#325/6713776065), with Server 3.0.52659280ffor the no-capability fallback.performance_acceptance: not_assessed).