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. |
|
Prepared-local Server source qualification is now verified at SQLite, MySQL and PostgreSQL each passed 28 tests / 2,396 assertions with zero errors, failures or skips. The SQLite affected regression group passed 228 tests / 2,722 assertions. The MySQL run exposed JSON key order affecting a persisted worker process identity. The correction keeps strict fields, types and values while ignoring object key order, with negative fencing checks on every database. Source run and retained raw evidence. Next: connect the SDK local supervisors to this admission, original-attempt control and same-claim history refresh. This draft remains protocol 1.20 source work, with default 1.19 unchanged. These fixtures do not prove physical callback termination or the published mixed-language +30-second cleanup/SIGKILL scenario. |
|
Prepared cleanup and application heartbeat foundation is now source-qualified.
Cleanup admission now requires canonical request/delivery proof and a later authored sequence. Runtime-owned identity and original deadline survive retry and cold recovery. Supervisor control renews both leases without application heartbeats or fixed deadline changes. Actual application heartbeats are separate, deadline-bounded writes that renew neither lease. Server also refuses stale-registration cleanup publication after cancellation is accepted. Commands are retained in the source CI: Native's explicit Next action: wire PHP prepared replay to explicit cleanup proof, distinguish acknowledged application heartbeat deadlines from fixed execution/root budgets, then activate the actual local supervisor. These fixtures qualify backend and HTTP authority. Physical callback stop and the exact published 30-second mixed-language cleanup/SIGKILL cascade remain required. Both PRs remain drafts, default protocol remains 1.19, and #136 remains open. |
Prepared local payload draining qualificationServer source: The prepared completion schema is advertised only when explicit protocol 1.20 and the actual bound optional Native role support it. Checkpoint, preparation, recovery and outcome slots keep their stable operation identity and share one original workflow claim's byte and slot allowance with legacy completion uploads. New uploads require the original issued worker registration, current workflow epoch and live authority. Outcome uploads additionally check the admitted local attempt and all fixed execution deadlines. Accepted cancellation fences old ordinary callback results. Cleanup remains bounded by the original root deadline. Uploads do not renew workflow/activity leases or record application heartbeats. An exact stored reference can be read after completion without rewriting objects, budgets or retention. The API scenarios exercise external prefix, arguments, recovery and result bytes through successful workflow completion, and shielded external cleanup through Cancelled. Refusal cases cover stale registration, absent prepared capability, wrong namespace/owner/epoch, unknown attempt, default protocol, expired activity/root deadline and exhausted shared allowance. The test-only follow-up normalizes JSON reference objects through the existing strict reference validator. MySQL can reorder object keys without changing their values or types. Assertions for unchanged object and budget rows remain strict. Source qualification job passed 40 tests / 3,831 assertions on each of SQLite, MySQL and Postgres, with zero errors, failures or skips. The affected SQLite regression suite passed 303 / 3,195, also with zero errors, failures or skips. The job checked and retained the exact Server/Native source provenance. Raw provenance, JUnit and logs are retained for 90 days. JUnit SHA-256: SQLite Repository contracts, central action policy, current locked-package feature CI, replay/concurrent HTTP and public-boundary checks passed. The full source-dispatch run also passed its locked-package feature and source qualification gates. Performance smoke passed, including its source qualification gate. PHP consumer CI is fully passing, as recorded in SDK PR #91. Worker OpenAPI specification version advances from 29 to 30. Default published protocol remains 1.19. This is source qualification. Physical prepared SDK callback supervision and the published mixed-language 30-second cleanup/SIGKILL cascade remain the next required integration. |
|
Atomic prepared local group admission is Source qualified at Server Three-database Source CI passes 53 tests / 5,046 assertions on each of SQLite, MySQL and PostgreSQL, plus 303 tests / 3,207 assertions in the affected SQLite regression suite. All have zero errors, failures or skips. Raw provenance, JUnit and logs are retained for 90 days. Locked-package feature CI, concurrent HTTP/replay, performance smoke and both public-boundary checks pass. Local prepared HTTP/OpenAPI/completion-context qualification passes 108 / 5,297, and formatting passes. Coverage includes every child/local sibling scheduled before preparation, immutable duplicate receipts and total deadlines, original issued group capability, namespace isolation, partial/terminal group and closed-descriptor refusal, whole-batch quota rollback, replacement claim before the first local attempt, shielded multi-local cleanup with one canonical delivery and original budget, external-payload draining through one original claim allowance, storage fencing and typed search-history updates after group checkpointing. This adds transport/admission behavior using the existing Avro and payload-reference validators. The wire codec is unchanged. Source OpenAPI 1.20 advertises the additional group role only when the actual installed backend supports it. Native's current head These are HTTP/backend fixtures. PHP's managed concurrent group consumer is in progress in sdk-php#91. The exact published PHP parent → Python child → Rust remote activity plus PHP local activity, physical stop, cleanup SIGKILL, replacement replay, original +30-second convergence and one cascade view still gate shared issue #136. This PR remains draft. No release or Cloud rollout has occurred. |
Current Native binding qualificationServer head remains Both PHP connected group cases pass locally on this pair, with PHP Exact three-database Source qualification and exact connected PHP qualification are running. The published tuple and default protocol remain unchanged. This PR stays a draft, and shared issue 136 remains open for its full mixed-language customer outcome. |
Current prepared-local Source pair qualifiedSource qualification 36996624733 passes all gates at Server Prepared-local protocol and poll-fence cases pass 53 tests / 5,046 assertions on each of SQLite, MySQL and PostgreSQL, with zero errors, failures or skips. Affected cancellation, worker, payload, schema and capability regressions pass 303 / 3,207, also with zero errors, failures or skips. Locked-package feature CI passes separately. Raw database JUnit, logs and source provenance are retained for 90 days. JUnit SHA256:
Native head |
Detached Activity retention Source qualificationServer Retention now asks Native for canonical detached-activity closure before either run-detail pruning or external-payload reclamation deletes data. Pending/running work retains the original bytes. Changing only a mutable activity status to Completed does not release the hold. A canonical terminal event for the latest attempt does. An older installed Native preserves the newer history and payloads with
Each database includes the complete retention suite, 30 cases / 297 assertions. The new case checks pending and running detached operations, object-store bytes, the mutable-status negative case and canonical release. Local locked-package fallback also passes 1 / 38, zero errors, failures or skips. Affected Pint passes. Separate locked-package PR CI 37023190620 passes the repository contracts and 2,376 cases / 48,461 assertions, zero errors or failures, 50 existing skips and six existing PHPUnit deprecations. Candidate Source does not replace that gate. Raw JUnit, logs and exact source provenance are retained until 2026-12-31. Artifact SHA-256: JUnit SHA-256:
Commands and the read-only Native source overlay are in This qualifies retention integration for the internal Source remote Activity lifetime. It does not admit public SDK Activity policies, prove physical callback exit or qualify local Abandon. This PR remains a draft and shared issue 136 stays open. Next work connects operation policy admission, complete local lifetimes and the required published mixed-language cascade with its coherent inspection view. |
Pending Activity cancellation reply qualified on SourceExact Server Native can park cancellation delivery while an activity stop acknowledgment is outstanding. Server now returns HTTP 200 for that known pending response only when the workflow claim was explicitly released. Child pending responses retain the same rule. Other refused replies retain their error status. The worker OpenAPI is version 31 and documents both pending reasons. Published protocol 1.19 and its frozen fixtures remain unchanged. The HTTP regression exercises child, remote Activity and prepared local Activity pending replies. It verifies the release, validates the schema and confirms that no canonical cancellation delivery event has been written yet. The preceding controller returns 409 for both Activity cases. The correction passes 3 cases / 195 assertions in the retained affected suite. This is route-contract proof, with the Native pending outcome injected at that boundary. Exact Source CI passes every required job. Its isolated source selection passes 83 cases / 5,343 assertions on each of SQLite, MySQL and PostgreSQL, plus 305 affected cases / 3,337 assertions, with zero errors, failures or skips. The affected suite includes 31 cooperative protocol cases / 747 assertions and the OpenAPI contract checks. The retention regression remains covered on all supported databases. Separate locked-package CI passes 2,378 cases / 48,587 assertions, zero errors or failures, with 50 existing skips and six existing PHPUnit deprecations. The locked-package lane does not claim the optional Native source bridge. Commands are retained in the exact CI logs. The Source lane runs Raw source evidence and provenance are retained until 2026-12-31. Artifact SHA256
Hosted test containers were removed successfully. PHP, Python and Rust validators are qualifying the matching response on this tuple. The next product step is explicit portable Activity policy admission, then actual policy scenarios. This response correction does not itself add Activity policy authoring or prove the published mixed-language cascade. This PR remains draft and shared issue 136 remains open. |
Remote Activity policy admission qualified on SourceExact Server Explicit remote Activity policies now require protocol 1.20, the original claim's cooperative capability and an installed bridge that implements their canonical semantics. Unsupported requests return Exact Source CI passes every required job. The prepared-local, retention and fencing selection passes 83 cases / 5,343 assertions on each of SQLite, MySQL and PostgreSQL, with zero errors, failures or skips. The affected SQLite regression suite passes 311 / 3,376, including cooperative protocol checks 37 / 786. The new HTTP admission cases are in the affected SQLite suite. Native's seven new canonical admission cases separately pass on both MySQL and PostgreSQL. Ordinary exact-head locked-package CI passes 2,384 cases / 48,637 assertions, with zero errors or failures, 50 existing skips and six existing deprecations. Its service cleanup passes. Local PHP 8.4 Source route and OpenAPI checks pass 50 / 930, with zero errors, failures, warnings or skips. Separate locked-runtime fallback checks pass 6 / 46, verifying explicit unsupported-runtime diagnostics and no scheduling side effects. Affected Pint passes. Commands: Raw Source JUnit, logs and provenance are retained until 2026-12-31. Artifact SHA256
Next: qualify SDK authoring, immutable policy replay and actual worker policy scenarios against this tuple. Explicit local policies, independent local Abandon lifetime, scopes, coherent cascade inspection and the exact published mixed-language scenario remain required. This PR stays draft and shared issue 136 remains open. Protocol 1.20 stays explicit and unfrozen. Published artifacts are unchanged. |
Next implementation: one inspectable cancellation cascadeThis is the next implementation step after the mixed Source recovery case. It is planned, not implemented or qualified. The existing Server run diagnostics omit the cancellation cascade. Native retains the canonical request, delivery, propagation and stop receipts. WorkflowCancelled currently records a human-readable reason for successful cleanup versus deadline expiry, without a separate structured cleanup outcome. Waterline's service detail already consumes Server run diagnostics. CLI's Native and Server
CLI and WaterlineRender that same contract in CLI human output and Waterline embedded/service detail. Show the original deadline, root and child identities, callback stop evidence, worker loss/replacement and cleanup outcome together. Keep JSON usable for automation. State safe recovery actions from the observed state, including whether work is still expected to recover or was explicitly abandoned. VerificationExercise real canonical completion and expiry, multiple levels, independent Abandon, conflicting roots, pruned/missing receipts, namespace isolation and query/response bounds. Verify SQLite, MySQL and PostgreSQL where the affected surfaces support them. Check CLI human/JSON and embedded/service UI parity. Extend the mixed PHP/Python/Rust case to inspect the coherent API view during cleanup and after replacement, with the unchanged original 30-second budget. The final published case must verify the UI/API view as well as the runtime cascade. Issue 136 remains open until the complete published outcome and competitive evidence are demonstrated. |
Cancellation cascade diagnostics implemented, exact-head CI pendingServer Native Local PHP 8.3.35 qualification in an ephemeral Docker container as UID/GID 1000:1000 passes:
The six new API cases execute real request, claim, delivery and completion routes. They verify original budget and duplicate identity, child propagation from either selected run, completed cleanup versus deadline expiry, missing canonical request history, related namespace isolation and historical selection. Debug reads do not mutate canonical history. The latter two cases use deliberately inconsistent relationship/current-pointer fixtures to test read authorization and selection, not to claim execution behavior. Exact command for the full local Source selection: php vendor/bin/phpunit tests/Feature/PreparedLocalActivityProtocolTest.php tests/Feature/HistoryRetentionTest.php tests/Unit/WorkerPollFenceTest.php tests/Source/CancellationCascadeDiagnosticsTest.php tests/Feature/WorkflowDebugTest.php --fail-on-skipped --log-junit /evidence/server-source-all.xml --colors=neverSource CI executes that selection on SQLite, MySQL and PostgreSQL with the immutable Native commit input. Ordinary feature CI retains published Native 2.3.3. Local Source JUnit SHA-256 is Next: verify hosted raw evidence, render the same contract in CLI and embedded/service Waterline, and extend the mixed Source recovery case to inspect it during cleanup and replacement. All candidates remain drafts. Shared issue 136 remains open. Published artifacts and default worker protocol 1.19 are unchanged. |
Cancellation cascade diagnostic API qualified at the exact Server/Native tupleServer Both current-run and exact-run debug endpoints now include the same canonical cancellation cascade view. Installed-runtime support is separate from absence of a request. Original root identity and deadline, local identities, child propagation, recorded delivery, cleanup outcomes, matching stop receipts and lease recovery are inspected together. Historical selection and namespace authorization are preserved. Diagnostics do not mutate cancellation state or infer callback exit from a fence. Raw hosted results
Ordinary feature CI also reports six existing PHPUnit deprecations. The new API cases cover original budget through duplicate and completed cleanup, child propagation viewed from either run, deadline expiry, missing canonical history, related namespace isolation and exact historical selection. Both deliberate inconsistent fixtures test read authorization and selection, not runtime execution. The Source selection runs prepared locals, retention, poll fencing, cascade diagnostics and existing debug cases with Raw JUnit, database logs and immutable source provenance are retained until December 31, 2026. Provenance matches both exact commits. Archive SHA-256 is
Next customer-facing stepCLI human/JSON rendering is implemented and passes its local full suite. Exact-head CLI build qualification follows. Waterline embedded/service parity and the updated real mixed Source recovery case will inspect this API during cleanup, replacement and final closure. The previous mixed case names an older Native/Server tuple and does not qualify this API. Published/default protocol 1.19 and all published artifacts are unchanged. Shared issue 136 stays open until its complete published cascade and fair competitive evidence are demonstrated. |
Next cancellation diagnostics correctionThe updated exact mixed Source qualification passed against Server
Raw artifact, file |
Historical repair finding corrected, full qualification pendingServer
Real HTTP debug API cases reproduce the defect on completed and cancelled runs: 3 cases / 29 assertions, two failures against preceding Server The complete affected debug API file now passes 15 cases / 200 assertions, with zero errors, failures or skips, against locked published Native 2.3.3. Scoped Pint and whitespace checks pass. The tracked Composer lock is unchanged.
Source 37074355176 binds Native The complete mixed-language Source pass retains preceding Server Next: inspect exact current Source/ordinary gates and retain raw results, remove task dependencies and scratch, then settle remaining model decisions and competitive/published qualification. PR 291 remains draft, shared issue 136 remains open, candidate protocol 1.20 remains unfrozen and published/default 1.19 is unchanged. |
Historical repair finding corrected and qualifiedServer
Real HTTP debug API cases reproduce the defect on completed and cancelled runs: 3 cases / 29 assertions, two failures against preceding Server The complete affected debug API file now passes 15 cases / 200 assertions, with zero errors, failures or skips, against locked published Native 2.3.3. Scoped Pint and whitespace checks pass. The tracked Composer lock is unchanged.
Source 37074355176 binds Native Ordinary locked-package CI 37074348861 passes 2387 / 48674, with 50 existing skips, six existing deprecations and zero errors or failures. Repository contracts, concurrent query HTTP, bounded-growth and polling-cache smoke, and public-boundary checks pass. All required current-head hosted gates are green. Raw three-database Source evidence and perf smoke artifacts are retained until December 31, 2026.
The complete mixed-language Source pass retains preceding Server Next: settle remaining model decisions and competitive/published qualification. Dependencies have been removed, and disposable qualification scratch will be removed after record verification. PR 291 remains draft, shared issue 136 remains open, candidate protocol 1.20 remains unfrozen and published/default 1.19 is unchanged. This Server component pass does not replace the exact published mixed-language/UI closure gate. |
Next Server local-policy admission and replacement compatibilityNative Implement the following on the existing Server branch:
Qualification must run real API cases against the exact Native source on SQLite, MySQL and PostgreSQL. Include positive TryCancel/Wait admission, older backend discovery/refusal, old claim plus re-registration, incompatible replacement and unchanged publication authority/history after refusal. Keep ordinary locked-package API tests green. Then add PHP/Python/Rust authoring/replay and connected supervisor checks before publishing this capability. Existing Server |
Prepared local cancellation policies bound to issued worker authorityServer Discovery reads the actual installed bridge's optional policy list. Older optional-role bridges and default protocol 1.19 advertise an empty list. The new worker capability Atomic group admission checks every explicit local policy before any sibling is created and rechecks within the serialized mutation. Replacement claims check canonical local Scheduled policy before probing and under the existing run lock. An incompatible worker cannot replay that policy. Expired-lease maintenance can still record its repair request without admitting work to that worker. Omitted policy preserves historical admission and legacy replacement. Local Abandon and null are refused. Local PHP 8.4.26 / locked Laravel 13.34.0, isolated SQLite results:
The new cases include a backend that supports only one policy, response-loss retries, changed-policy refusal, old claim versus re-registration, refusal before malformed payload resolution, no partial group writes, and actual API replacement/recovery with unchanged total lifetime. They validate durable admission and claim authority, not physical SDK callback stops. Confirming scoped Pint and whitespace checks pass. Tracked Composer lock remains SHA-256
Three-database Source 37079106466, ordinary locked-package CI 37079089323, query HTTP and performance are running. Hosted qualification is pending. The ordinary lane retains published Native 2.3.3. OpenAPI document revision 33 describes this unfrozen candidate without changing default/published protocol 1.19. Next: inspect and retain exact hosted outcomes, then qualify PHP/Python/Rust authoring, replay and physical supervisors for these policies. The earlier successful mixed Source cascade retains its older exact tuple. Shared issue 136 stays open and the PR stays draft. Published artifacts/UI, the required original-budget mixed-language crash recovery outcome and demonstrated fair competitive advantage remain closure gates. |
Prepared-local policy admission passes exact hosted qualificationServer Ordinary locked-package CI 37079089323 retains published Native 2.3.3 and passes 2,387 / 48,736, with 50 existing skips, six existing deprecations and zero errors/failures. Repository/central contracts, query HTTP, performance bounded-growth/smoke and public boundaries pass at this head. The tests qualify installed-backend policy discovery, original-claim capability admission, refusal before payload resolution, atomic group checks, canonical history compatibility, legacy omission, response-loss retries and replacement recovery without extending total lifetime. A restricted backend cannot replay a policy it does not implement. Local Abandon/null are refused. The claim filter preserves legitimate expired-lease maintenance. SDK authoring and physical supervision require their separate connected qualification. Raw Source artifact 11257738182, retained until 2026-12-31, includes all three logs/JUnit files, affected-regression JUnit and exact source provenance.
Next: PHP's policy authoring/replay/supervisor consumer, then Python/Rust consumers and the exact mixed original-budget recovery/UI qualification. The earlier successful mixed Source case retains its preceding exact tuple. Shared issue 136 remains open, this PR remains draft, protocol 1.20 is unfrozen and published/default 1.19 is unchanged. Exact published artifacts and a fair demonstrated competitive advantage remain required. |
Customer outcome
Expose cooperative cancellation, prepared local execution and one coherent cascade diagnostic for shared issue 136. Preserve the original request identity, delivery and deadline through worker replacement. Keep this PR a draft until the complete model and exact published mixed-language cascade are qualified.
Implementation
Current exact-head qualification
Server
dd8996fdd6d488b48d575b1b934821bd8bedc8edbinds explicit prepared-local policies toprepared_local_activity_cancellation_policieson the original issued workflow claim. The capability requires cooperation, prepared-local support and protocol 1.20. Discovery uses the actual installed optional policy list. Admission checks precede payload resolution and partial group writes, and are repeated under mutation authority. Replacement polling checks canonical Scheduled policy before probing and under the run lock. Omission preserves legacy admission/replacement. Re-registration cannot upgrade old claims. Default protocol 1.19 and older optional-role bridges advertise no explicit local policies.Local new HTTP cases pass 18 / 240, the complete Source lane 122 / 5905, affected regressions 311 / 3376, and OpenAPI/workflow/evolution contracts 27 / 264, all with zero errors, failures or skips. PHP 8.4.26, locked Laravel 13.34.0, isolated SQLite. Confirming scoped Pint and whitespace checks pass. Tracked Composer lock remains unchanged. Three-database Source 37079106466, binding qualified Native
ba1aa4770c4b94533548bd45bd3ba028229c54e8, passes 122 / 5905 on each of SQLite, MySQL and PostgreSQL, including all 18 new cases without skips. Affected SQLite 311 / 3376 passes. Ordinary locked-package CI 37079089323 retains published Native 2.3.3 and passes 2387 / 48736 with 50 existing skips, six existing deprecations and zero errors/failures. Contracts, query HTTP, performance bounded-growth/smoke and public boundaries pass. Raw Source provenance and results are retained until December 31, 2026. Physical SDK qualification remains separate.Preceding historical task diagnostics qualification
Server
172dedb57a71629048fc145175d21eb626bf386dcorrects the generic historical repair warning found in the final mixed cascade response. The existingTask Historybadge now produces an informationaltask_recovery_historyfinding with a useful explanation. Active/unclassified task problems retain warnings, and active replay failure retains its error. Task/failure records and cascade evidence are preserved.Two real debug API cases reproduce the earlier warning on completed and cancelled runs. The complete affected file passes 15 cases / 200 assertions, zero errors/failures/skips, against locked published Native 2.3.3. Scoped Pint/whitespace checks pass and the tracked Composer lock is unchanged.
Source 37074355176, binding Native
47d3ade12f8f51bbd75cbddf4aa714040f1a4195, passes 104 cases / 5665 assertions on each of SQLite, MySQL and PostgreSQL. The three new diagnostic cases pass 35 assertions on each database. Affected SQLite regressions pass 311 / 3376. These selections have zero errors, failures or skips. Ordinary locked-package CI 37074348861 passes 2387 / 48674, with 50 existing skips, six existing deprecations and zero errors/failures. Repository contracts, query HTTP, performance and public-boundary gates pass. Raw Source results and provenance are retained until December 31, 2026.Preceding cascade API qualification
Server
70807856b416b8792099108712cdd031e2c66c89with Native88ea6e46499332427d0f9a439768ae0bf86e8702passes three-database Source CI and ordinary locked-package CI. Both conclusions are success.Hosted Source selection passes 101 tests / 5630 assertions on each of SQLite, MySQL and PostgreSQL. All six new cascade API cases pass 122 assertions on each database. Affected SQLite regressions pass 311 / 3376. Candidate suites have zero errors, failures or skips. Ordinary feature CI retains published Native 2.3.3 and passes 2384 / 48635, with 50 existing skips and six existing deprecations. Raw Source evidence is retained until December 31, 2026. Affected local Pint and API checks also pass. Native's full matrix qualifies the exact shared reader dependency.
The preceding Server qualification names its exact older tuple. The real mixed Source recovery case passed with Server
8940fb8a866e24d7874947e850f7fc864fbdfd3cand Native9f8cb61947997c1c60f294bdf559d02d8258cc18. Neither is proof of this new API or of published artifacts.Required before publication
Finish local policy SDK consumers, settle remaining scope decisions and fair competitive contracts, and qualify the exact published cascade/UI. The updated full mixed Source scenario passes against preceding Server
708078, preceding Native47d3adeand the exact SDK/CLI heads recorded there. CLI/Waterline inspection components retain separate qualified evidence. Verify stale publication refusal, unchanged delivery and duplicate identity through real cleanup-worker SIGKILL, all runs Cancelled before the original 30-second deadline and one coherent operator view. Keep shared issue 136 open until that outcome and fair competitive evidence are complete. Rust's breaking SDK source API changes require the separate human major-release decision before Rust publication.