Skip to content

v2.1.3

Choose a tag to compare

@github-actions github-actions released this 14 Jun 06:13
  • 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