Repository navigation
Prepare native timer-redrive workflow clock checks - #323
Conversation
|
Exact successor The new case passes directly in the existing registry-installed2.17.2 environment with its package origin checked under that environment's site-packages. All269 focused source checks and Ruff pass. The workflow definition is byte-identical to the earlier preparation, SHA256 No actual Worker, cold process, native producer, image selection or runtime experiment ran. The installed cohort remains pending the precision-corrected producer's immutable qualification/publication receipt. This comparison identifies fixture-reader consequences and does not claim that an unpublished producer was installed or that a new SDK release is needed. |
|
|
Bounded producer-contract source countercheck PASS at The unchanged workflow definition captures This agrees with the published reader's reuse-time precedence and the correction in Server #1215: copy the full original event time on first reuse, preserve existing reuse metadata on repeat, and retain the immediate predecessor relationship. No SDK production code changes here. I reviewed the two-file source delta; the registry-only execution is the separately attributed owner receipt above. No Worker, cold process, native producer execution, image selection or installed-cohort qualification is inferred. The actual unchanged-definition cold-worker cohort remains gated on the precision-corrected immutable producer receipt. |
|
Preparation delivered through the normal merge path at Accepted main equals the merge commit and its tree The prepared workflow's SHA256 remains |
|
The corrected native producer dependency is now available: Server's qualified 3.11 cohort handoff binds source Python's existing offline reader proof and unchanged workflow definition remain the preparation authority from this PR. Next is the independently reviewed published-package actual Worker/cold-replacement adapter, after the ordinary consumer profile in #324 clears its current exact-source review. It must preserve the observed nonzero-fraction source TimerFired and original history, compare parsed full-precision instants after first and repeated redrive, and show only the failed activity executes again with no timer work. No runtime was launched, no installed timer result is claimed, and no unchanged SDK release is needed for version alignment. |
|
The ordinary published consumer profile prerequisite is now resolved: exact installed activity-identity cell and independent retained-evidence PASS. It used the normally installed 2.17.2 wheel, a complete hash-locked private environment, retained SDK inventory, captured runtime/consumer/network authority and independent full-ID/label cleanup. That result's Server 3.9.2 tuple is unchanged and supplies no timer-redrive evidence. The qualified native 3.11 producer handoff is also current. The next Python action is therefore to freeze the actual cold-Worker first/repeated-redrive adapter using that exact 3.11 index/platform/source and the unchanged definition already accepted here. It must preserve original published history, observe a nonzero fractional TimerFired, compare parsed full-precision instants, prove reuse/lineage and failed-activity-only callbacks, and keep each Worker in a fresh process. The adapter/changed tuple still need their own source, normal checks and runner review before any timer cell; no runtime selection or launch occurred in this preparation update. The remaining SDK211 portal prose correction is currently in SDK326 and is independent of this runtime profile. |
|
The actual cold-Worker adapter is now concrete in draft SDK327, frozen 184 offline contract/ownership/inventory controls and Ruff pass, including exact fractional clock versus truncation, immediate predecessor/new timer pair, original-start/result/history scope, no extra emitted timer command or callback, and pre-child source binding. The real case only collects outside manual admission. Current Python matrix, package, corpus, CodeQL and Sonar checks pass; normal integration and exact Security/Server contract reviews are pending. No local SDK/native runtime launched and no installed timer result is claimed. SDK327 holds the complete source/runner review and later ordinary manual execution; database timer/task invariants remain explicitly with the qualified producer instead of being inferred from public history. |



Prepare the Python workflow definition for Server #980's completed-activity, fired-timer and later-failed-activity cohort. The same definition retains the original timer clock across redrives, and disables automatic retries for the later activity so its failure boundary stays observable.
Six synthetic replay checks cover fresh reconstruction, repeated redrive with immediate-predecessor metadata, missing/foreign timer-clock refusal, fractional clock preservation and completion. The fractional case compares a whole-second producer-shaped reuse timestamp against an exact source timestamp with
.654321: the published reader loses the fraction in the former prefix and preserves it in the latter. They reuse an existing immutable protocol sample without claiming native producer or actual-Worker acceptance. No SDK implementation or package version changes.Validation: 269 focused tests and Ruff pass. The original five replay checks and the new fractional case also pass using the already-installed published Python 2.17.2 package. Actual-Worker/cold-process execution remains pending Server's immutable qualified producer receipt after its precision correction; no image was selected and no runtime launched.
Refs durable-workflow/server#980 and its selected qualification packet durable-workflow/server#980 (comment).