You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implemented in PR #791, final candidate 9d7cd8fcba3dda8bcec984e7048d0ffa27566d00. Qualification and exact remaining work. General owns hosted CI, protected-queue merge, qualified PHP artifact publication and installed SDK/Nexus acceptance. Rust ownership remains native-only. Source is qualified locally; the artifact is not yet published.
Adoption decisions
Workflow 2.14.2 is published at d60ce5f60e70b834c5d4ef142c3d5dc415cd39fe; installed package evidence is complete. PR #791 replaces the earlier Rust WIP branch and pins this published release.
The Server advertises 1.20 until SDKs ship1.21 and the required history/poll fences are implemented. Worker completion requires Contracts\ProtocolAwareWorkflowTaskBridge::completeForProtocol(taskId, commands, authenticatedProtocolVersion) while the original two-argument base ABI stays intact. Missing capability returns503 and leaves the task leased. Service execute uses the admitted caller namespace and request principal; ownership refusal is typed403 and waits cap at60seconds. Direct HTTP execute remains inline.
Native takeover must recognize the2.14 schema delta: idempotency_scope_hash and workflow_service_call_dispatches. That work stays with the Rust owner.
General has accepted the PHP Server adoption work from the Rust Server owner. The starting branch is rust-325-wip/workflow-2.14.0 at e44b894d6 (tree c325822d). The former owner has stopped edits to this branch.
Workflow 2.14.2 is published at d60ce5f60e70b834c5d4ef142c3d5dc415cd39fe. The installed-package receipt records registry identity, full-main qualification, 16 published Laravel upgrade cells, and 12 embedded Nexus scenarios using real worker processes. The separate retained-wait receipt covers normally installed SQLite, MySQL, and PostgreSQL applications.
General's next change will rebase onto current main, pin 2.14.2, require the resolved bridge to implement Contracts\ProtocolAwareWorkflowTaskBridge, and call completeForProtocol($taskId, $commands, WorkerProtocol::requestVersion($request)). The original two-argument complete() remains unchanged. Preserve protocol 1.20, the admitted caller/principal authority repair, the 60-second wait bound, and inline terminal-result/typed-failure expectations.
Acceptance still requires the actual published PHP/Python Nexus callers, registry-installed Rust Nexus profiles, and nested non-waiting workflow-update behavior. The Rust owner retains native takeover recognition of idempotency_scope_hash and workflow_service_call_dispatches. This handoff does not transfer #785, which remains with that owner through merge.
General's PHP adoption checkpoint is backed up on fix/784-workflow2142 at e3595d8928e8cceb619df59d59992887959109c0, tree 1f6f1d4b1378377deeebc9d8a5cd59effe9b53c0, including the #785 merge a3e0bab0.
The branch pins normally installed Workflow 2.14.2, source/dist d60ce5f60e70b834c5d4ef142c3d5dc415cd39fe. Completion resolves the base bridge, requires its protocol-aware role and calls completeForProtocol with the authenticated request's version. The two-argument package ABI stays intact. Server advertises and enforces its own 1.20 ceiling. The request-derived principal/caller authority repair, exact replay identity/policy checks and 60-second wait bound are preserved. The handed-off tests again require inline service completion and ServiceCallStarted below 1.21; a bridge without protocol context gets 503 and leaves the task leased.
The exact checkpoint's affected Nexus, catalog, worker-service, wait and package-floor tests pass 182 tests / 1,661 assertions on each of four engines: SQLite, MySQL 8.0.46, MariaDB 10.11.19 and PostgreSQL 17.11. Runtime: PHP 8.3.36, PHPUnit 11.5.55, published Workflow 2.14.2. Total: 728 tests / 6,644 assertions. The same six PHPUnit metadata deprecations are reported per run; there are zero failed cases/errors. The earlier focused PHP 8.5 pass was 169 cases / 1,474 assertions before #785 integration.
One cross-engine assertion was corrected: it now requires exactly the codec and blob fields with byte-identical values, independently of JSON member order. Payload-owner and foreign-observer refusal assertions remain intact. This was test portability, not a changed payload representation.
Source qualification is not a published Server image receipt. Next: normal PR CI, authority/protocol review, actual published PHP/Python Nexus callers, registry-installed Rust Nexus profiles and the nested non-waiting workflow-update guard, then qualified delivery/installed acceptance. The branch is backed up before opening another CI-heavy PR while #788's queue setup is still qualifying. Native schema takeover recognition remains Rust-owned.
General's three PHP handoffs are integrated in PR #791, head 9d7cd8fcba3dda8bcec984e7048d0ffa27566d00, tree 191e7b605a87daa79e88f74ffbd2bc962f3d141c, on top of merged queue support #788. Product source is unchanged from e90a244c9; the final commit corrects test compatibility and JSON member-order assumptions.
Adopt Workflow 2.14.x (service-operation authority, scheduling, wait bounds) #784 adopts the normally published Workflow2.14.2, preserves server protocol1.20, passes authenticated completion context through the optional protocol-aware bridge, preserves request authority/replay scope and caps waits at60seconds. Native2.14 schema recognition remains with the Rust owner.
Concurrent stream opens on different runs can deadlock on MySQL/MariaDB #787 removes missing-key stream gap locks while retaining existing-run serialization, primary-key current reads and quota admission. The actual prior1213 deadlock was reproduced on both MySQL and MariaDB; both concurrent appends now commit.
A run can reference an external payload that retention deleted after the start's claim #789 verifies references before mutation and claims them inside each actual outer writer commit, under canonical object locks acquired after ownership locks. A failed claim rolls back the writer and callbacks. Preparation, savepoints and request exit have explicit lifetimes. Materialized input reads follow the published commit-time claim contract. Run pruning also preserves schedule-owned shared inputs. This combined design supersedes the early component prototype's materialized-input behavior.
Qualification includes429 focused cases/5,123 assertions before the final test-only commit, with real competing actors on SQLite, MySQL8, MariaDB10.11 and PostgreSQL17. Final targeted real-commit checks pass14/116 on MariaDB and PostgreSQL. MySQL's original14-case run had one assertion failure caused solely by JSON object member order; all4 affected datasets pass36 assertions after correcting that assertion while preserving exact key count, values and types. The complete SQLite completion-upload class passes30/450. Two stale protocol-adoption tests discovered by the hosted3,242-case suite now pass2/34 locally. Changed PHP files pass Pint and diff checks. Existing6 PHPUnit metadata deprecations remain reported. Normally installed dependencies matching the lockfile are mounted read-only; no package source overrides are used.
Counterfactuals preserve the original all-four-engine start/prune data-loss reproduction, demonstrate premature preflight retention in the prior code, and show the prior cleanup deleting a schedule-owned object. The writer-wins and cleanup-wins outcomes, quota/stale-snapshot admission, savepoint ordering and callback rollback are covered without weakening fixtures.
Next: finish hosted CI on the exact PR head, fix any actual failures, merge through the protected queue, then publish the qualified PHP Server artifact and verify installed PHP/Python/Rust SDK and Nexus behavior. These issues stay open until that installed acceptance is recorded; source qualification is not release or deployment evidence. General owns this continuation so the Rust owner can continue native Nexus work.
Server 2.11.3 and chart 0.3.3 are published. Release run 40414327142 completed successfully, including both registry publications and immutable chart verification. Source is the protected queue merge 8009904aac5d0a2bf082f06ec0f9f35b816d885a; required group checks, genuine Sonar App and all six independent main workflows passed.
Both durableworkflow/server:2.11.3 and ghcr.io/durable-workflow/server:2.11.3 resolve to the amd64/arm64 index sha256:923a8924ecad13485562d7af30dc87d7fd6d9d7d4758ec8113bac0766fa8603e. Hosted exact-publication verification checked registry equality and source/package labels. Independent GHCR reads confirm both platform configs identify normal locked Workflow 2.14.2 / d60ce5f60e70b834c5d4ef142c3d5dc415cd39fe. Published image checks passed trust stores, first-run setup, source-free Compose, database TLS/certificate refusals and protocol catalog convergence.
Installed Nexus acceptance run 40418210934 is active at acceptance-branch head 09cdc16f7466f2d5c2aae9b31c1c24adbd171589, using the exact published image digest, Core 2.14.2, PHP SDK 3.5.1, Python SDK 2.11.2, CLI 2.3.0 and Waterline 2.13.0. Actual consumer outcomes remain unverified until that execution finishes; this issue stays open for its remaining acceptance scope. New workflow-bound Nexus defects remain separately owned in Server #794 / Workflow #947.
The first exact-published-tuple Nexus acceptance run 40418210934 finished failed. Server 2.11.3 / Core 2.14.2 / PHP SDK 3.5.1 / Python SDK 2.11.2 / CLI 2.3.0 / Waterline 2.13.0 were used; the image was pinned to published index sha256:923a8924ecad13485562d7af30dc87d7fd6d9d7d4758ec8113bac0766fa8603e.
The hosted check annotations establish:
All eight uncaught typed-failure caller/service/namespace observations qualify.
All four Python-caller authorization observations qualify. Four PHP-caller authorization observations time out waiting for the caller workflow after 30 seconds; the direct admin refusal remains HTTP 403 in every case.
All eight external recovery observations fail to observe the original call plus waiting linked service before the kill checkpoint. They do not prove recovery or reference access. A missing WorkflowFailed summary is insufficient to diagnose why.
The acceptance assertions and original budgets remain intact. Diagnostic run 40420956902 repeats the same published tuple at fixture head 1e12cdbc33d4d1ec0a32362088e5b9c8a53b3c8f, adding only bounded last-observed event types and worker diagnostics. The existing 13 evidence-reader checks and PHP/Python syntax checks pass. This distinguishes an obsolete fixture event expectation from an actual delivery defect before changing either behavior or the qualification contract.
Installed consumer acceptance remains open. The package/source lifecycle fixes in Server #794 / Workflow #947 remain unreleased and are not claimed by this published-image result. Release/image/chart publication itself passed; this result does not establish completion of the remaining acceptance work.
Activity
rmcdaniel commentedon Oct 26, 2026
General has accepted the PHP Server adoption work from the Rust Server owner. The starting branch is
rust-325-wip/workflow-2.14.0ate44b894d6(treec325822d). The former owner has stopped edits to this branch.Workflow 2.14.2 is published at
d60ce5f60e70b834c5d4ef142c3d5dc415cd39fe. The installed-package receipt records registry identity, full-main qualification, 16 published Laravel upgrade cells, and 12 embedded Nexus scenarios using real worker processes. The separate retained-wait receipt covers normally installed SQLite, MySQL, and PostgreSQL applications.General's next change will rebase onto current main, pin 2.14.2, require the resolved bridge to implement
Contracts\ProtocolAwareWorkflowTaskBridge, and callcompleteForProtocol($taskId, $commands, WorkerProtocol::requestVersion($request)). The original two-argumentcomplete()remains unchanged. Preserve protocol 1.20, the admitted caller/principal authority repair, the 60-second wait bound, and inline terminal-result/typed-failure expectations.Acceptance still requires the actual published PHP/Python Nexus callers, registry-installed Rust Nexus profiles, and nested non-waiting workflow-update behavior. The Rust owner retains native takeover recognition of
idempotency_scope_hashandworkflow_service_call_dispatches. This handoff does not transfer #785, which remains with that owner through merge.rmcdaniel commentedon Oct 26, 2026
General's PHP adoption checkpoint is backed up on
fix/784-workflow2142ate3595d8928e8cceb619df59d59992887959109c0, tree1f6f1d4b1378377deeebc9d8a5cd59effe9b53c0, including the #785 mergea3e0bab0.The branch pins normally installed Workflow 2.14.2, source/dist
d60ce5f60e70b834c5d4ef142c3d5dc415cd39fe. Completion resolves the base bridge, requires its protocol-aware role and callscompleteForProtocolwith the authenticated request's version. The two-argument package ABI stays intact. Server advertises and enforces its own 1.20 ceiling. The request-derived principal/caller authority repair, exact replay identity/policy checks and 60-second wait bound are preserved. The handed-off tests again require inline service completion andServiceCallStartedbelow 1.21; a bridge without protocol context gets 503 and leaves the task leased.The exact checkpoint's affected Nexus, catalog, worker-service, wait and package-floor tests pass 182 tests / 1,661 assertions on each of four engines: SQLite, MySQL 8.0.46, MariaDB 10.11.19 and PostgreSQL 17.11. Runtime: PHP 8.3.36, PHPUnit 11.5.55, published Workflow 2.14.2. Total: 728 tests / 6,644 assertions. The same six PHPUnit metadata deprecations are reported per run; there are zero failed cases/errors. The earlier focused PHP 8.5 pass was 169 cases / 1,474 assertions before #785 integration.
One cross-engine assertion was corrected: it now requires exactly the
codecandblobfields with byte-identical values, independently of JSON member order. Payload-owner and foreign-observer refusal assertions remain intact. This was test portability, not a changed payload representation.Source qualification is not a published Server image receipt. Next: normal PR CI, authority/protocol review, actual published PHP/Python Nexus callers, registry-installed Rust Nexus profiles and the nested non-waiting workflow-update guard, then qualified delivery/installed acceptance. The branch is backed up before opening another CI-heavy PR while #788's queue setup is still qualifying. Native schema takeover recognition remains Rust-owned.
rmcdaniel commentedon Oct 26, 2026
General's three PHP handoffs are integrated in PR #791, head
9d7cd8fcba3dda8bcec984e7048d0ffa27566d00, tree191e7b605a87daa79e88f74ffbd2bc962f3d141c, on top of merged queue support #788. Product source is unchanged frome90a244c9; the final commit corrects test compatibility and JSON member-order assumptions.Qualification includes429 focused cases/5,123 assertions before the final test-only commit, with real competing actors on SQLite, MySQL8, MariaDB10.11 and PostgreSQL17. Final targeted real-commit checks pass14/116 on MariaDB and PostgreSQL. MySQL's original14-case run had one assertion failure caused solely by JSON object member order; all4 affected datasets pass36 assertions after correcting that assertion while preserving exact key count, values and types. The complete SQLite completion-upload class passes30/450. Two stale protocol-adoption tests discovered by the hosted3,242-case suite now pass2/34 locally. Changed PHP files pass Pint and diff checks. Existing6 PHPUnit metadata deprecations remain reported. Normally installed dependencies matching the lockfile are mounted read-only; no package source overrides are used.
Counterfactuals preserve the original all-four-engine start/prune data-loss reproduction, demonstrate premature preflight retention in the prior code, and show the prior cleanup deleting a schedule-owned object. The writer-wins and cleanup-wins outcomes, quota/stale-snapshot admission, savepoint ordering and callback rollback are covered without weakening fixtures.
Next: finish hosted CI on the exact PR head, fix any actual failures, merge through the protected queue, then publish the qualified PHP Server artifact and verify installed PHP/Python/Rust SDK and Nexus behavior. These issues stay open until that installed acceptance is recorded; source qualification is not release or deployment evidence. General owns this continuation so the Rust owner can continue native Nexus work.
rmcdaniel commentedon Oct 26, 2026
Server 2.11.3 and chart 0.3.3 are published. Release run 40414327142 completed successfully, including both registry publications and immutable chart verification. Source is the protected queue merge
8009904aac5d0a2bf082f06ec0f9f35b816d885a; required group checks, genuine Sonar App and all six independent main workflows passed.Both
durableworkflow/server:2.11.3andghcr.io/durable-workflow/server:2.11.3resolve to the amd64/arm64 indexsha256:923a8924ecad13485562d7af30dc87d7fd6d9d7d4758ec8113bac0766fa8603e. Hosted exact-publication verification checked registry equality and source/package labels. Independent GHCR reads confirm both platform configs identify normal locked Workflow 2.14.2 /d60ce5f60e70b834c5d4ef142c3d5dc415cd39fe. Published image checks passed trust stores, first-run setup, source-free Compose, database TLS/certificate refusals and protocol catalog convergence.Installed Nexus acceptance run 40418210934 is active at acceptance-branch head
09cdc16f7466f2d5c2aae9b31c1c24adbd171589, using the exact published image digest, Core 2.14.2, PHP SDK 3.5.1, Python SDK 2.11.2, CLI 2.3.0 and Waterline 2.13.0. Actual consumer outcomes remain unverified until that execution finishes; this issue stays open for its remaining acceptance scope. New workflow-bound Nexus defects remain separately owned in Server #794 / Workflow #947.rmcdaniel commentedon Oct 26, 2026
The first exact-published-tuple Nexus acceptance run 40418210934 finished failed. Server 2.11.3 / Core 2.14.2 / PHP SDK 3.5.1 / Python SDK 2.11.2 / CLI 2.3.0 / Waterline 2.13.0 were used; the image was pinned to published index
sha256:923a8924ecad13485562d7af30dc87d7fd6d9d7d4758ec8113bac0766fa8603e.The hosted check annotations establish:
The acceptance assertions and original budgets remain intact. Diagnostic run 40420956902 repeats the same published tuple at fixture head
1e12cdbc33d4d1ec0a32362088e5b9c8a53b3c8f, adding only bounded last-observed event types and worker diagnostics. The existing 13 evidence-reader checks and PHP/Python syntax checks pass. This distinguishes an obsolete fixture event expectation from an actual delivery defect before changing either behavior or the qualification contract.Installed consumer acceptance remains open. The package/source lifecycle fixes in Server #794 / Workflow #947 remain unreleased and are not claimed by this published-image result. Release/image/chart publication itself passed; this result does not establish completion of the remaining acceptance work.