fix(core): enforce sync durability barriers (#2604)
## Summary Makes `durability: "sync"` enforce its superstep boundary: persistence produced by a completed superstep must settle before the scheduler prepares and dispatches the next one. Previously, persistence was tracked and awaited at final cleanup but could overlap later supersteps. ## Changes - Snapshot and await the current run's tracked `putWrites()` and ordered checkpoint `put()` promises after each completed superstep when durability is `sync`. - Preserve asynchronous and exit-only durability behavior, including the existing final persistence settlement path. - Add gated `StateGraph` regression coverage for `invoke`, `stream`, and `streamEvents`, plus coverage that async mode may progress while persistence is pending. - Add a patch changeset for `@langchain/langgraph`.
H
Hunter Lovell committed
42ec39460bfe0c3be017fb043c668c3204c8a175
Parent: dac8c2f
Committed by GitHub <noreply@github.com>
on 7/15/2026, 2:12:09 AM