checkpointpostgres==2.0.22
Breaking Changes📦 langgraph
⚠ 2 breaking✨ 5 features🐛 5 fixes🔧 7 symbols
Summary
This release focuses on internal cleanup, including the removal of legacy metadata fields and improved serialization support for numpy and pandas. It also restores compatibility for custom checkpointers and optimizes postgres checkpointing with better locking and centralized tuple creation.
⚠️ Breaking Changes
- Removed 'writes' key from Checkpoint.metadata. Downstream consumers should no longer rely on this field.
- Removed 'pending_sends' key from Checkpoint. Downstream consumers should no longer rely on this field.
Migration Steps
- Update code to remove any dependencies on Checkpoint.metadata.writes or Checkpoint.pending_sends.
- Ensure ormsgpack is updated to the latest version compatible with this release.
✨ New Features
- Added support for numpy array serialization in JsonPlusSerializer.
- Added pandas serialization with a pickle fallback mechanism.
- Centralized CheckpointTuple creation into a shared utility function for checkpoint-postgres.
- Added locking mechanism for pipeline mode in checkpoint-postgres.
- Updated codebase to use PEP 604 union syntax and PEP 585 generic syntax.
🐛 Bug Fixes
- Restored compatibility with custom checkpointer classes created in versions prior to 2.0.21.
- Fixed invalid Python escape warnings in checkpoint-postgres.
- Fixed AsyncPostgresStore._cursor row type hint/assignment.
- Prevented calling FuturesDict callbacks if they have been garbage collected.
- Reduced extraneous keys in checkpoint.metadata to optimize storage.
🔧 Affected Symbols
Checkpoint.metadataCheckpoint.pending_sendsJsonPlusSerializerAsyncPostgresStore._cursorCheckpointTupleFuturesDictcheckpoint_postgres