-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v0.4.0 #22
base: main
Are you sure you want to change the base?
Release v0.4.0 #22
Conversation
bsbodden
commented
Apr 5, 2025
•
edited
Loading
edited
- fix(redis): implement transaction handling for Redis checkpointing (Interruption issue #11)
- fix: enable all skipped tests by using mock agents and proper setup
- fix: prevent blob and write accumulation in ShallowRedisSaver classes (AsyncShallowRedisSaver Not Overwriting Checkpoint Blobs and Writes #13)
- feat(redis): implement Redis client info reporting (Report client info with SET_CLIENT_INFO correctly #21)
- fix(examples): update notebooks and Docker setup for consistency
- feat(redis): implement TTL support and upgrade langgraph to ^0.3.0 (Dependency Error for langgraph 0.3.x #18,Upgrade langgraph dependency to latest #23)
🔥 🔥 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice. Left a question and a comment. But good from my perspective after that.
pyproject.toml
Outdated
redisvl = "^0.4.1" | ||
redis = "^5.2.1" | ||
python-ulid = "^3.0.0" | ||
langgraph = "^0.2.70" | ||
langgraph = "0.3.25" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally for a package like ours, we probably don't want to force 0.3.25
langgraph. Unless we have a reason, we should likely just pin to 0.3.x
. Maybe ^0.3.0
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi, sorry to barge into this discussion. I was trying to create a PR to bump up langgraph version and noticed that this PR already addresses it.
There are libraries like langgraph-supervisor
, langgraph-swarm
which depends on recent langgraph versions. It would be good to bump up the version to latest or 4 or 5 versions older. Say 0.3.20
.
For e.g. here is the error we ran into:
The conflict is caused by:
The user requested langgraph==0.3.22
langgraph-supervisor 0.0.15 depends on langgraph<0.4.0 and >=0.3.5
langgraph-checkpoint-redis 0.0.3 depends on langgraph<0.3.0 and >=0.2.70
Thank you in advance!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes for sure, we intend to support this. Supporting a less restrictive range of the langgraph
library would accomplish this!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @tylerhutcherson, sorry to bug you.
Would it take more time to get this merged? If so, does it make sense to separate langgraph upgrade to a separate PR which will unblock us? Thanks in advance!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely understand the urgency, thanks for your input and patience! Lots of updates to be made and some small breaking changes we needed to fix to support latest langgraph updates.
You can help us here if you want by installing the package from this branch in the meantime. We are working on updating example notebooks and then we will be ready to cut a patch release.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@satyaprakash1729 PR is ready, waiting for team review and we'll release if everything looks good
#23) - Add Time-To-Live (TTL) functionality to Redis store implementation TTL using Redis's native TTL functionality - Update dependency to langgraph ^0.3.0 with proper import handling for create_react_agent and fix various type errors to ensure linting sanity. - Added null checks for connection_args to satisfy mypy type checking. - Implemented the URL environment variable handling directly in our code.
Adds proper Redis client identification using SET_CLIENT_INFO for both synchronous and asynchronous clients. Includes graceful fallback to echo when the command is not available and comprehensive tests for both checkpoint and store components.
…#13) Add cleanup logic to AsyncShallowRedisSaver and ShallowRedisSaver to delete old blobs and writes when storing new checkpoints. This prevents memory bloat when using shallow savers, which should only keep the latest checkpoint state. Add comprehensive test to verify the fix works correctly.
Update previously skipped tests to work without external dependencies: - Replace test_batch_order with a functional test of batch operations - Implement memory_persistence test using sequential store connections - Convert LLM-dependent tests to use mock agents instead of real OpenAI - Fix root_graph_checkpoint tests to use proper configuration format - Add proper cleanup to ShallowRedisSaver implementations All tests now run successfully without API keys or special setup.
- Add transaction handling to AsyncRedisSaver.aput and aput_writes methods - Add transaction handling to AsyncShallowRedisSaver.aput method - Fix typing issue in shallow.py - Add comprehensive tests for interruption handling - Ensure atomic operations in Redis using pipeline with transaction=True - Proper handling of asyncio.CancelledError during interruptions