🐛 Critical Fix: LangGraph Namespaces
Previously, MemStateCheckpointer did not strictly isolate states based on checkpoint_ns (namespace).
- The Issue: If a parent graph and a subgraph shared the same
thread_id, their states could overwrite each other or get mixed up upon restoration. - The Fix: We now explicitly store and filter by
checkpoint_ns. This guarantees full support for Nested Graphs and complex agent architectures.
⚡ Performance: New Indexes
We added specific database indexes to optimize state retrieval for LangGraph workflows.
- PostgreSQL: Added a B-Tree index on the JSONB path
payload ->> 'checkpoint_ns'. - SQLite: Added a functional index on
json_extract(data, '$.payload.checkpoint_ns').
These indexes are created automatically when you initialize the storage.
🔄 Internals
- Updated
putandaputmethods in the Checkpointer to persist namespace metadata into the underlying Fact payload.