Repository navigation
fix: require redrive reuse authority for replay time - #291
Conversation
|
|
Merged source correction: Pre-resume scalar success now requires its original reuse authority even when both reuse fields are missing. Unbound redrive headers and conflicting kind aliases cannot turn insertion time into business time. Legacy results/errors/cancellation, valid ordinary and post-resume time, child-resolution time and frozen evidence are preserved. Validation and original-head evidence:
The original main portal42169445878 completed successfully: build127733552036 passed, deploy127734014784 was skipped. Artifact13480567066 has ZIP SHA-256 At 05:38:59Z, five anonymous live-byte comparisons matched the existing stable deployment: audit, landing, SDK reference, Client and Worker pages. Published presentation remains Cleanup: remote feature ref independently returns404, local feature branch is removed, source worktree is detached at accepted main and shared main is clean. Owned local source-test and check-watch processes have exited. SDK Python retains this change's public source diagnostics through 2026-11-13 06:00UTC, then removes them. Broader central #215 source/published conformance and its named authority gaps remain open. |



When a redriven timer precedes
resume_step_sequencebut both reuse fields are missing,ctx.replay_now()currently returns the successor's insertion time. For the retained timer example this changes the original00:00:06into00:05:00, falsely presenting a proved business clock.Require reuse authority from the validated resume boundary even when the fields are absent. Recognizable redrive headers that cannot be bound, including conflicting kind aliases, also keep scalar time unavailable. Valid ordinary and post-resume results retain their own consumed time; child clocks, legacy results, cancellation, existing errors and frozen histories are preserved.
Adds focused prefix/header/marker controls and one malformed-history corpus fixture. The unchanged successor checker rejects it with its existing resume-step error; the registry explicitly classifies it as refusal evidence and links a valid successor.
Validation:
6950edacruns 105 cases with one behavioral failure: expected unavailable, observed00:05:00. Final candidate0fff23d8passes all 105, with no collection/import errors on either revision.Related: durable-workflow/.github#215. This is an unreleased source correction; the broader clock conformance work remains open.