mirror of
https://github.com/langchain-ai/opengpts.git
synced 2026-07-01 18:23:41 -04:00
7ab956faa7
## PR Description This PR converts `checkpointer.alist` into an async generator by using async for and yield inside the function. With this change, `alist` immediately returns an async iterator, allowing `agent.aget_state_history()` to iterate over it directly without needing to await the coroutine. ## Relevant issues https://github.com/langchain-ai/opengpts/issues/377 ## Type 🐛 Bug Fix ## Changes - Modified `checkpointer.alist` to use an async generator pattern python ## Tests Tested the flow by calling `get_thread_history()` which internally calls `agent.aget_state_history()`, confirming that the async iteration now functions as expected without errors. Thank you Team!
backend
Database Migrations
Migration 5 - Checkpoint Management Update
This migration introduces a significant change to thread checkpoint management:
Changes
- Transitions from single-table pickle storage to a robust multi-table checkpoint management system
- Implements LangGraph's latest checkpoint architecture for improved state persistence
- Preserves existing checkpoint data by renaming
checkpointstable toold_checkpoints - Introduces three new tables for better checkpoint management:
checkpoints: Core checkpoint metadatacheckpoint_blobs: Actual checkpoint data storage (compatible with LangGraph state serialization)checkpoint_writes: Tracks checkpoint write operations
- Adds runtime initialization via
ensure_setup()in the lifespan event
Impact
- Breaking Change: Historical threads/checkpoints (pre-migration) will not be accessible in the UI
- Previous checkpoint data remains preserved but inaccessible in the new system
- Designed to work seamlessly with LangGraph's state persistence requirements
Migration Details
- Up Migration: Safely preserves existing data by renaming the table
- Down Migration: Restores original table structure if needed
- New checkpoint management tables are automatically created at application startup