v0.4.7
- Stopped the inclusion of x-api-key to enhance security.
v0.4.6
- Fixed a race condition when joining streams, preventing duplicate start events.
v0.4.5
- Ensured the checkpointer starts and stops correctly before and after the queue to improve shutdown and startup efficiency.
- Resolved an issue where workers were being prematurely cancelled when the queue was cancelled.
- Prevented queue termination by adding a fallback for cases when Redis fails to wake a worker.
v0.4.4
- Set the custom auth thread_id to None for stateless runs to prevent conflicts.
- Improved Redis signaling in the Go runtime by adding a wakeup worker and Redis lock implementation, and updated sweep logic.
v0.4.3
- Added stream mode to thread stream for improved data processing.
- Added a durability parameter to runs for improved data persistence.
v0.4.2
- Ensured pubsub is initialized before creating a run to prevent errors from missing messages.
v0.4.0
- Emitted attempt messages correctly within the thread stream.
- Reduced cluster conflicts by using only the thread ID for hashing in cluster mapping, prioritizing efficiency with stream_thread_cache.
- Introduced a stream endpoint for threads to track all outputs across sequentially executed runs.
- Made the filter query builder in PostgreSQL more robust against malformed expressions and improved validation to prevent potential security risks.
v0.3.4
- Added custom Prometheus metrics for Redis/PG connection pools and switched the queue server to Uvicorn/Starlette for improved monitoring.
- Restored Wolfi image build by correcting shell command formatting and added a Makefile target for testing with nginx.
v0.3.3
- Added timeouts to specific Redis calls to prevent workers from being left active.
- Updated the Golang runtime and added pytest skips for unsupported functionalities, including initial support for passing store to node and message streaming.
- Introduced a reverse proxy setup for serving combined Python and Node.js graphs, with nginx handling server routing, to facilitate a Postgres/Redis backend for the Node.js API server.
v0.3.1
- Added a statement timeout to the pool to prevent long-running queries.
v0.3.0
- Set a default 15-minute statement timeout and implemented monitoring for long-running queries to ensure system efficiency.
- Stop propagating run configurable values to the thread configuration, because this can cause issues on subsequent runs if you are specifying a checkpoint_id. This is a slight breaking change in behavior, since the thread value will no longer automatically reflect the unioned configuration of the most recent run. We believe this behavior is more intuitive, however.
- Enhanced compatibility with older worker versions by handling event data in channel names within ops.py.
v0.2.137
- Fixed an unbound local error and improved logging for thread interruptions or errors, along with type updates.
v0.2.136
- Added enhanced logging to aid in debugging metaview issues.
- Upgraded executor and runtime to the latest version for improved performance and stability.
v0.2.135
- Ensured async coroutines are properly awaited to prevent potential runtime errors.
v0.2.134
- Enhanced search functionality to improve performance by allowing users to select specific columns for query results.
v0.2.133
- Added count endpoints for crons, threads, and assistants to enhance data tracking (#1132).
- Improved SSH functionality for better reliability and stability.
- Updated @langchain/langgraph-api to version 0.0.59 to fix an invalid state schema issue.
v0.2.132
- Added Go language images to enhance project compatibility and functionality.
- Printed internal PIDs for JS workers to facilitate process inspection via SIGUSR1 signal.
- Resolved a
run_pkey
error that occurred when attempting to insert duplicate runs. - Added
ty run
command and switched to using uuid7 for generating run IDs. - Implemented the initial Golang runtime to expand language support.
v0.2.131
- Added support for
object agent spec
with descriptions in JS.
v0.2.130
- Added a feature flag (FF_RICH_THREADS=false) to disable thread updates on run creation, reducing lock contention and simplifying thread status handling.
- Utilized existing connections for
aput
andapwrite
operations to improve performance. - Improved error handling for decoding issues to enhance data processing reliability.
- Excluded headers from logs to improve security while maintaining runtime functionality.
- Fixed an error that prevented mapping slots to a single node.
- Added debug logs to track node execution in JS deployments for improved issue diagnosis.
- Changed the default multitask strategy to enqueue, improving throughput by eliminating the need to fetch inflight runs during new run insertions.
- Optimized database operations for
Runs.next
andRuns.sweep
to reduce redundant queries and improve efficiency. - Improved run creation speed by skipping unnecessary inflight runs queries.
v0.2.129
- Stopped passing internal LGP fields to context to prevent breaking type checks.
- Exposed content-location headers to ensure correct resumability behavior in the API.
v0.2.128
- Ensured synchronized updates between
configurable
andcontext
in assistants, preventing setup errors and supporting smoother version transitions.
v0.2.127
- Excluded unrequested stream modes from the resumable stream to optimize functionality.
v0.2.126
- Made access logger headers configurable to enhance logging flexibility.
- Debounced the Runs.stats function to reduce the frequency of expensive calls and improve performance.
- Introduced debouncing for sweepers to enhance performance and efficiency (#1147).
- Acquired a lock for TTL sweeping to prevent database spamming during scale-out operations.
v0.2.125
- Updated tracing context replicas to use the new format, ensuring compatibility.
v0.2.123
- Added an entrypoint to the queue replica for improved deployment management.
v0.2.122
- Utilized persisted interrupt status in
join
to ensure correct handling of user’s interrupt state after completion.
v0.2.121
- Consolidated events to a single channel to prevent race conditions and optimize startup performance.
- Ensured custom lifespans are invoked on queue workers for proper setup, and added tests.
v0.2.120
- Restored the original streaming behavior of runs, ensuring consistent inclusion of interrupt events based on
stream_mode
settings. - Optimized
Runs.next
query to reduce average execution time from ~14.43ms to ~2.42ms, improving performance. - Added support for stream mode “tasks” and “checkpoints”, normalized the UI namespace, and upgraded
@langchain/langgraph-api
for enhanced functionality.
v0.2.117
- Added a composite index on threads for faster searches with owner-based authentication and updated the default sort order to
updated_at
for improved query performance.
v0.2.116
- Reduced the default number of history checkpoints from 10 to 1 to optimize performance.
v0.2.115
- Optimized cache re-use to enhance application performance and efficiency.
v0.2.113
- Improved thread search pagination by updating response headers with
X-Pagination-Total
andX-Pagination-Next
for better navigation.
v0.2.112
- Ensured sync logging methods are awaited and added a linter to prevent future occurrences.
- Fixed an issue where JavaScript tasks were not being populated correctly for JS graphs.
v0.2.111
- Fixed JS graph streaming failure by starting the heartbeat as soon as the connection opens.
v0.2.110
- Added interrupts as default values for join operations while preserving stream behavior.
v0.2.109
- Fixed an issue where config schema was missing when
config_type
was not set, ensuring more reliable configurations.
v0.2.108
- Prepared for Langgraph v0.6 compatibility with new context API support and bug fixes.
v0.2.107
- Implemented caching for authentication processes to enhance performance and efficiency.
- Optimized database performance by merging count and select queries.
v0.2.106
- Made log streams resumable, enhancing reliability and improving user experience when reconnecting.
v0.2.105
- Added a heapdump endpoint to save memory heap information to a file.
v0.2.103
- Used the correct metadata endpoint to resolve issues with data retrieval.
v0.2.102
- Captured interrupt events in the wait method to preserve previous behavior from langgraph 0.5.0.
- Added support for SDK structlog in the JavaScript environment for enhanced logging capabilities.
v0.2.101
- Corrected the metadata endpoint for self-hosted deployments.
v0.2.99
- Improved license check by adding an in-memory cache and handling Redis connection errors more effectively.
- Reloaded assistants to preserve manually created ones while discarding those removed from the configuration file.
- Reverted changes to ensure the UI namespace for gen UI is a valid JavaScript property name.
- Ensured that the UI namespace for generated UI is a valid JavaScript property name, improving API compliance.
- Enhanced error handling to return a 422 status code for unprocessable entity requests.
v0.2.98
- Added context to langgraph nodes to improve log filtering and trace visibility.
v0.2.97
- Improved interoperability with the ckpt ingestion worker on the main loop to prevent task scheduling issues.
- Delayed queue worker startup until after migrations are completed to prevent premature execution.
- Enhanced thread state error handling by adding specific metadata and improved response codes for better clarity when state updates fail during creation.
- Exposed the interrupt ID when retrieving the thread state to improve API transparency.
v0.2.96
- Added a fallback mechanism for configurable header patterns to handle exclude/include settings more effectively.
v0.2.95
- Avoided setting the future if it is already done to prevent redundant operations.
- Resolved compatibility errors in CI by switching from
typing.TypedDict
totyping_extensions.TypedDict
for Python versions below 3.12.
v0.2.94
- Improved performance by omitting pending sends for langgraph versions 0.5 and above.
- Improved server startup logs to provide clearer warnings when the DD_API_KEY environment variable is set.
v0.2.93
- Removed the GIN index for run metadata to improve performance.
v0.2.92
- Enabled copying functionality for blobs and checkpoints, improving data management flexibility.
v0.2.91
- Reduced writes to the
checkpoint_blobs
table by inlining small values (null, numeric, str, etc.). This means we don’t need to store extra values for channels that haven’t been updated.
v0.2.90
- Improve checkpoint writes via node-local background queueing.
v0.2.89
- Decoupled checkpoint writing from thread/run state by removing foreign keys and updated logger to prevent timeout-related failures.
v0.2.88
- Removed the foreign key constraint for
thread
in therun
table to simplify database schema.
v0.2.87
- Added more detailed logs for Redis worker signaling to improve debugging.
v0.2.86
- Honored tool descriptions in the
/mcp
endpoint to align with expected functionality.
v0.2.85
- Added support for the
on_disconnect
field toruns/wait
and included disconnect logs for better debugging.
v0.2.84
- Removed unnecessary status updates to streamline thread handling and updated version to 0.2.84.
v0.2.83
- Reduced the default time-to-live for resumable streams to 2 minutes.
- Enhanced data submission logic to send data to both Beacon and LangSmith instance based on license configuration.
- Enabled submission of self-hosted data to a Langsmith instance when the endpoint is configured.
v0.2.82
- Addressed a race condition in background runs by implementing a lock using join, ensuring reliable execution across CTEs.
v0.2.81
- Optimized run streams by reducing initial wait time to improve responsiveness for older or non-existent runs.
v0.2.80
- Corrected parameter passing in the
logger.ainfo()
API call to resolve a TypeError.
v0.2.79
- Fixed a JsonDecodeError in checkpointing with remote graph by correcting JSON serialization to handle trailing slashes properly.
- Introduced a configuration flag to disable webhooks globally across all routes.
v0.2.78
- Added timeout retries to webhook calls to improve reliability.
- Added HTTP request metrics, including a request count and latency histogram, for enhanced monitoring capabilities.
v0.2.77
- Added HTTP metrics to improve performance monitoring.
- Changed the Redis cache delimiter to reduce conflicts with subgraph message names and updated caching behavior.
v0.2.76
- Updated Redis cache delimiter to prevent conflicts with subgraph messages.
v0.2.74
- Scheduled webhooks in an isolated loop to ensure thread-safe operations and prevent errors with PYTHONASYNCIODEBUG=1.
v0.2.73
- Fixed an infinite frame loop issue and removed the dict_parser due to structlog’s unexpected behavior.
- Throw a 409 error on deadlock occurrence during run cancellations to handle lock conflicts gracefully.
v0.2.72
- Ensured compatibility with future langgraph versions.
- Implemented a 409 response status to handle deadlock issues during cancellation.
v0.2.71
- Improved logging for better clarity and detail regarding log types.
v0.2.70
- Improved error handling to better distinguish and log TimeoutErrors caused by users from internal run timeouts.
v0.2.69
- Added sorting and pagination to the crons API and updated schema definitions for improved accuracy.
v0.2.66
- Fixed a 404 error when creating multiple runs with the same thread_id using
on_not_exist="create"
.
v0.2.65
- Ensured that only fields from
assistant_versions
are returned when necessary. - Ensured consistent data types for in-memory and PostgreSQL users, improving internal authentication handling.
v0.2.64
- Added descriptions to version entries for better clarity.
v0.2.62
- Improved user handling for custom authentication in the JS Studio.
- Added Prometheus-format run statistics to the metrics endpoint for better monitoring.
- Added run statistics in Prometheus format to the metrics endpoint.
v0.2.61
- Set a maximum idle time for Redis connections to prevent unnecessary open connections.
v0.2.60
- Enhanced error logging to include traceback details for dictionary operations.
- Added a
/metrics
endpoint to expose queue worker metrics for monitoring.
v0.2.57
- Removed CancelledError from retriable exceptions to allow local interrupts while maintaining retriability for workers.
- Introduced middleware to gracefully shut down the server after completing in-flight requests upon receiving a SIGINT.
- Reduced metadata stored in checkpoint to only include necessary information.
- Improved error handling in join runs to return error details when present.
v0.2.56
- Improved application stability by adding a handler for SIGTERM signals.
v0.2.55
- Improved the handling of cancellations in the queue entrypoint.
- Improved cancellation handling in the queue entry point.
v0.2.54
- Enhanced error message for LuaLock timeout during license validation.
- Fixed the $contains filter in custom auth by requiring an explicit ::text cast and updated tests accordingly.
- Ensured project and tenant IDs are formatted as UUIDs for consistency.
v0.2.53
- Resolved a timing issue to ensure the queue starts only after the graph is registered.
- Improved performance by setting thread and run status in a single query and enhanced error handling during checkpoint writes.
- Reduced the default background grace period to 3 minutes.
v0.2.52
- Now logging expected graphs when one is omitted to improve traceability.
- Implemented a time-to-live (TTL) feature for resumable streams.
- Improved query efficiency and consistency by adding a unique index and optimizing row locking.
v0.2.51
- Handled
CancelledError
by marking tasks as ready to retry, improving error management in worker processes. - Added LG API version and request ID to metadata and logs for better tracking.
- Added LG API version and request ID to metadata and logs to improve traceability.
- Improved database performance by creating indexes concurrently.
- Ensured postgres write is committed only after the Redis running marker is set to prevent race conditions.
- Enhanced query efficiency and reliability by adding a unique index on thread_id/running, optimizing row locks, and ensuring deterministic run selection.
- Resolved a race condition by ensuring Postgres updates only occur after the Redis running marker is set.
v0.2.46
- Introduced a new connection for each operation while preserving transaction characteristics in Threads state
update()
andbulk()
commands.
v0.2.45
- Enhanced streaming feature by incorporating tracing contexts.
- Removed an unnecessary query from the Crons.search function.
- Resolved connection reuse issue when scheduling next run for multiple cron jobs.
- Removed an unnecessary query in the Crons.search function to improve efficiency.
- Resolved an issue with scheduling the next cron run by improving connection reuse.
v0.2.44
- Enhanced the worker logic to exit the pipeline before continuing when the Redis message limit is reached.
- Introduced a ceiling for Redis message size with an option to skip messages larger than 128 MB for improved performance.
- Ensured the pipeline always closes properly to prevent resource leaks.
v0.2.43
- Improved performance by omitting logs in metadata calls and ensuring output schema compliance in value streaming.
- Ensured the connection is properly closed after use.
- Aligned output format to strictly adhere to the specified schema.
- Stopped sending internal logs in metadata requests to improve privacy.
v0.2.42
- Added timestamps to track the start and end of a request’s run.
- Added tracer information to the configuration settings.
- Added support for streaming with tracing contexts.
v0.2.41
- Added locking mechanism to prevent errors in pipelined executions.