Skip to content

fix(checkpoint): replay migrated delta writes through a plain seed#7957

Open
Christian Bromann (christian-bromann) wants to merge 2 commits into
mainfrom
cb/fix-delta-channel-migration-writes
Open

fix(checkpoint): replay migrated delta writes through a plain seed#7957
Christian Bromann (christian-bromann) wants to merge 2 commits into
mainfrom
cb/fix-delta-channel-migration-writes

Conversation

@christian-bromann

Copy link
Copy Markdown
Member

Summary

  • Fix InMemorySaver.get_delta_channel_history dropping writes stored under a migration-boundary checkpoint. A plain (pre-delta) blob is the settled value AT that ancestor, so its pending writes produce the child and must be replayed on top of the seed — the guard that skipped writes for non-_DeltaSnapshot seeds made post-migration writes disappear on reload while remaining visible in the live invoke result.
  • Removed the guard (and now-unused _DeltaSnapshot lazy import) so the optimized override matches the BaseCheckpointSaver reference path.
  • Added two regression tests: test_post_migration_write_survives_reload_through_plain_seed and test_post_migration_reload_base_matches_optimized_override.

InMemorySaver.get_delta_channel_history skipped on-path writes when the
terminating ancestor's blob was a plain (pre-delta migration) value
instead of a _DeltaSnapshot, dropping post-migration writes on reload.
Collect writes regardless of seed type, matching the base implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant