Repository navigation
fix: keep workflow entry binding failures recoverable - #192
Merged
Merged
Conversation
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Problem
Service-SDK counterpart of durable-workflow/.github#221 and Workflow#866. Normally installed PHP SDK 2.5.3 reproduces terminal failure when a redeployment adds a required entry argument before the first task or after a committed condition wait, and when the recorded integer is no longer accepted by a string parameter. A genuine body TypeError still fails, and a compatible optional addition completes with exact typed output.
The isolated target is the already candidate-qualified PHP Server525 source, not a published routing fix or native runtime. The five published-SDK business originals and the two unsuccessful fixture setup attempts remain separate.
Source correction
Candidate
729b7151c76ca78337ba479eae4a051f064d1f9a, whole tree3ee1474ea2ee452f9b3034196358449472a5f60b, validates the real discovered callable's entry inputs before entering application code. It reports a typed nonterminal workflow-task replay refusal with safe binding metadata, preserving claim/input/history/deadlines. Genuine body failures retain business failure semantics, including a body that deliberately throws the new internal exception. PHP's compatible optional, nullable, union, variadic, integer-to-float and trailing-argument rules remain explicit controls. The first variadic context parameter is also checked against recorded input.Verification and remaining delivery
802072bchas nine actual failures and seven passing controls. Its first mock omitted a later activity poll; that unsuccessful fixture attempt remains distinct from the corrected counterfactual.expected.type does not match, rather than passing because the test runner cannot load./worker/registerroute before any business admission. Neither fixture mistake is called a product defect.The last source follow-up addresses valid Sonar S1142 with separate union/intersection helpers and a match dispatcher, without a threshold change or suppression. The final focused 23 tests / 66 assertions, 41 official fixtures and changed-file PHPStan pass. The actual HTTP final-runtime cohort belongs to
7321bcf9; the later dispatcher refactor is separately checked by these tests and the normal CI.All applicable exact
729b7151candidate checks now pass, including PHP 8.1–8.4, Laravel 9–13, Symfony 6.4/7/8, official replay corpus, package/portal, target qualification, analysis and public boundary. Connected cooperative cancellation remains conditional SKIP. Exact Sonar workflow/app passes and the PR API has zero unresolved findings. Source merge/fresh main, stable publication and installed artifact/API/Waterline acceptance remain pending. No SDK major, protocol floor, Server runtime, dependency or frozen actor change. The independently reproduced Python counterpart remains SDK Python #170; Rust's typed-input adapter is still open in .github#221. Server#518 release remains held until the relevant client safety is qualified.