You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit bea62bb
Browse filesBrowse the repository at this point in the historyBrowse files
fix(task): a step completion a later attempt fenced off raises instead of vanishing
record_step_complete_sync declined a completion dispatched under an attempt epoch older than
the instance's, or journaled before a re-register, by returning None, and the async
record_step_complete swallowed every error. A dispatcher still on an old epoch therefore lost
every step's writes without a word, and its dependents ran on a context without them.
Both refusals now raise SupersededAttemptError (logged as a warning), which record_step_complete
lets through while still only logging a store error. Task.run's own dispatch is unaffected: it
takes its epoch from its registration, and a drained straggler's late write lands in a
cancelled future. A run a re-register superseded now stops at its first refused write instead
of running on with every write dropped. register_task_instance documents the epoch contract
for callers that dispatch steps themselves.
The loud error also exposed a journal test whose step was recorded under a stale epoch, so it
passed without the step ever landing; it now records under the new run's epoch.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
0 commit comments