diff --git a/CHANGELOG.md b/CHANGELOG.md index efabe93..21a4066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,24 +4,54 @@ 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=`. +- 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 + the Unicode banner. ### Upgrade notes -- 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. +- 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. +- 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. ## 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" },