Releases
v2.1.3
Compare
Sorry, something went wrong.
No results found
release: bump all packages to 2.1.3
cli tests: wait via agents wait, not agent_continuations polling
db logs: accumulate the response blob across the whole stream
logs read id: fix Text serialize bug; rename ToolCall, embed text
test scripts: post-test cleanup is kill-only, preserving state/
test infra: pre-build per-suite test binaries up front (fix relink race)
mcp-proxy: fix queue_delegate test build + build debug not release
codegen: regenerate AssistantResponsePart for Option function_name
test snapshot: regen twenty_agents_10x_tools for new tool names
fix: connect_handles Vec annotation after dropping the tools tuple
agent completions: drop redundant client-tool presence validation
mcp tool names: objectiveai-mcp advertises ResponseManifest::tool_name()
agents continuation tool session e2e: pass required timeout/max_tokens
test root: gitignore bin/api proxy trace logs
cli e2e tests: adapt to Option function_name
mcp-proxy: optional JSONL request/response trace
logs read all: function_name only on tool_call parts
test-cleanup: OBJECTIVEAI_TEST_CLEANUP_KILL_ONLY to preserve state for inspection
logs schema: repoint log_reader role at objectiveai (logs schema removed)
cli/python tests: exec returns Option, cover None vs Some(Null)
build: commit @objectiveai/sdk dist (tsup output)
cli: also enable RustPython host_env so import io works in the wasm sandbox
cli: enable RustPython stdio feature so WASI sys.stdout/stderr aren't None
schema: eliminate the 5 bare-$ref root newtypes (alias list ResponseItems, drop AgentSpec)
schema test: forbid a root $ref without a type
schema: json_schema_ignore RunValue instead of publishing its degenerate anyOf
py: drop stale inventions/laboratories, regenerate RunValue
js: round-trip bare top-level $ref schemas via z.lazy
go: green the suite — drop stale inventions/laboratories, fix $ref roundtrip, name RunValue variants
fix: RunValue in json_schemas(); python harness avoids WASI shutdown-flush
fix: viewer RawArgs request_base + break run/executor opaque-type cycle
sdk-js: teach viewer-execute codegen the transform envelope
build: regenerate go / js / py SDKs from updated schemas (partial)
json-schema: regenerate from the envelope + per-leaf changes
sdk: implement request_base / request_base_mut for every leaf
mcp: timeout / max_tokens / jq / python on the three run tools
cli run: drive CliCommandExecutor; RunStream is Execute | ExecuteTransform
cli executor: JqTransformStream + Value-first null-skip for both transforms
cli executor: python output-transform adapter; harness gains args + Option output
cli executor: token-budget stream adapter + Serialize bound on T
CommandRequest: add required request_base() -> &RequestBase
cli executor: identity fast-path when T is the root ResponseItem
request base: add transform() accessor
cli: tasks run propagates its scheduled command verbatim
cli: re-exec / nested-run strips parent-only envelope fields
cli: execute python via embedded WASI rustpython, sandboxed under wasmtime
db query: timeout is optional — capped when set, uncapped when omitted
caps: enforcement pared back — postgres-only timeout, no token counting
request base: timeout (humantime) + max_tokens join the envelope
db: one 'objectiveai' schema for every base table
cli: rustpython wasm pin 0.4.0 -> 0.5.0; fix recipe to deterministic minimal flags
cli: build.rs provisions the WASI rustpython blob into a lockfile-guarded cache
db compartments: OBJECTIVEAI_POSTGRES_URL for plugins/tools; STATE_DIR -> OBJECTIVEAI_STATE_DIR
request base: python transform alongside jq; python overrides jq
sdk: RequestBase envelope replaces per-leaf jq; execute_jq -> execute_transform
termination hardening: atomic config/manifest writes, initdb commit gate, drop dead drain
sdk-js: drop orphaned laboratories module
agents wait: block until an agent (instance or tag) is done
cli: github_authorization comes from the json config only
lockfile: try_held never reports from a partial state
db: lock discipline — fail fast on the final lock, fail slow on the init gate, never exit 0
api: thread reverse_channel_timeout through ctx and handle
cli tests: resume via second spawn in the continuation e2e
test-cleanup: own crate at objectiveai-tests/test-cleanup
cli spawn: embed the dead child's stdout/stderr in the error, no file
viewer suite green (3/3): config-scope argv in cli_command snapshot test
cli suite green (146/146): db supervisor fixes, leak sweep, reverse-channel budget
test infra: prebuilt-binary shims; api suite green (318/318)
mcp-proxy tests: migrate notify suite to in-process QueueDelegate
sdk-go/py/js: regen for the accumulated wire changes
Cargo.lock: fixture member moves + objectiveai-tests bin deps
json-schema: regen for the accumulated wire changes
test root: fixtures live in .objectiveai; suites self-resolve; test-cleanup
plugins: tools-style exec + cli_zip; STATE_DIR; spawn env allowlist; api dotenv
test root: committed .objectiveai tree groundwork — shims, launcher, gitignores
websockets/mcp_server: resolved layout coordinates for the in-process mcp
agents logs read subscribe: watch the SDK instance locks
agents queue deliver: SDK lockfile + grouped-tag targets; tag locks never transfer
agents enqueue: own command; agents message loses enqueue mode
cli: agents spawn/message on the SDK lockfile — selector, locks, transfer
sdk: shared AgentSelector for agents spawn/message; message goes unary; lock transfer on BinaryExecutor
Merge pull request #225 from ObjectiveAI/api-minify
api+sdk: remove laboratories, function invention, and API viewer support
context: lazy lock-discovered clients — api_client/viewer_client/db_client
spawn: on child exit, re-probe the lock — a lost claim race is success
spawn: lock-based readiness — orphan child, fresh env, URL from lockfile
workspace: drop deleted objectiveai-tests-pg-installer member
kill: terminate by lockfile owner; scope flags; SDK lockfile::owners
mcp: per-state singleton lock publishing its connect URL
config --final: the per-state config wins conflicts over the global base
config commands: scope semantics — global file, state file, final merge
api config: authorization mutations are global only
config move: fix schema sub-leaf argv word order
config: root command deleted — each service owns its own config subtree
config: delete the functions tier — empty after the favorites purge
favorites: removed altogether — config, commands, refs, list sources, viewer notify
config: drop api/db/viewer port + sdk booleans; require scope flags everywhere
objectiveai-db: clap arguments exclusively; localhost + random free port only
objectiveai-db: resident supervisor — postgres lives and dies with it
viewer: per-state singleton lock publishing its connect URL; mirror the api shape
sdk/lockfile: rename to the full try_/wait_ pattern
sdk/lockfile: wait_locked subscription; wait_read = wait_locked + try_read
sdk/lockfile: double-lock claims + event-certified reads
sdk/lockfile: locks carry content; api: singleton lock publishes its connect URL
sdk/lockfile: ManuallyDrop — dropping a LockClaim no longer releases it
sdk/lockfile: (dir, key) addressing; api: claim bin/locks/api/_
sdk/lockfile: correct release() docs — transfer consumes, so no post-transfer state exists
sdk/lockfile: LockClaim::release — drop the lock intentfully
sdk/lockfile: LockClaim ownership transfer to one specific child
sdk: new non-default lockfile feature hoisting the shared lock-file module
install: the cli installs to ~/.objectiveai/bin; PATH carries bin only
sdk+viewer+api+mcp: OBJECTIVEAI_DIR/STATE; cli binary lives in bin/
objectiveai-db: pg-bin shared in /bin, cluster per state
cli: split the layout into bin/ and state/; OBJECTIVEAI_DIR + OBJECTIVEAI_STATE
cli: connect to postgres via config db; drop the embedded-postgres bootstrap
sdk: db spawn/kill + config db tier; axe the vestigial config-get filter
objectiveai-db: new crate — embedded-postgres vehicle binary
plugins: carry nested-command argv structured (Vec), not space-joined
publish: mcp before cli — fix the stale wave order that broke every release
You can’t perform that action at this time.