From f3c17305ecbeb5f958da6d95751b1739198b2ac3 Mon Sep 17 00:00:00 2001 From: Haili Zhang Date: Sun, 16 Aug 2026 23:26:46 +0800 Subject: [PATCH 1/3] chore: prepare 0.2.2 release --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++---- README.md | 2 +- README.zh-CN.md | 2 +- pyproject.toml | 2 +- src/agentseek_api/__init__.py | 2 +- uv.lock | 2 +- 6 files changed, 38 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efabe93..627fc3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,24 +4,53 @@ Notable changes to AgentSeek API are documented in this file. ## Unreleased +## 0.2.2 - 2026-08-16 + +### Highlights + +- Added bounded parallel Redis job execution within a worker process. Set + `WORKER_CONCURRENT_JOBS` to control the limit; the default is `10`. +- Aligned assistant and run `config.configurable` / `context` handling with the + LangGraph API contract, including assistant defaults and legacy configurable + access for graphs without a context schema. +- Defined one deterministic environment-ownership contract for the `dev`, + `serve`, `worker`, and `scheduler` host runtimes. + ### Fixed +- Made Redis job acknowledgement conditional on ownership of the active worker + lease, and stopped scheduling safely when a job fails or the lease is lost. +- Rejected client requests that provide both non-empty `config.configurable` and + `context`, mirrored either input into the other representation, and merged + assistant configuration into run configuration without discarding nested + defaults. - Made inherited host environment keys, including explicit empty strings, authoritative over config and CLI dotenv sources. -- Parse each dotenv source independently with strict malformed-file handling, - and distinguish valueless `KEY` from explicit empty `KEY=`. -- Start worker and scheduler roles in fresh child processes so their settings - are constructed after the resolved environment is installed. +- Parsed each dotenv source independently with strict malformed-file handling, + and distinguished valueless `KEY` from explicit empty `KEY=`. +- Ran host runtime roles in supervised child processes so settings are built + after the resolved environment is installed, signals are forwarded, and + descendant processes are cleaned up on exit across supported platforms. - Kept version, help, and Dockerfile rendering independent of runtime settings validation. +- Fell back to an ASCII CLI banner when a legacy Windows console cannot encode + the Unicode banner. ### Upgrade notes +- Redis workers now execute up to `10` jobs concurrently by default. Set + `WORKER_CONCURRENT_JOBS=1` to retain the previous serial behavior. +- Clients must not send both non-empty `config.configurable` and `context` in + one assistant or run request; such requests now return HTTP 400. Prefer + `context` for new integrations. - Dotenv values no longer interpolate from config mappings or other dotenv files. Put dependent bindings in one physical file or pass the final literal value. - Malformed dotenv syntax now exits with status 2 instead of warning and continuing with a partial runtime configuration. +- Dependency resolution now requires SQLAlchemy 2.0.12 or newer, LangGraph + 1.0.6 or newer, LangChain Core 1.2.5 or newer, and MCP 1.27.1 through the 1.x + series. `python-dotenv` 1.0 through 1.2 is now a direct dependency. ## 0.2.1 - 2026-07-14 diff --git a/README.md b/README.md index e45a2ea..cfa7826 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ When the server starts it prints the banner and local URLs: ╠═╣│ ┬├┤ │││ │ ╚═╗├┤ ├┤ ├┴┐ ╩ ╩└─┘└─┘┘└┘ ┴ ╚═╝└─┘└─┘┴ ┴ - AgentSeek v0.2.1 + AgentSeek v0.2.2 - 🚀 API: http://localhost:2024 - 📚 Docs: http://localhost:2024/docs diff --git a/README.zh-CN.md b/README.zh-CN.md index 0261120..9571a86 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -181,7 +181,7 @@ uv run agentseek-api dev --config ./langgraph.json ╠═╣│ ┬├┤ │││ │ ╚═╗├┤ ├┤ ├┴┐ ╩ ╩└─┘└─┘┘└┘ ┴ ╚═╝└─┘└─┘┴ ┴ - AgentSeek v0.2.1 + AgentSeek v0.2.2 - 🚀 API: http://localhost:2024 - 📚 Docs: http://localhost:2024/docs diff --git a/pyproject.toml b/pyproject.toml index 961d4b8..1bbcd76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "agentseek-api" -version = "0.2.1" +version = "0.2.2" description = "AgentSeek API core runtime with OceanBase checkpoints." readme = "README.md" requires-python = ">=3.12" diff --git a/src/agentseek_api/__init__.py b/src/agentseek_api/__init__.py index 3ced358..b5fdc75 100644 --- a/src/agentseek_api/__init__.py +++ b/src/agentseek_api/__init__.py @@ -1 +1 @@ -__version__ = "0.2.1" +__version__ = "0.2.2" diff --git a/uv.lock b/uv.lock index eae8bb9..7a9ebb5 100644 --- a/uv.lock +++ b/uv.lock @@ -29,7 +29,7 @@ wheels = [ [[package]] name = "agentseek-api" -version = "0.2.1" +version = "0.2.2" source = { editable = "." } dependencies = [ { name = "aiomysql" }, From 40ed16eb3f7e05cd70b407c08867523f76a47657 Mon Sep 17 00:00:00 2001 From: Haili Zhang Date: Sun, 16 Aug 2026 23:34:06 +0800 Subject: [PATCH 2/3] docs: correct 0.2.2 runtime scope --- CHANGELOG.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 627fc3b..37844e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,9 +28,10 @@ Notable changes to AgentSeek API are documented in this file. authoritative over config and CLI dotenv sources. - Parsed each dotenv source independently with strict malformed-file handling, and distinguished valueless `KEY` from explicit empty `KEY=`. -- Ran host runtime roles in supervised child processes so settings are built - after the resolved environment is installed, signals are forwarded, and - descendant processes are cleaned up on exit across supported platforms. +- Started `worker` and `scheduler` in fresh child processes so their settings + are built after the resolved environment is installed. +- Added bounded signal forwarding and descendant-process cleanup for `serve`, + `worker`, and `scheduler` across supported platforms. - Kept version, help, and Dockerfile rendering independent of runtime settings validation. - Fell back to an ASCII CLI banner when a legacy Windows console cannot encode @@ -43,11 +44,11 @@ Notable changes to AgentSeek API are documented in this file. - Clients must not send both non-empty `config.configurable` and `context` in one assistant or run request; such requests now return HTTP 400. Prefer `context` for new integrations. -- Dotenv values no longer interpolate from config mappings or other dotenv - files. Put dependent bindings in one physical file or pass the final literal - value. -- Malformed dotenv syntax now exits with status 2 instead of warning and - continuing with a partial runtime configuration. +- For `dev`, `serve`, `worker`, and `scheduler`, dotenv values no longer + interpolate from config mappings or other dotenv files. Put dependent + bindings in one physical file or pass the final literal value. +- For those host runtime commands, malformed dotenv syntax now exits with + status 2 instead of warning and continuing with a partial configuration. - Dependency resolution now requires SQLAlchemy 2.0.12 or newer, LangGraph 1.0.6 or newer, LangChain Core 1.2.5 or newer, and MCP 1.27.1 through the 1.x series. `python-dotenv` 1.0 through 1.2 is now a direct dependency. From cc958dfda3c824a5565eab2d4c6762e258dcddff Mon Sep 17 00:00:00 2001 From: Haili Zhang Date: Sun, 16 Aug 2026 23:35:06 +0800 Subject: [PATCH 3/3] docs: correct dotenv release comparison --- CHANGELOG.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37844e1..21a4066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,11 +44,11 @@ Notable changes to AgentSeek API are documented in this file. - Clients must not send both non-empty `config.configurable` and `context` in one assistant or run request; such requests now return HTTP 400. Prefer `context` for new integrations. -- For `dev`, `serve`, `worker`, and `scheduler`, dotenv values no longer - interpolate from config mappings or other dotenv files. Put dependent - bindings in one physical file or pass the final literal value. -- For those host runtime commands, malformed dotenv syntax now exits with - status 2 instead of warning and continuing with a partial configuration. +- For `dev`, `serve`, `worker`, and `scheduler`, dotenv interpolation is + supported only against the inherited environment and earlier bindings in the + same physical file. +- For those host runtime commands, missing, malformed, and non-UTF-8 dotenv + sources fail closed with status 2 before a runtime child starts. - Dependency resolution now requires SQLAlchemy 2.0.12 or newer, LangGraph 1.0.6 or newer, LangChain Core 1.2.5 or newer, and MCP 1.27.1 through the 1.x series. `python-dotenv` 1.0 through 1.2 is now a direct dependency.