Repository navigation
fix: include legacy sequence claims in replay clock ambiguity checks - #292
Conversation
|
|
Normally merged at 46ebdad, tree 21aac50efe9b4b42735c3eb40393985a528a9e22, ordered parents The clock now sees every sequence claimed by the unchanged legacy resolver, then requires strict matching integer counters on every implicated row before proving time. Numeric strings, Boolean counters and conflicting/fallback aliases cannot disappear from the ambiguity check. Legacy values, selected failures and original parser/replay errors are preserved; independently proved later boundaries can recover.
Main portal42173044556 build127745086625 succeeded; deploy127745589790 was skipped. Artifact 13482190741: ZIP SHA-256 At 06:17:11Z, five anonymous live-byte comparisons matched the stable audit, landing, SDK reference, Client and Worker pages. Published presentation remains Remote feature ref independently returns 404; local feature branch is removed; shared main and detached review checkout are clean. Owned local test/watch processes are terminal. SDK Python owns this change's retained public diagnostics through 2026-11-13 07:00UTC, then removes them. This accepts the concrete source correction; original central #215's remaining source/published conformance and authority gaps remain open. |



An opening row with a numeric-string sequence can claim the same workflow step in legacy replay while disappearing from the strict business-clock index. A valid-looking duplicate then falsely allows
ctx.replay_now()to prove a time. The same gap can hide a child opening associated with another call.Use the existing resolver's sequence claims for index visibility, then require an actual matching integer on every implicated row before proving time. This preserves the legacy parser, values, selected failures and original errors; coercion never becomes clock authority. Later independently proved boundaries can still recover.
Adds 36 controls for activity/timer/child duplicates, numeric strings, Boolean counters, alias conflicts/fallbacks, cold replay, unchanged parser errors and unrelated unclaimed rows. One new official corpus fixture records unavailable time while preserving legacy observations; old fixtures and validators are unchanged.
Validation:
3634612with exactly one behavioral clock-value failure; final candidateeb233bfapasses all106, with no collection/import errors on either revision.Related: durable-workflow/.github#215. This is an unreleased source correction; broader clock conformance remains open.