Repository navigation
Expose replay time after validated condition groups - #336
Conversation
|
|
Reviewed exact source head The six-file change adds condition members to the existing consumed-group clock, reuses the scalar physical wait/resource lifecycle, and binds openings/terminals to the authored path. Timeout rows retain the actual maintained-Core scalar representation and must correlate through sequence, physical wait, definition and timer identities. No authored result/error, legacy replayer selection, cancellation clock, timestamp precedence, numeric fold or existing corpus guard changes. The official worker fixture exercises the existing replayer at both immutable revisions and proves the old unavailable clock against the new precise condition-group time. All 42 current-head PR contexts are terminal: 41 successes / one intended connected-test skip, including Target branch qualification, the full supported PHP/framework/docs compatibility matrix and Sonar. The provider's PR336 metadata binds both base and target to main and commit 8b43de2; direct quality gate is OK with zero unresolved issues. The unrelated #335 non-main provider restriction is not carried into this result. Local focused113/152 and PHPStan pass; unchanged corpus policy proves74→75 with one actual base-worker fail/candidate pass. Ordinary integration and actual-main verification/preview/live preservation follow. The initial two malformed path/scope test expectations were corrected to preserve the existing strict exceptions; no production refusal was weakened. Physical grouped reopens, selections, unpersisted predicates, reused-prefix groups, ordinary-entry/context authority and published cross-SDK qualification remain open under central215. No release, installed/native tuple or publisher invocation is selected. |
|
Source acceptance is complete at merged main Actual main qualification is terminal: 40 successful checks and two intended skips. CI, Sonar, CodeQL, boundary, and portal preview all succeeded. The source suite passed 8,286 tests / 85,485 assertions; the unchanged corpus grew 74→75 and rejected the actual base worker before accepting the candidate. Preview artifact |



A persisted condition wait inside an all group currently preserves its result but leaves replayNow() unavailable. Extend the existing group clock fold to consumed condition members, using the same validated physical wait lifecycle as scalar conditions.
Condition openings and terminals must match the authored group path. Maintained Core's timeout writers carry wait identity without parallel metadata, so their complete timer pair remains scalar and must correlate with that proved wait. Definition, occurrence, sequence, resource, duplicate, scope and local-execution checks remain intact. Successful groups retain the existing canonical-millisecond authored-order fold and return the selected member's original precision. This does not qualify physical reopens, selections, reused-prefix groups, unpersisted predicates or an absent ordinary-entry carrier.
PHP8.4.27 currently passes 113 focused condition/child/group clock tests (152 assertions), PHPStan and the new official worker fixture. The unchanged corpus policy passes with 74 to 75 replay fixtures and a real immutable-base worker failure/candidate pass on 588d680. Normal exact-head source checks are running. Existing legacy results, cancellation clocks, group selection and all corpus guards remain unchanged.
Refs durable-workflow/.github#215. No version, published capability, installed/native tuple or release is selected; the separate 3.9 maintenance source and combined-minor gates remain unchanged.