Notable changes to AgentSeek API are documented in this file.
- Upgraded both the base and embedded
langchain-oceanbasedependency pins to 0.6.3, with the resolved embedded seekdb stack atpylibseekdb1.4.0,pyobvector0.2.29, andpyseekdb1.4.0.post1. - Synchronized package metadata, generated container runtime artifacts, attestations, scripts, fixtures, and runtime labels at 0.3.1.
- Restricted the supported Python range to
>=3.12,<3.14and made generated runtime verification reject unsupported Python versions. - Normalized current human-facing documentation and runtime prose to the
lowercase
seekdbproduct spelling.
- No API or schema migration is required for this release.
- Added the explicit
preloaded-v1container environment contract so the host remains the single owner of application environment resolution. - Generated containers install and attest the exact
agentseek-api[embedded]==0.3.0runtime independently of project dependencies. - Hardened Docker, Compose, and build-context boundaries so application values are carried only to the declared runtime target and credential-bearing source files are excluded from image inputs.
- Defined compatible custom-image labels and runtime-manifest checks for
preloaded-v1launches.
- Container projects that pin
agentseek-api==0.2.2, or otherwise exclude0.3.0, must update their dependency constraint before using generated images. - Custom images must publish the
preloaded-v1environment-contract, runtime manifest, distribution, and version labels; older images must keep using the older launcher until migrated. dockerfilenow writes a complete build-bundle directory. Declare only reviewed project paths withbuild_include; credentialedpip_config_fileinput is delivered as a BuildKit secret rather than copied into the bundle.- Container application values cross only an explicit runtime boundary:
--pass-envselects the direct Docker carrier, whilecompose_envand--compose-pass-envselect the private Compose dotenv carrier. All are trusted-input declarations and none authorize values to enter the build. - Custom images must provide the exact
org.agentseek.environment-contract,org.agentseek.runtime-manifest,org.agentseek.runtime-distribution, andorg.agentseek.runtime-versionlabels and matching manifest/runtime state. There is no legacy-image fallback. - Release Train A shipped API 0.2.3, templates 0.1.3, and AgentSeek 0.1.3. The planned Train B template/catalog release is 0.1.4. The separate planned AgentSeek release is also 0.1.4; both follow their shipped 0.1.3 releases and remain separate release gates.
- When
METADATA_DB_BACKEND=sqlite, store completed-run snapshots in the configured SQLite metadata database instead of constructing an OceanBase saver and attempting a MySQL-family connection.
- No manual schema or configuration migration is required. The
agentseek_checkpointstable is created idempotently at startup. - This fix covers completed-run snapshots only. LangGraph checkpoint state remains in memory when the metadata backend is SQLite.
- Added bounded parallel Redis job execution within a worker process. Set
WORKER_CONCURRENT_JOBSto control the limit; the default is10. - Aligned assistant and run
config.configurable/contexthandling 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, andschedulerhost runtimes.
- 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.configurableandcontext, 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.
- Parsed each dotenv source independently with strict malformed-file handling,
and distinguished valueless
KEYfrom explicit emptyKEY=. - Started
workerandschedulerin 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, andscheduleracross 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.
- Redis workers now execute up to
10jobs concurrently by default. SetWORKER_CONCURRENT_JOBS=1to retain the previous serial behavior. - Clients must not send both non-empty
config.configurableandcontextin one assistant or run request; such requests now return HTTP 400. Prefercontextfor new integrations. - For
dev,serve,worker, andscheduler, 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-dotenv1.0 through 1.2 is now a direct dependency.
- Preserved empty JSON arrays in Redis thread-stream events by avoiding a Lua cjson decode/encode round trip, while keeping generated envelope fields authoritative.
- Mirrored completed tool, human, and system messages to
messages-tuplewhen requested so LangGraph SDK clients receive tool results before final-answer streaming completes.
- No schema or configuration migration is required from 0.2.0.
- Expanded the Crons API to align its request, response, filtering, sorting, selection, and lifecycle behavior with the LangGraph Platform contract.
- Moved Redis-worker run and protocol event persistence from SQL to bounded Redis Streams, removing metadata-database writes from the streaming hot path.
- Preserved UTF-8 output across SSE, wait, and A2A JSON responses while keeping active thread event retention bounded without dropping live events.
- Upgraded checkpoint integration to
langchain-oceanbase0.6.0.
- Drain active Redis-worker runs before upgrading. Stream-event rows written to SQL by earlier versions are not imported into Redis Streams.
- Redis stream replay is bounded by
REDIS_STREAM_MAXLENandREDIS_STREAM_TTL_SECONDS; review these settings for long-running workloads.