Conversation
|
Connected Python/Server source qualification now passes eleven SQLite cases at Python The current default remains protocol 1.19. Explicit source candidate protocol 1.20 now discovers the capability through the same policy used for request admission. Python's normal suite passes 1,618 local tests, Ruff and strict mypy. Server's affected filter passes 145 tests and 5,165 assertions, with Pint passing. Normal Python CI, Server CI and an explicit exact-pair MySQL qualification are running. The candidate run's three supported Python, package, corpus and lint jobs pass. It retains connected JUnit evidence and removes its stack. Next: finish those source gates, then PHP/Rust equivalents, coordinated protocol/specification activation and the exact published service tuple. These source drafts do not authorize a published cooperative capability claim. Completed local task resources are being removed. |
Connected Python qualification completeAt Python Full scenario evidence covers original identity/deadline/one marker, a discarded successful delivery response, real SIGKILL and cold process replacement, local async/synchronous and remote fencing, shutdown grace/expiry, waiting timer, deadline and termination. Local SQLite passes all eleven cases. All local task containers, worktrees, dependencies, proofs and images are removed. Downloaded CI reports and transport files are removed after this handoff. Server's source/corpus CI passes 2,279 tests and 47,800 assertions. MySQL replay/query topology passes. Polling bounded-growth smoke remains running. Both PRs remain drafts and default protocol remains 1.19. Next: PHP/Rust request, delivery, canonical replay and shielded cleanup parity, remaining backend concurrency, coordinated specification/capability activation and the exact published Server/SDK tuple. No published cooperative capability is authorized by these source-only results. |
Remote activity observation qualified at
|
|
The cooperative Server candidate now consumes published Workflow 2.3.1 at Workflow's complete source matrix and all 16 published Laravel/PHP upgrade combinations pass. Server #292 is separately qualifying stable image 2.4.35. A focused ordinary-protocol signal drill reproduces the expired-workflow/older-active-activity defect on published Server 2.4.34 and PHP SDK 2.1.6, so this repair also affects existing service callers. The entire Python candidate CI is dispatched at unchanged Python |
Heartbeat ownership interleaving reproduced and fixed at sourceThe ordinary protocol 1.19 regression fails against unchanged main Observed baseline: {"heartbeat":{"workflow_task_attempt":1,"lease_owner":"original","renewed":true},"replacement_claim":{"workflow_task_attempt":2,"lease_owner":"replacement"}}The same Native task ID was present in both responses. The positive heartbeat therefore identified a claim that no longer owned the task. The fix in #294 head Cooperative cancellation draft #291 carries the same locked renewal, plus the pending observation read inside that transaction, at Normal CI is running for both heads. This source result does not claim a published image or Cloud deployment. Next finish exact-head CI/review, publish Server 2.4.36/Helm 0.1.132 independently of cooperative cancellation and verify the affected published worker cells. Rust coordinator qualification then uses the requalified #291 head. Default protocol 1.19 and ordinary capabilities remain unchanged. |
Published Server 2.4.35 reproduces the ownership defectThe same committed regression ran inside the unchanged published Server image The two actual HTTP kernels reproduce: {"heartbeat_status":200,"heartbeat":{"workflow_task_attempt":1,"lease_owner":"original","renewed":true,"reason":null},"replacement_claim":{"workflow_task_attempt":2,"lease_owner":"replacement"}}Both responses identify the same actual Native task. The unchanged published image therefore fails the ownership assertion, with 16 assertions reached. SQLite clocks and an IPC barrier control the interleaving; the harness does not edit any lease, owner or attempt row. The original full CI result exposed an overly strict test assertion, not a valid positive acknowledgment. PHP 8.3 uses deferred SQLite transactions even when Next complete revised-head CI and review, publish Server 2.4.36, repeat this exact-image regression and verify the published PHP/Python/Rust lifecycle tuple before closing #293. |
…ellation-service # Conflicts: # app/Http/Controllers/Api/WorkerController.php
|
The ordinary-protocol heartbeat ownership fix has shipped independently as Server 2.4.36, and #293 now has exact published before/after regression and published PHP/Python/Rust lifecycle evidence. This draft incorporates merged main at Local formatting and the focused ownership/cancellation cases pass 25 cases and 565 assertions. Exact-head feature CI passes 2,302 cases and 48,041 assertions. Boundary and replay/query checks pass. Polling smoke is still running at this handoff, so no completed all-checks claim is made yet. Next product action remains Rust #55's real claim/heartbeat cancellation carrier, canonical delivery refresh and replay coordinator, including callback ownership, replacement and physical lifetime checks. Candidate Server/Native and per-language connected gates must use the updated exact source tuple before the final published tuple is released. This stable heartbeat patch does not qualify or activate cooperative cancellation. |
|
The updated Server cancellation draft head Rust #55 has advanced to Next action remains connecting that carrier to the Rust delivery/canonical-refresh/replay coordinator, preserving earlier command prefixes and proving committed delivery before application cancellation. The connected language and physical callback lifetime/ownership/replacement gates remain required before cooperative release or activation. Published Native remains Workflow 2.3.1. |
Pending cancellation remains runnable after a command prefixThe real Rust Worker qualification found a missing Server successor. At Server Fixed in Two regression cases cover request before and after claim, two prefix side effects, repeated completion rejection, a different successor owner, delivery at sequence 3, and no leftover runnable task after terminal cancellation. Raw counterfactual on the preceding Server head: Focused protocol suite after the fix: Local feature/Nexus/corpus/OpenAPI run: The local run omits nine external-service cases. Full Server CI supplies those services and is running. Exact-candidate connected qualification is also running for Rust, PHP, and Python. Next: inspect those results, address any remaining actual Worker/recovery failures, then qualify the complete published tuple before activating the capability. This PR remains a draft. Default Worker protocol remains 1.19. |
Current source qualificationServer All current normal gates passed:
Connected source checks use this exact Server commit and published Workflow 2.3.1:
Shared recovery and replay gates and complete published-tuple qualification remain open. This remains a draft. Published artifacts and ordinary Worker defaults remain unchanged. |
|
Candidate 7675ab9 now pins the freshly published Workflow 2.3.3 at 70d4fe48efd7dd796c35c1078b3d5ac43f738f4f. Only that package changed in the lockfile. The Native repair fix passed its full merged-source matrix, published Laravel upgrade gates and a separate fresh Composer install (15 repair tests, 117 assertions). PHP/Python/Rust connected source qualification has been dispatched against this exact Server candidate. This checks the existing candidate behavior. The required published mixed-language 30 second cascade and stronger cancellation model remain open in shared issue 136 and Native PR 603. No cooperative protocol publication or Cloud deployment is claimed. |
|
Exact candidate 7675ab9 with published Workflow 2.3.3: Rust connected source qualification passed all 14 cases (run 36920369742), and Python connected integration passed with its existing CLI-availability skip (run 36920366894). PHP run 36920364544 passed durable deadline closure but failed worker shutdown in one cleanup-expiry case (15/16, 555 assertions). The original callback and relay stopped and the workflow closed 0.852 seconds later. PHP then treated expected claim expiry as an execution failure. PHP PR 91 is correcting this authority-loss handling before qualification is repeated. No claim of a qualified published mixed-language cascade is made. |
Parent claims park while child cleanup finishesHolding a parent's workflow claim while awaiting child cancellation could occupy Local source checks:
PHP source is |
Customer outcome
Add service workflow cooperative cancellation under shared issue 136, with Native PR 603 and the first-party SDK drafts. Existing terminal operations preserve their recorded behavior.
Implementation
delivered: falseandclaim_released: true. Canonical child terminal history wakes the successor task.cancellation_policythrough HTTP completion and Native normalization. Refuse cooperative child/parent-close policies when the server/request protocol, immutable claim capability or installed runtime cannot honor them. Recheck admission under the actual completion lock. Diagnostics name the unavailable component and worker.callback_state: unknown. Late receipt remains late. Local callbacks require their separate workflow claim authority.request_cancelon its older protocol path. Candidate worker OpenAPI is version 27, with protocol defaults unchanged.Current verification
Current Server source:
dae9bb04d1828b0d45fa8d65ebe0a94d2d555937, based on Server 2.4.38 / chart 0.1.134 and pinned published Native 2.3.3.Local source binding against Native
94aabbc3b57fe331f1305ab4539b1818a81f3f2cpasses 134 tests / 1,670 assertions, no errors, failures or skips. It includes
receipt identity, duplicate and late behavior, read-only observation, stale result
refusal, immutable registration and protocol claims, namespace/owner/attempt/request
fences, storage draining/fencing, legacy protocol and operator-role refusal.
The receipt regression now checks run inspection and diagnostics remain HTTP
200, and stale completion/failure remain HTTP 409 without adding history.
Native corrects the exhaustive timeline summary that failed in the preceding
connected runs. Current feature CI,
replay/query HTTP
and growth/polling smoke
all passed. Corrected connected source qualification completed in
PHP and
Rust.
PHP passed 18 / 815 plus memo restart 1 / 67. Rust passed 13 of 14 cases.
Its remaining fixture now waits for the valid asynchronous late stop receipt
before comparing full history after stale publication. The
corrected Rust run
passes all 14 cases in 348.24 seconds. Both connected jobs removed their
test stacks successfully. The normal dependency is still published Native 2.3.3.
Preceding affected polling/fence/retrier tests pass 22 / 332. Pint checked all eight
affected PHP files and formatted five blank lines, followed by another passing
134 / 1,663 run. The normal dependency remains published Native 2.3.3 and returns
explicit installed-runtime refusal for the candidate receipt primitive.
Preceding exact-head
546b1ca456b7d31bee1e8cd4a563da61fc584ce8feature and repository gatespass 2,326 tests / 48,335 assertions, with six existing PHPUnit deprecations and
six receipt cases requiring the candidate Native backend. Those six cases all run
in the passing source binding above. OpenAPI evolution 23 → 27 passes.
Concurrent replay/query HTTP
also passes. Bounded growth and polling smoke
also passes, including both the polling smoke and bounded-growth contract.
Exact-head affected feature CI and concurrent replay/query HTTP checks passed. Local source-binding qualification against Native
2b308d33389fdb0cf9d0a9d868b90cd5c5d5f35dpassed 45 tests / 868 assertions, including the actual HTTP policy-to-history path, immutable old claim refusal, protocol floor and legacy policy. Pint and OpenAPI evolution 23 → 26 passed. Native's subsequenta3147d13c2ca5df8485056da2e47806c61ca4f7achanges two test comparisons only. The published Native 2.3.3 dependency has no child-policy implementation, so this source intentionally refuses that feature until qualified backend adoption. Connected published-image qualification remains required.Connected single-worker child waiting passes at PHP
509a9daf04aa7254179fa4041f78414f8b00a93a, Servereafa77721b6840234e0de11e18a4a2aa10deb299and Nativea3147d13c2ca5df8485056da2e47806c61ca4f7a: MySQL/Redis 18 cancellation cases / 700 assertions and memo restart 1 / 67. A live worker and an actual SIGKILL/fresh-registration replacement both complete child cleanup before parent delivery within the original 30 second budget. Raw source provenance, histories, HTTP delivery observations and JUnit are retained by that run. It predates the new callback-stop receipt.Preceding connected gates against Server
7675ab976c7c24b7aadfc940fd8930ef2e907a7c/ Native 2.3.3 passed PHP 16 cases / 552 assertions, Python 19 cancellation cases and Rust 14 actual-worker cases.Required before publication
The exact-head bounded-growth and polling smoke also passed. The affected feature run completed 2,310 tests / 48,221 assertions with six existing PHPUnit deprecations and no failures or errors.
Emit the remote receipt from SDKs only after actual callback stop/join, qualify it through connected workers, add local receipts and activity operation policies, and build one cascade inspection view. Continue mixed-language policy/context qualification and the complete PHP parent / Python child / Rust remote activity / PHP local activity published scenario, including cleanup SIGKILL and recovery within the original 30-second budget. Freeze and publish the shared specification, then verify exact artifact digests.
This stays a draft. Default protocol is 1.19. 1.20 is an explicit, unfrozen source opt-in. No cooperative RC or Cloud adoption is claimed.