Skip to content

fix(deps): update dependency langgraph to >=0.4.3,<0.5 #826

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 22, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
langgraph >=0.2.20,<0.3 -> >=0.4.3,<0.5 age adoption passing confidence

Release Notes

langchain-ai/langgraph (langgraph)

v0.4.3

Compare Source

Changes since 0.4.2

  • release: 0.4.3 (#​4592)
  • langgraph: use tuples for streamed message events in RemoteGraph (#​4589)
  • Fix remote streaming of subgraphs (#​4590)
  • Add a limit to Pregel.draw (#​4575)

v0.4.2

Compare Source

Changes since 0.4.1

  • 0.4.2 (#​4570)
  • update
  • langgraph: decouple name from assistant ID in RemoteGraph
  • prebuilt: switch to executing parallel tool calls via Send by default (#​4438)
  • fix for langgraph
  • docstring fixes for libs/langgraph
  • docs: update add_messages API ref (#​4495)
  • update other tests

v0.4.1

Compare Source

langgraph 0.4.1

Summary of Changes

  • Fixed an issue handling END in StateGraph edges to properly terminate graph execution #​4458
  • Migrated codebase to exclusively use Pydantic V2, removing support for Pydantic V1 #​4448
  • Added ability to merge UI message props using a new merge parameter #​4473
  • Changed TAG_NOSTREAM from "langsmith:nostream" to "nostream", maintaining backwards compatibility #​4473
  • Improved docstrings and documentation throughout the codebase #​4463
  • Fixed UI message metadata handling in push_ui_message #​4467

Detailed Changes

langgraph.graph.state.StateGraph
  • Fixed handling of the END constant in get_writes and _control_static functions, ensuring proper graph termination when returning to END #​4458
langgraph.graph.ui
  • Added a new merge parameter to push_ui_message function, allowing incremental updates to UI messages #​4473
  • Enhanced ui_message_reducer to support merging props from existing messages when the merge flag is set #​4473
  • Fixed metadata handling in push_ui_message by removing old metadata merging which could cause unexpected behavior #​4467
langgraph.constants
  • Changed TAG_NOSTREAM from "langsmith:nostream" to "nostream" #​4473
  • Added TAG_NOSTREAM_ALT with the old value ("langsmith:nostream") for backward compatibility #​4473
langgraph.graph.schema_utils
  • Removed support for Pydantic V1 models in SchemaCoercionMapper #​4448
  • Simplified type adapters to work exclusively with Pydantic V2 #​4448
langgraph.utils.pydantic
  • Completely rewritten to use only Pydantic V2 APIs #​4448
  • Added proper caching for model creation with lru_cache for better performance #​4448
  • Fixed handling of reserved names and field remapping to avoid collisions with Pydantic internals #​4448
langgraph.channels.base.BaseChannel
  • Added docstring to clarify the purpose of this base class #​4463

v0.4.0

Compare Source

langgraph 0.4.0
Summary of Changes
  • Added improved support for interrupt handling in streaming modes, with interrupts now properly propagated in "values" stream mode #​4374
  • Enhanced interrupt resumption with namespace-specific resume values, allowing targeted resumption of specific interrupts #​4406
  • Fixed branch handling to properly process END nodes in graph visualization and execution #​4409
  • Fixed issue where empty Commands with resume maps would raise an error #​4444
  • Updated Python compatibility to allow future Python versions while maintaining 3.9+ support #​4416
Detailed Changes
langgraph.types.Interrupt
  • Added interrupt_id property that generates a unique ID for the interrupt based on its namespace #​4406
  • Updated ID generation to use | as a separator between namespace elements for better uniqueness #​4406
langgraph.types.StreamMode
  • Updated docstring to clarify that "values" mode emits all values including interrupts after each step #​4374
langgraph.types.StateSnapshot
  • Added interrupts field to track interrupts that occurred in a step and are pending resolution #​4406
  • Improved documentation for all fields in the class #​4406
langgraph.types.Command
  • Enhanced resume parameter to support mapping interrupt IDs to resume values #​4406
  • Improved documentation for the resume parameter #​4406
langgraph.pregel.Pregel
  • Improved invoke and ainvoke methods to properly collect and handle interrupts in streamed output #​4374
  • Enhanced interrupt emission to work in both "values" and "updates" stream modes #​4374
  • Modified state snapshot preparation to collect interrupts from tasks #​4406
langgraph.graph.branch.Writer
  • Updated signature to accept a boolean parameter indicating whether the operation is for static writes #​4409
  • Fixed branch handling to properly process END nodes #​4409
langgraph.pregel.loop.PregelLoop
  • Fixed Command handling to support empty Commands with resume maps #​4444
  • Added support for namespace-based resumption through CONFIG_KEY_RESUME_MAP #​4406
langgraph.pregel.draw
  • Improved graph visualization to correctly handle END nodes #​4409
  • Added add_edge utility function to prevent duplicate edges in graph visualization #​4409

v0.3.34

langgraph 0.3.34
Summary of Changes
  • Fixed handling of interrupts in nested graph execution by properly marking tasks with execution context information #​4389
  • Improved sanitization of configuration values in remote graphs #​4389
  • Fixed issues with cached properties when copying PregelNode objects #​4389
Detailed Changes
langgraph.pregel.algo.prepare_single_task
  • Enhanced task path handling by appending a boolean flag (True/False) to indicate whether a call is being made #​4389
  • When True, interrupts should not be returned from the task (responsibility lies with the parent)
  • When False, interrupts should be returned from the task
  • Updated all related code to use the full task path instead of truncated version
langgraph.pregel.loop.PregelLoop
  • Added logic in _output_writes to check task path context before emitting interrupts #​4389
  • For tasks with path[0] == PUSH and path[-1] is True (indicating a call context), interrupts are not emitted as they'll be handled by the parent
langgraph.pregel.read.PregelNode
  • Fixed copy method to properly drop cached properties when copying nodes #​4389
  • Specifically clears flat_writers, node, and input_cache_key cached properties to ensure proper initialization of the copied node
langgraph.pregel.remote.sanitize_config_value
  • Added new utility function to recursively sanitize configuration values #​4389
  • Ensures configuration values contain only primitive types (string, int, float, bool) or collections thereof
  • Properly handles nested dictionaries, lists, and tuples
langgraph.pregel.remote.RemoteGraph
  • Improved _sanitize_config method to use the new sanitize_config_value function #​4389
  • Now properly sanitizes nested metadata and configurable values
  • Maintains only valid configuration values that can be safely serialized

v0.3.32

Compare Source

langgraph 0.3.32
Summary of Changes
  • Fixed SchemaCoercionMapper to properly handle Pydantic models with validators (#​4363)
  • Improved branch handling with better entry processing and passthrough logic (#​4354)
  • Refactored graph visualization with dedicated draw_graph functionality (#​4354)
  • Added static analysis support for channel writes to improve conditional edges (#​4354)
  • Improved message processing in StreamMessagesHandler for better efficiency (#​4379)
  • Updated type annotations throughout the codebase for better compatibility with Python typing (#​4368)
Detailed Changes
langgraph.graph.schema_utils.SchemaCoercionMapper
  • Fixed an issue with Pydantic models that have validators by detecting validator presence and using the appropriate coercion strategy (#​4363)
  • For Pydantic v1 models with validators, now directly calls the model constructor
  • For Pydantic v2 models with validators, now uses model_validate instead of model_construct
langgraph.graph.branch.Branch
  • Improved write handling in branches with better passthrough logic (#​4354)
  • Changed the writer interface to simplify integration with ChannelWrite
  • Added functionality to detect when a PASSTHROUGH value is needed to maintain the input
langgraph.pregel.write.ChannelWrite
  • Added get_static_writes method to support static analysis of what a writer might write (#​4354)
  • Extended register_writer to accept static declarations for writers
  • Added a static field to ChannelWriteTupleEntry to declare writes for static analysis
  • Refactored write assembly into a separate _assemble_writes function for better code organization
langgraph.pregel.draw
  • Added new dedicated module for graph visualization (#​4354)
  • Implemented draw_graph function that simulates execution to discover edges
  • Graph visualization now correctly handles subgraphs and conditional edges
langgraph.pregel.messages.StreamMessagesHandler
  • Refactored message handling to use a new helper method _find_and_emit_messages (#​4379)
  • Improved Command handling to properly process messages from Command updates
langgraph.channels.dynamic_barrier_value.DynamicBarrierValue
  • Updated type annotations to use collections.abc.Set instead of set (#​4354)
  • Improved type consistency throughout the class

v0.3.31

Compare Source

langgraph 0.3.31

Summary of Changes

  • Improved thread ID handling in checkpointing and state management for more reliable concurrent execution (#​4281)

Detailed Changes

langgraph.constants.CONFIG_KEY_THREAD_ID
  • Added new constant to track thread IDs for current invocations (#​4281)
langgraph.pregel.Pregel
  • Enhanced thread ID handling to ensure consistent string representation in configurations (#​4281)
  • Improved state retrieval methods (get_state, aget_state) to properly handle thread IDs
  • Updated state history methods to consistently use string thread IDs in checkpoint configurations
  • Fixed superstep execution to maintain consistent thread ID format across multiple steps
langgraph.pregel.loop.PregelLoop
  • Added thread ID validation in checkpoint configurations to ensure consistent string format (#​4281)
  • Fixed checkpoint configuration handling to properly maintain thread ID consistency between runs

v0.3.30

Compare Source

langgraph 0.3.30
Summary of Changes
  • Improved streaming support for Command objects by properly handling unwrapping in responses #​4250
  • Refactored Pydantic model update handling to improve code maintainability and reduce duplication #​4255
Detailed Changes
langgraph.pregel.messages.StreamMessagesHandler
  • Added support for properly handling Command objects in streaming responses by extracting the .update value #​4250
  • This allows Command objects to be used more seamlessly in streaming contexts, both as individual responses and when contained in sequences
langgraph.utils.fields.get_update_as_tuples
  • Added new utility function to extract update fields from Pydantic models as tuples #​4255
  • Consistently handles both Pydantic v1 and v2 models
  • Preserves behavior of only updating values that differ from defaults or are explicitly set
langgraph.graph.state.StateGraph
  • Refactored internal _get_updates function to use the new get_update_as_tuples utility, reducing code duplication #​4255
langgraph.types.Command
  • Updated internal _update_as_tuples method to use the new centralized utility function #​4255

v0.3.29

Compare Source

langgraph 0.3.29
Summary of Changes
  • Performance optimizations for StateGraph and Pregel execution (#​4242)
  • Streamlined branch handling with simpler command processing (#​4247, #​4248)
  • Improved trace and context handling with better performance (#​4256)
Detailed Changes
langgraph.graph.state.CompiledStateGraph
  • Added schema caching via a new schema_to_mapper dictionary to avoid recreating schema mappers repeatedly (#​4242)
  • Simplified branch handling by removing SELF branch mechanism (#​4247)
  • Refactored command processing to directly output tuples of channel/value pairs instead of sending commands through branches (#​4248)
langgraph.pregel.read.PregelNode
  • Added an input_cache_key property for efficient input caching (#​4242)
  • Disabled tracing by default for better performance (#​4256)
langgraph.pregel.algo
  • Added input caching to avoid recomputing the same inputs for nodes (#​4242)
  • Improved channel reading efficiency by checking availability before reading (#​4242)
  • Changed _proc_input to return a value directly instead of being an iterator (#​4242)
langgraph.pregel.write.ChannelWrite
  • Removed tagging mechanism and simplified tracing (#​4256)
  • Disabled tracing by default for improved performance (#​4256)
langgraph.utils.runnable.RunnableCallable
  • Improved context handling for better performance and tracing (#​4256)
  • Added explicit run detection from trace handlers (#​4256)
  • Better handling of nested runnable invocations (#​4256)
langgraph.utils.runnable.RunnableSeq
  • Enhanced context propagation for nested sequential operations (#​4256)
  • Improved streaming with explicit iterator handling (#​4256)
  • Added helper functions for consuming iterators and async iterators (#​4256)

v0.3.28

Compare Source

langgraph 0.3.28
Summary of Changes
  • Added support for multiple retry policies, where the first matching policy will be applied when an exception occurs #​4240
  • Improved performance and reliability of schema coercion between dictionaries and Pydantic models #​4200
  • Optimized default retry logic with better ordering of HTTP error checks for improved exception handling performance
Detailed Changes
langgraph.func.task
  • Enhanced to accept a sequence of retry policies in addition to a single policy, providing more flexible error handling #​4240
langgraph.graph.schema_utils.SchemaCoercionMapper
  • Significantly refactored for better performance with dictionary to Pydantic model coercion #​4200
  • Added efficient caching with functools.lru_cache to avoid redundant processing
  • Improved handling of tuple, set, and other collection types
  • Added fast paths for basic types with identity conversions
  • Better compatibility with both Pydantic v1 and v2
  • Fixed order of checking Pydantic versions for more reliable detection
langgraph.graph.state.StateGraph
  • Updated add_node to support sequences of retry policies, with documentation for how multiple policies are applied #​4240
  • Fixed a bug in _get_updates to correctly detect Pydantic model field sets based on their version #​4200
langgraph.pregel.Pregel
  • Now accepts and properly handles a sequence of retry policies instead of just a single policy #​4240
  • Improved type hints and initialization to better handle both single policy and sequence cases
langgraph.pregel.retry
  • Enhanced retry mechanism to select the first matching policy from a sequence of policies #​4240
  • Added _should_retry_on helper function to determine if a policy applies to a specific exception
  • Improved backoff calculation logic to apply the correct policy's backoff rate
  • Better logging with clearer retry attempt messages
langgraph.types
  • Updated default_retry_on function with optimized ordering of HTTP error checks for better performance
  • Changed PregelExecutableTask.retry_policy type to support sequences of policies #​4240

v0.3.27

Compare Source

langgraph 0.3.27
Summary of Changes
  • Added a new checkpoint_during parameter to control when checkpoints are created, allowing users to optimize graph execution performance by only checkpointing at the end of a run (PR #​4169)
  • Improved robustness with better handling of missing optional dependencies (PR #​4203)
  • Enhanced RemoteGraph with simpler and more strict config serialization to avoid serialization errors (PR #​4205)
Detailed Changes
langgraph.pregel.Pregel
  • Added new checkpoint_during parameter to stream(), astream(), invoke() and ainvoke() methods. When set to False, the graph only creates a checkpoint at the end of execution rather than after each step, which can improve performance for large graphs (PR #​4169)
  • Added graceful handling for when _StreamingCallbackHandler is not available, making the library more robust (PR #​4203)
langgraph.pregel.loop.PregelLoop
  • Renamed checkpoint_every_step to checkpoint_during for clearer semantics (PR #​4169)
  • Added new method _put_pending_writes() to handle persisting writes when checkpointing is deferred (PR #​4169)
  • Improved handling of checkpoints by avoiding redundant saves and tracking saved checkpoint IDs (PR #​4169)
  • Enhanced write handling to properly track task-specific writes and ensure critical writes are always checkpointed (PR #​4169)
langgraph.pregel.remote.RemoteGraph
  • Simplified config sanitization by removing dependency on orjson in favor of strict type checking (PR #​4205)
  • Added a CONF_DROPLIST to exclude internal configuration keys from being serialized (PR #​4205)
  • Improved the sanitization logic to only include primitive types (string, int, float, bool) in serialized configs (PR #​4205)
langgraph.utils.runnable.RunnableSeq
  • Added null checks for _StreamingCallbackHandler to improve robustness when the class is not available (PR #​4203)

v0.3.26

Compare Source

langgraph 0.3.26
Summary of Changes
  • Fixed an issue where GraphInterrupt exceptions were raised unnecessarily in remote graph streaming when no caller namespace was present (#​4202)
Detailed Changes
langgraph.pregel.remote.RemoteGraph
  • Added a check to only raise GraphInterrupt exceptions in the stream and astream methods when a caller namespace is present, preventing unnecessary interrupts in certain streaming contexts (#​4202)

v0.3.25

Compare Source

langgraph 0.3.25
Summary of Changes
  • Added new UI messaging system for LangGraph, enabling developers to send and manage UI component updates during graph execution (#​4157)
Detailed Changes
langgraph.graph.ui
  • Added new UIMessage TypedDict to represent UI component updates with properties and metadata (#​4157)
  • Added RemoveUIMessage TypedDict for removing UI components from the current state (#​4157)
  • Added AnyUIMessage Union type combining both message types (#​4157)
  • Added push_ui_message() function to create and send UI messages for rendering components (#​4157)
  • Added delete_ui_message() function to remove UI components by ID (#​4157)
  • Added ui_message_reducer() function to merge UI message lists, handling both additions and removals (#​4157)

v0.3.24

Compare Source

langgraph 0.3.24
Summary of Changes
  • Added checkpoint migration mechanism to ensure backward compatibility with older checkpoint formats (#​4125)
  • Updated checkpoint version from 2 to 3 with consistent naming convention for channel keys (#​4125)
Detailed Changes
langgraph.graph.state.StateGraph
  • Added _migrate_checkpoint method to handle migrating between different checkpoint formats (#​4125)
  • Implemented migration logic to convert older channel key formats (start:node, branch:source:condition:node, or just node) to the new unified format branch:to:node (#​4125)
langgraph.pregel.Pregel
  • Added _migrate_checkpoint method to support checkpoint migration (#​4125)
  • Added checkpoint migration calls throughout the execution flow to ensure checkpoints are properly upgraded when loaded (#​4125)
  • Passed migration function to loop constructors to enable checkpoint migration at key points in execution (#​4125)

v0.3.23

Compare Source

langgraph 0.3.23
Summary of Changes
  • Added a special REMOVE_ALL_MESSAGES identifier to allow clearing all messages in a MessageGraph conversation in one operation #​4117
  • Moved empty_checkpoint function from being imported from a base module to being defined in the pregel checkpoint module #​4126
Detailed Changes
langgraph.graph.message.add_messages
  • Added a special REMOVE_ALL_MESSAGES constant identifier ("__remove_all__")
  • Enhanced the message merging logic to detect when a RemoveMessage with this special ID is included
  • When this special removal message is detected, all previous messages are discarded and only messages after this special message are returned
  • This provides a convenient way to clear an entire conversation history in one operation #​4117
langgraph.pregel.checkpoint.empty_checkpoint
  • Moved the function definition from being imported from langgraph.checkpoint.base to being directly defined in langgraph.pregel.checkpoint
  • Redefined LATEST_VERSION = 2 in the same module
  • Updated imports in relevant files to reference the new location
  • No change in functionality, purely a code organization improvement #​4126

v0.3.22

Compare Source

langgraph 0.3.22
Summary of Changes
  • Improved error display by removing internal frames from tracebacks, making it easier to identify the actual source of errors (#​4054)
  • Added a copy() method to all channel classes for more efficient state copying, improving performance (#​4106)
  • Improved thread safety with new LazyAtomicCounter implementation (#​4101)
  • Enhanced support for Python 3.12 with optional eager task execution (#​4055)
  • Fixed type annotation for destinations parameter in StateGraph.add_node() (#​4053)
  • Refactored checkpoint handling for better consistency and performance (#​4103, #​4105)
  • Improved handling of resume values in PregelScratchpad (#​4098)
  • Refactored StateGraph edge handling for better consistency (#​4064)
Detailed Changes
langgraph.pregel.runner.PregelRunner
  • Improved error tracebacks by removing internal frames from stack traces, making it easier to identify the actual source of errors (#​4054)
  • The library now filters out internal frames from langgraph, making error messages cleaner and more useful
langgraph.channels.base.BaseChannel and all channel implementations
  • Added a new copy() method to all channel classes for more efficient state copying (#​4106)
  • Improved handling of checkpoints with consistent usage of MISSING constant instead of None (#​4103)
  • Updated method signatures to remove Optional types where appropriate
  • Enhanced checkpoint methods for better consistency across channel types (#​4105)
langgraph.pregel.algo.LazyAtomicCounter
  • Added a new thread-safe counter implementation that lazily initializes only when needed (#​4101)
  • Used for various counters in PregelScratchpad to improve thread safety
langgraph.pregel.algo.local_read
  • Refactored to use the new channel copy() method instead of creating checkpoints, significantly improving performance (#​4106)
  • Simplified interface by removing unnecessary parameters
langgraph.utils.future.run_coroutine_threadsafe
  • Added support for "lazy" task execution control (#​4055)
  • Added support for eager tasks when running on Python 3.12
  • Improved detection of when the current thread is already using the target event loop
langgraph.graph.state.StateGraph
  • Fixed type annotation for destinations parameter in add_node() to correctly support tuples with multiple strings (#​4053)
  • Refactored edge handling for more consistent behavior (#​4064)
  • Changed some list types to tuples for immutability
  • Added a constant for branch channel formatting
langgraph.types.PregelScratchpad
  • Made the dataclass immutable for better safety (#​4098)
  • Improved handling of resume values with better null value management
langgraph.pregel.checkpoint.create_checkpoint
  • Moved checkpoint creation to its own module for better organization (#​4105)
  • Improved handling of MISSING values in checkpoint creation

v0.3.21

Compare Source

langgraph 0.3.21
Summary of Changes
  • Added a warning and early return when attempting to add an edge between non-existent nodes in Graph (#​4021)
  • Fixed interrupt handling in remote graphs to properly construct Interrupt objects from the received data (#​4040)
  • Changed the return type of the update method in Topic channel from None to bool (#​4029)
Detailed Changes
langgraph.graph.graph.Graph
  • Added a validation check and warning when trying to add an edge between nodes that don't exist, preventing silent failures (#​4021)
langgraph.pregel.remote.RemoteGraph
  • Improved interrupt handling in both synchronous and asynchronous stream methods by properly constructing Interrupt objects from the received data, ensuring proper serialization/deserialization of interrupts (#​4040)
langgraph.channels.topic.Topic
  • Changed the return type of the update method from None to bool to align with the interface of other channel types (#​4029)

v0.3.20

Compare Source

langgraph 0.3.20
Summary of Changes
  • Replaced msgpack dependency with ormsgpack for improved serialization performance #​3953
  • Changed behavior when extending subgraphs with missing entrypoints to log a warning instead of raising an exception #​3997
  • Improved hash function used in UUID generation from 64-bit to 128-bit for better collision resistance #​4005
Detailed Changes
langgraph.graph.graph.Graph
  • Modified add_edge method to log a warning and continue execution instead of raising a ValueError when a subgraph has a missing entrypoint #​3997
langgraph.pregel.algo
  • Upgraded the hash function used in _xxhash_str from xxh3_64_hexdigest to xxh3_128_hexdigest for better collision resistance when generating UUIDs #​4005
Dependencies
  • Replaced msgpack with ormsgpack (version 1.8.0+) dependency for faster and more efficient MessagePack serialization #​3953

v0.3.19

Compare Source

langgraph 0.3.19
Summary of Changes
  • Added significant performance optimization for node execution by only triggering nodes dependent on updated channels (#​3916, #​3931)
  • Improved task ID generation performance using XXH3 hash algorithm instead of SHA-1 (#​3954)
  • Fixed issues with node writers in StateGraph to properly handle channel writes (#​3949)
  • Fixed checkpoint configuration reference in PregelLoop (#​3960)
  • Added explicit function configuration support to improve handling of callable arguments (#​3949)
  • Added direct subgraph specification support for PregelNode (#​3949)
Detailed Changes
langgraph.pregel.algo.apply_writes
  • Now returns a tuple containing both managed value writes and a set of updated channels (#​3916)
  • Fixed channel update logic to check if channels are available before updating them (#​3949)
langgraph.pregel.algo.prepare_next_tasks
  • Added optimization to only consider nodes that depend on channels that were updated in the previous step (#​3916)
  • Added parameters trigger_to_nodes and updated_channels to support the optimization (#​3916)
  • Added special case handling for empty channel versions to skip unnecessary processing (#​3931)
langgraph.pregel.Pregel
  • Added trigger_to_nodes property to store mapping from triggers to dependent nodes (#​3931)
  • Updated validate method to compute trigger_to_nodes mapping (#​3931)
  • Fixed type annotations across multiple methods for better consistency (#​3931)
langgraph.pregel.PregelLoop
  • Fixed reference to checkpoint configuration in loop initialization (#​3960)
  • Updated tick and _first methods to track and pass updated channels information (#​3916)
langgraph.pregel.read.PregelNode
  • Added subgraphs parameter to directly specify subgraphs instead of extracting them from bound runnable (#​3949)
  • Fixed copy method to properly handle subgraphs (#​3949)
langgraph.graph.state.StateGraph
  • Fixed how channel writers are attached to nodes using writers.append() instead of |= operator (#​3949)
  • Improved branch handling by moving code to avoid redundant computations (#​3949)
langgraph.utils.runnable.RunnableCallable
  • Added func_accepts_config parameter to explicitly control whether a function accepts config parameter (#​3949)
  • Improved parameter inspection logic to handle explicit configuration (#​3949)
langgraph.pregel.algo._xxhash_str
  • Added new function for task ID generation using XXH3 hash algorithm, which is faster than the previous SHA-1 implementation (#​3954)
  • Updated task ID generation to use xxhash for newer checkpoint versions (#​3954)

v0.3.18

Compare Source

langgraph 0.3.18
Summary of Changes
  • Improved memory usage in task execution by using weak references for task objects (#​3924)
  • Enhanced tracing context handling with proper cleanup to avoid memory leaks and improve LangSmith integration (#​3922)
Detailed Changes
langgraph.types.PregelExecutableTask
  • Changed from NamedTuple to dataclass to support weak references (#​3924)
  • Added memory optimization with weakref_slot=True for Python 3.11+ to reduce memory footprint during execution
langgraph.pregel.runner.PregelRunner
  • Modified task handling to use weak references instead of direct references to reduce memory usage and potential memory leaks (#​3924)
  • Updated internal _call and _acall methods to properly handle weak references to tasks
langgraph.pregel.loop.PregelLoop
  • Updated task update logic to use dataclasses.replace() instead of _replace() to be compatible with the new task implementation (#​3924)
langgraph.utils.runnable.set_config_context
  • Implemented as a proper context manager that correctly sets up and cleans up tracing context (#​3922)
  • Ensures proper handling of LangChain tracers and LangSmith integration for better monitoring and debugging
langgraph.utils.runnable.RunnableCallable
  • Updated to use the new set_config_context context manager for better context handling (#​3922)
  • Improved tracing and context cleanup to prevent potential memory leaks

v0.3.17

Compare Source

langgraph 0.3.17
Summary of Changes
  • Added new bulk state update functionality for more efficient sequential state updates (#​3737)
  • Performance improvements for state management and task processing (#​3912)
Detailed Changes
langgraph.pregel.Pregel
  • Added new bulk_update_state and abulk_update_state methods to allow applying multiple updates to a graph state in sequence (#​3737)
  • Refactored existing update_state and aupdate_state methods to use the new bulk update functionality (#​3737)
  • Improved error handling for multiple update scenarios with clear error messages (#​3737)
langgraph.types.StateUpdate
  • Added new StateUpdate type as a NamedTuple with fields values and as_node to represent individual state updates (#​3737)
langgraph.pregel.algo
  • Optimized how triggers are handled by sorting process triggers for more consistent behavior (#​3912)
  • Improved memory usage by accessing scratchpad directly from parameters instead of through config (#​3912)
  • Enhanced performance by using immutable data structures in task preparation (#​3912)

v0.3.16

Compare Source

langgraph 0.3.16
Summary of Changes
  • Improved schema coercion with better error handling and type compatibility, increasing default max depth and adding support for set types (#​3871)
  • Reduced memory usage by implementing weak references in the pregel execution engine, preventing reference cycles (#​3907)
  • Added internal implementation of get_function_nonlocals to reduce external dependencies (#​3894)
Detailed Changes
langgraph.graph.schema_utils.SchemaCoercionMapper
  • Increased default max_depth from 5 to 12, allowing deeper nested schema structures
  • Added support for set types in schema coercion
  • Improved type compatibility by handling errors more gracefully
  • Enhanced Pydantic model support for both v1 and v2 with better type hint handling
  • Now returns original values instead of raising exceptions in most type coercion failures
  • Made the mapper cache a module-level variable rather than a class variable
  • Added proper handling of type hints for more accurate schema coercion
langgraph.pregel.Pregel
  • Implemented weak references to prevent reference cycles and reduce memory leaks
  • Improved memory management by using weakref.WeakMethod for runner callbacks
  • Enhanced formatting of conditional assignments for better code readability
langgraph.pregel.runner.PregelRunner
  • Refactored to use weak references for futures, task scheduling and execution
  • Moved callback implementations from nested functions to module-level functions for better organization
  • Separated sync and async call implementations into distinct functions (_call and _acall)
  • Improved error handling during task execution
langgraph.pregel.utils.get_function_nonlocals
  • Added internal implementation of get_function_nonlocals function
  • Implemented AST analysis to determine nonlocal variables accessed by functions
  • Added support for proper handling of attributes and nested function definitions

v0.3.15

Compare Source

langgraph 0.3.15
Summary of Changes
  • Added more efficient channel availability checks through new is_available() method on all channel types #​3890
  • Simplified branch mechanism in StateGraph with unified channel naming #​3891
  • Improved performance in Pregel task creation and execution #​3893
Detailed Changes
langgraph.channels.base.BaseChannel
  • Added new is_available() method to check if a channel has values without having to catch exceptions #​3890
All Channel Types
  • Refactored all channel implementations to use a MISSING sentinel value instead of attribute errors for tracking empty state #​3890
  • Added efficient is_available() implementations to:
    • AnyValue
    • BinaryOperatorAggregate
    • DynamicBarrierValue
    • EphemeralValue
    • LastValue
    • NamedBarrierValue
    • Topic
    • UntrackedValue
langgraph.graph.state.StateGraph
  • Simplified branch mechanism by using a single universal channel pattern branch:to:{node} instead of complex channel names #​3891
  • Improved efficiency by creating a single branch channel for each node rather than one for each potential branch destination #​3891
langgraph.pregel.algo
  • Improved performance by adding dedicated checkpoint_null_version() and _triggers() helper functions #​3893
  • Enhanced task creation efficiency by using binascii.unhexlify instead of UUID parsing #​3893
  • Optimized memory usage with single tuple constant for push triggers instead of creating new lists #​3893
  • Updated to use the new channel is_available() method instead of exception handling #​3890
langgraph.pregel.io
  • Removed return_exception parameter from read_channel() as it's no longer needed with the new availability checking #​3890
  • Updated branch channel name handling to use the simplified naming convention #​3891
langgraph.types
  • Changed PregelExecutableTask.triggers type from list[str] to more flexible Sequence[str] for better performance #​3893

v0.3.14

Compare Source

langgraph 0.3.14
Summary of Changes
  • Fixed handling of resume values in nested graph structures, improving reliability when interrupting and resuming tasks across nested graphs (#​3888, #​3889)
  • Improved cascading of resume values from parent to child scratchpads, making interrupt/resume more robust in hierarchical contexts (#​3889)
  • Enhanced the representation of the Interrupt class by hiding the when field from display outputs (#​3889)
Detailed Changes
langgraph.types.PregelScratchpad
  • Redesigned how resume values are handled by replacing direct null_resume storage with a get_null_resume function that takes a consume parameter (#​3888)
  • Removed null_resume, _consume_null_resume properties, and the consume_null_resume() method, replacing them with a cleaner and more versatile get_null_resume(bool) callable (#​3888)
langgraph.pregel.algo.prepare_single_task
  • Added support for accessing and cascading resume values from parent scratchpads to child scratchpads, improving the handling of resumable interruptions in nested contexts (#​3889)
  • Modified _scratchpad function to take a config parameter, allowing it to access the parent scratchpad's resume values (#​3889)
langgraph.types.Interrupt
  • Improved the display representation of the Interrupt class by hiding the when field when printing instances (#​3889)
langgraph.pregel.loop.PregelLoop
  • Removed redundant code that manually propagated resume values from parent scratchpads, as this is now handled more elegantly through the cascading get_null_resume functionality (#​3889)

v0.3.13

Compare Source

langgraph 0.3.13
Summary of Changes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

coderabbitai bot commented Mar 22, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Join our Discord community for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from ff21c93 to 3548a3b Compare March 24, 2025 17:12
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.18,<0.4 fix(deps): update dependency langgraph to >=0.3.19,<0.4 Mar 24, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 3548a3b to 48f5234 Compare March 25, 2025 03:09
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.19,<0.4 fix(deps): update dependency langgraph to >=0.3.20,<0.4 Mar 25, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 48f5234 to fbe989e Compare March 27, 2025 17:14
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.20,<0.4 fix(deps): update dependency langgraph to >=0.3.21,<0.4 Mar 27, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from fbe989e to 8cc9af0 Compare April 1, 2025 19:10
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.21,<0.4 fix(deps): update dependency langgraph to >=0.3.22,<0.4 Apr 1, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 8cc9af0 to 4907ab9 Compare April 2, 2025 14:15
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.22,<0.4 fix(deps): update dependency langgraph to >=0.3.23,<0.4 Apr 2, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 4907ab9 to bd9d3d3 Compare April 3, 2025 02:31
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.23,<0.4 fix(deps): update dependency langgraph to >=0.3.24,<0.4 Apr 3, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from bd9d3d3 to 4be3d1e Compare April 3, 2025 21:45
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.24,<0.4 fix(deps): update dependency langgraph to >=0.3.25,<0.4 Apr 3, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 4be3d1e to c84af3a Compare April 8, 2025 19:59
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.25,<0.4 fix(deps): update dependency langgraph to >=0.3.26,<0.4 Apr 8, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from c84af3a to 6dd3d15 Compare April 9, 2025 03:21
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.26,<0.4 fix(deps): update dependency langgraph to >=0.3.27,<0.4 Apr 9, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 6dd3d15 to 47a7aa2 Compare April 11, 2025 01:52
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.27,<0.4 fix(deps): update dependency langgraph to >=0.3.28,<0.4 Apr 11, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 47a7aa2 to 1166cb7 Compare April 12, 2025 01:36
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.28,<0.4 fix(deps): update dependency langgraph to >=0.3.29,<0.4 Apr 12, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 1166cb7 to 0d54b6a Compare April 14, 2025 23:01
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.29,<0.4 fix(deps): update dependency langgraph to >=0.3.30,<0.4 Apr 14, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 0d54b6a to 5e40762 Compare April 17, 2025 20:00
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.30,<0.4 fix(deps): update dependency langgraph to >=0.3.31,<0.4 Apr 17, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 5e40762 to f290eba Compare April 23, 2025 18:55
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.31,<0.4 fix(deps): update dependency langgraph to >=0.3.32,<0.4 Apr 23, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from f290eba to c72e543 Compare April 23, 2025 22:12
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.32,<0.4 fix(deps): update dependency langgraph to >=0.3.33,<0.4 Apr 23, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from c72e543 to 3554a84 Compare April 24, 2025 15:48
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.33,<0.4 fix(deps): update dependency langgraph to >=0.3.34,<0.4 Apr 24, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 3554a84 to 417152c Compare April 29, 2025 15:13
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.3.34,<0.4 fix(deps): update dependency langgraph to >=0.4,<0.5 Apr 29, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 417152c to cb80624 Compare April 30, 2025 22:36
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.4,<0.5 fix(deps): update dependency langgraph to >=0.4.1,<0.5 Apr 30, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from cb80624 to 565ee2d Compare May 7, 2025 02:29
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.4.1,<0.5 fix(deps): update dependency langgraph to >=0.4.2,<0.5 May 7, 2025
@renovate renovate bot force-pushed the renovate/langgraph-0.x branch from 565ee2d to beb86ca Compare May 8, 2025 06:38
@renovate renovate bot changed the title fix(deps): update dependency langgraph to >=0.4.2,<0.5 fix(deps): update dependency langgraph to >=0.4.3,<0.5 May 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants