Skip to content

Releases: ObjectiveAI/objectiveai

v2.2.1

15 Jun 18:29
201ca43

Choose a tag to compare

  • Merge pull request #229 from ObjectiveAI/2-2-1
  • release: bump all packages to 2.2.1
  • ci: release the objectiveai-db binary (5 legs); activate db update
  • test: fix two failures surfaced by the full suite run
  • regen: schema + go/py/js SDKs
  • tasks run: move stream_all into dangerous_advanced
  • tools/plugins run: pass OBJECTIVEAI_BIN_DIR (the cli/ folder)
  • tools: add tools install github command (mirror plugins)
  • install: extract shared GitHub-install engine for tools + plugins
  • regen: json-schema + go/py/js SDKs for manifest reshape
  • viewer: detect plugin viewer bundles on disk; nested cli/ layout
  • manifests: reshape tool + plugin manifests; drop tool_name helpers
  • conduit: always reply in the response variant matching the request
  • tools: run from a nested cli/ subfolder, like plugins
  • cli: render response timestamps as RFC3339 strings; rename fields

v2.2.0

14 Jun 21:24
0667f5e

Choose a tag to compare

  • Merge pull request #228 from ObjectiveAI/release-2-2-0
  • release: bump all packages to 2.2.0
  • api agent: forward a failed tool call as an error tool-response
  • mcp: double default connect/call timeout to 60s
  • agents logs: group tool responses by tool_call_id; drop the Container
  • cli logs: key tool-call rows by the wire index, not the Vec position
  • cli logs: persist rows from the cumulative aggregate, not a per-batch slice
  • viewer: validate JS build in test.sh
  • viewer: reconcile to PR 227
  • sdk-go: reconcile to PR 227
  • sdk-py: reconcile to PR 227
  • sdk-js: reconcile to PR 227
  • sdk-rs, json-schema: rename relocated cli get Response types; regen schema
  • snapshots: drop retry_token from execution snapshots
  • api: drop list-API mock tests
  • Merge remote-tracking branch 'origin/main' into no-api-filesystem
  • refactor: rename Filesystem remote -> Client; resolve it over the websocket
  • ci: build-cli-leg stages the binary from .objectiveai/bin/
  • cli: agents/swarms get return the base definition, not the converted full form
  • api+sdk: remove the 14 retrieval endpoints; relocate Get*Response into CLI get modules
  • Merge remote-tracking branch 'origin/main' into no-api-filesystem
  • cli: resolve agents/swarms/functions/profiles get+list locally, not via API
  • sdk: add http::github β€” fetch agent/swarm/function/profile from GitHub
  • api+sdk+cli: remove dead write/publish code and all commit-author plumbing
  • Merge remote-tracking branch 'origin/main' into no-api-filesystem
  • api+sdk: remove vector completions cache and vote-reuse/retry

v2.1.3

14 Jun 06:13

Choose a tag to compare

  • 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

v2.1.2

11 Jun 18:45

Choose a tag to compare

  • release: bump all packages to 2.1.2
  • build: drop the viewer phase from root build.sh
  • sdks: regenerate for the api + config api command tiers
  • json-schema: regenerate for the api + config api command tiers
  • cli: api spawn/kill + config api handlers; spawn helper takes extra env
  • sdk: add api command tier (spawn/kill) + full config api field surface

v

11 Jun 22:56

Choose a tag to compare

v
  • 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

v2.1.1

10 Jun 14:58

Choose a tag to compare

  • release: macos-13 β†’ macos-15-intel for the Intel mac legs
  • cli leg: pass GITHUB_TOKEN to the build for postgresql_embedded
  • viewer install.sh: build @objectiveai/function-tree before tauri build
  • fix v2.1.1 release legs: unix flock fds, mcp features, viewer dep, leg cp paths
  • Merge pull request #222 from ObjectiveAI/release-2.1.1
  • release: bump all packages to 2.1.1
  • cli tools run: resolve relative exec paths against the version dir; regen snapshot
  • sdk-rs: bound request_message_ids arbitrary generation to JS-safe i64s
  • root build: add function-tree to build graph, fix viewer vote adapter; regenerate all SDK outputs
  • sdk json_schema: register PR #220's 17 new cli types; title tasks.run.ResponseItem variants
  • Merge pull request #220 from ObjectiveAI/cli-tasks-rework
  • mcp: refresh plugin/tool run input-schema descriptions
  • sdk-rs: arbitrary Decimal divides its f32 sample by 10^13 (true hard bound)
  • sdk-rs: scale arbitrary Decimal's f32 sample down by 1_000
  • cli: agents queue deliver β€” wake queue-pending descendants
  • cli: tasks run --stream-all β€” full streaming vs per-task success summaries
  • cli: tasks runs+logs β€” versioned rows, race-free claim, run log writer
  • cli: tasks run β€” fixed caller-subtree scope, dispatch via crate::run, plugin-aware ctx, 4-field envelope
  • cli: tasks list on Target pattern; per-target concurrent streaming; unlimited default
  • json-schema-builder: objectify bare true schemas in all schema positions
  • cli: tasks schedule β€” per-AIH uniqueness, plugin triple, overwrite + version
  • cli: run plugin-originated commands in-process, forbid plugins/tools
  • sdk json_schema: register tools::get::Exec; regenerate after cli-tasks-rework merge
  • Merge remote-tracking branch 'origin/cli-tasks-rework'
  • sdk+schemas: title agents.message Response/ResponseItem variants; regenerate
  • cli: rework plugin/tool storage, run/get surface, and plugin-path context
  • sdk json_schema: module-aligned feature blocks, dedup, complete cli coverage
  • no feature gate agent arguments
  • cli: add agents instances get, remove me, list -> direct children
  • Merge remote-tracking branch 'origin/main' into cli-tasks-rework
  • cli: implement agents instances list
  • test scripts: uniform hardened api-server spawn/reap + standardize viewer snapshot env var
  • objectiveai-api tests: set request_message_ids on response chunk inits
  • cli: add 'me' target to logs/queue readers
  • sdk: add missing request_message_ids to AssistantResponseChunk test fixtures
  • cli test.sh: reap spawned api server, fix summary miscount
  • cli tests: green suite + harness fixes (seedβ†’dangerous_advanced, function_name, snapshot bridge)
  • Merge pull request #208 from ObjectiveAI/maya/web
  • cli: authorize agents queue delete by sender hierarchy
  • cli+sdk: postgres tcp bootstrap, seed β†’ dangerous_advanced, tool function_name in logs
  • db query: arbitrary single-statement read-only SQL with token budget (#219)
  • json-schema-builder: forbid single-variant anyOf with a titled lone variant
  • agents/logs: collapse single-variant Request/ResponseItem to read aliases
  • agents logs read all: surface message_queue.key on ClientNotification
  • mcp-proxy: in-process queue delegate with token-based delivery confirmation (#218)
  • ReadMessageQueueResult: per-row shape
  • cli+sdk: hoist tasks to a root-level command
  • queue read pending: surface message_queue.id as delete_id
  • agents logs read subscribe: first-ping-or-go-inactive wait loop
  • unify queue read pending with logs read all + thread sender AIH
  • logs: wire agents logs read all + read pending to LogItem blocks
  • queue: soft-delete via active flag + LogWriter logs MessageQueueContent rows
  • move queue-row signal from ClearMessageQueue RPC to request_message_ids on chunk
  • logs: drop is_input column from the two video content tables
  • agents logs read id: media variants become tuple variants, drop is_input
  • agents logs read id: typed 10-variant Response, no serde_json::Value
  • logs::lookup_session: read continuation from agent_continuations, not the response blob
  • db: agent_continuations registry β€” per-chunk upsert in the yielder loops
  • spawn + functions runner: gate Id emission on LogWriter.written_once
  • logs: LogWriter written_once / wait_written_once
  • logs: LogWriter owns the coalescing listener task; write is sync
  • logs: drop dead agent_instance_hierarchy column from agent_completion_responses
  • agents message: --enqueue / --enqueue-with-key
  • cli+sdk: hoist spawn/message out of instances, add agents/logs/read, rename message_queue β†’ queue
  • tags: tag_groups table + spawn-by-tag + conduit-driven upgrade
  • spawn + message: message field is required (drop Option wrapper)
  • agents instances message: rename SpawnId/SpawnChunk to match spawn's variants
  • agents instances message: stream-aware delivery with file-lock + DB race
  • sdk+cli: agents instances message message field is now optional (no-op when None)
  • sdk+cli: spawn prompt: Option<Vec<Message>> -> message: Option<RichContent>
  • cli: drop spawn-time message_queue drain (API pulls via conduit)
  • cli: collapse agents-spawn multi-hierarchy bookkeeping to single capture
  • cli: inline functions execute; delete instance/ + subprocess plumbing
  • cli: consolidate shared modules under websockets/
  • cli: drop RunItem; run() returns ResponseItem stream directly
  • cli: agents spawn stream=false now self-respawns via BinaryExecutor
  • sdk: add BinaryExecutor::detach(bool) for orphan-survival spawns
  • sdk+cli: make agents instances spawn prompt optional
  • cli: move shared modules out of instance/
  • cli: agents spawn now runs in-process with message-queue restart
  • cli: rename prompts db tier to message_queue
  • cli: propagate AgentInstanceRegistry::new failures instead of swallowing
  • cli: keep claim file persistent on unix; flock state is source of truth
  • cli: fix TOCTOU race in unix claim-file reclaim path
  • cli: per-agent process-owned lock files in instance subprocess
  • cli: rename functions executions create -> functions execute
  • cli: drop vestigial caller_agent_instance_hierarchy from LogWriter
  • cli: drop redundant bucket_list Vec in writer.write
  • cli: per-agent sequential dispatch; request blob loses agent hierarchy
  • cli: drop explicit "index" + nextval() from writer CTEs
  • cli: collapse logs.messages_index_seq into BIGSERIAL on the column
  • cli: reorder assistant-row emission β€” refusal last, reasoning first
  • cli: bring back messages + messages_queue, downgrade-on-update semantics
  • cli: fan out streaming-content row writes concurrently
  • cli: remove messages / queue / pending / schema surface; rewire logs writer
  • cli: drop unused mime_guess and ratatui deps; tighten writer.write_notification doc
  • cli: drop unused blob_fingerprint call at end of writer.write
  • cli: implement db::logs::writer body β€” iterator-driven streaming UPSERTs
  • cli: move all log types + walkers into objectiveai-cli; drop SDK logs module
  • sdk+cli: log_rows iterator API; delete legacy *Log struct types
  • cli: replace logs schema with hybrid blob + streaming-content design
  • cli: postgres logs schema + log_reader role
  • sdk+cli: postgres-backed log shapes; drop filesystem logs tree
  • sdk: drop function-invention log types (#217)
  • cli: remove function invention; tracked by #217
  • cli: remove instance unix sockets entirely
  • cli: drop pg_hba.conf rewrite; auth with the fixed initdb password
  • cli: scrub stale filesystem::db::* doc-link references (post-stage 11)
  • cli: inline schema into db::init, drop migrations dir + fix initdb password
  • cli: db::tasks sqlx impls β€” schedules table (stage 9)
  • cli: db::prompts sqlx impls β€” the big one (stage 8)
  • cli: db::messages Queue sqlx impls (stage 7)
  • cli: db::tags sqlx impls (stage 6)
  • cli: db::schema sqlx impls β€” messages/files primitives (stage 5)
  • cli: db::init pool/migration runner + 0001_initial_schema.sql (stage 2)
  • cli: scaffold db/ + drop filesystem/db/ + sqliteβ†’sqlx callsite fan-out (stage 1, big-bang)
  • cli: switch postgresql_embedded to bundled + drop default features
  • cli: cross-platform embedded postgres bootstrap (unix socket + windows tcp loopback)
  • cli: stage 1 embedded postgres bootstrap
  • sdk+cli+api: remove AgentCompletionNotify path; agents instances message becomes pure enqueue
  • api+sdk+cli: queue drain now flows through the WS reverse-attach
  • Merge branch 'main' of https://github.com/ObjectiveAI/objectiveai
  • cleanup
  • api snapshots: regenerate vector_completions + functions_executions client_tests
  • sdk+cli: add read_message_queue / clear_message_queue server requests
  • cli: drop apply-tag-as-side-effect from agents instances message
  • cli: agents tags apply --agent-tag <src> aliases an existing tag
  • cli: rename agents tags add -> agents tags apply; three-way Target enum
  • treewide: recover utf-8 punctuation in source files
  • cli: move agents {spawn,message,read,me,list/active} under agents/instances/; flatten agents/list
  • cli tests: ride the agents β†’ agents instances command refactor
  • sdk-js: rebuild dist/ + wasm loader
  • agents tasks run: ship the typed-ResponseItem execute path
  • sdk-js: prune mcp + client_objectiveai_mcp generated trees
  • vote: regenerate JSON schema + sdk-js zod export
  • vector_completion: replace Vote.agent (hierarchy) with agent_full_id + agent_id
  • json-schema: drop mcp / client_objectiveai_mcp from published set + ban bare null properties
  • Revert "sdk-go: roundtrip preserves type:null fields via nullType tag"
  • api: share one test api server across all integration binaries
  • api: tune nextest retries to 3Γ— exp 2s/10s; sdk-js: rebuild wasm
  • sdk-go: roundtrip preserves type:null fields via nullType tag
  • Revert "sdk-rs: bound arbitrary Decimal to Β±1000 to dodge AddAssign overflow"
  • sdk-rs: bound arbitrary Decimal to Β±1000 to dodge AddAssign overflow
  • sdk-go: roundtrip emits anyOf for sum-type variants; api: test.sh --no-fail-fast
  • vector_completion: strip per-process suffix from Vote.agent in normalize
    -...
Read more

v2.0.11

24 May 01:36

Choose a tag to compare

  • v2.0.11
  • cleanup + test-suite fixes
  • build: regenerated SDK artefacts after MCP + WS-handler fixes
  • mcp: TEST_MODE env var strips agent_id from tool result bodies
  • sdk: strip agent_id from tool-message contents in normalize_for_tests
  • mcp: expose CLI tools alongside plugins; fixtures use a real exec
  • fix: WS-handler deadlock + conduit hop-by-hop framing bug
  • agent: skip list_tools round-trip when no client_objectiveai_mcp declaration
  • agent: validate client_objectiveai_mcp.tools against live proxy list_tools
  • test-spawn-mcp-server: switch to objectiveai-mcp, isolate CONFIG_BASE_DIR
  • api+cli+sdk: wire client_objectiveai_mcp into per-agent MCP proxy connections
  • api+cli: switch 20-agent snapshot to JsonSchema mode
  • cli: snapshot test aggregates chunks via push, moves snapshot to cli/assets
  • cli: snapshot test β€” 20-agent mock swarm w/ 10x client-mcp tools
  • sdk-rs+cli+go+py: codegen sanitization + feature ungating
  • sdk-rs+go: stamp X-Transport: sse, refactor client_response::Response
  • sdk+api+cli: precise capturing, indexmap dep, AgentBase field updates
  • sdk-go: derive variant title from type enum when not in schema
  • cli: conduit dials a REMOTE MCP from config, no subprocess
  • cli: conduit holds a process-lifetime sdk::mcp::Connection
  • cli+api: handle rmcp SSE responses, stamp Mcp-Session-Id correctly
  • sdk+api+cli: HTTP-shaped server_request/response + CLI MCP conduit
  • sdk-js, sdk-py: opt into SSE transport on streaming requests
  • sdk-rs: WS streaming + Notifier + McpHandler scaffold
  • api: spawn notify dispatch in recv_loop
  • api+sdk+proxy: scaffold reverse-attach MCP + per-upstream tool filter
  • sdk: validate install identifiers + tool-name materializer
  • mcp: rename serverInfo.name oaicli -> oai
  • sdk: tools + plugins manifests get owner; tools also gets version
  • api: per-stream WS notifications with id-correlated request/response
  • sdk-rs: split client_objectiveai_mcp::Request into client_request + server_request
  • sdk-rs: add client_objectiveai_mcp::Request; remove notify endpoint
  • sdk-rs: add client_objectiveai_mcp field to agents
  • api: route streaming endpoints by X-Transport header, not by method
  • cli: e2e snapshot tests for tools dispatch
  • cli: tools <args...> dispatch with stdout/stderr forwarding
  • cli: add tools list / get / install
  • json-schema: regenerate for filesystem.tools
  • filesystem: add local-tools module
  • mcp: flatten cli_config into Config; expose 3 filesystem env vars
  • rename crate objectiveai-mcp-cli to objectiveai-mcp
  • mcp-cli: one MCP tool per installed plugin
  • development-launcher/install.sh: drop trailing footer
  • development-launcher: drop the .real backups, one-or-the-other
  • install: --dev flag; rename faux-launcher -> development-launcher
  • dev-tool: objectiveai-faux-launcher
  • viewer/chat: tool calls + tool responses + reasoning collapsibles + queue viz
  • viewer/chat: flat entries: PanelTabEntry[] per panel tab
  • viewer: streaming chat per panel tab with notify mid-flight + drain
  • sdk-js: regenerate zod + merge helper for messages_queued
  • json-schema: regenerate for messages_queued on agent completion chunk
  • api+cli: POST /agent/completions/notify endpoint
  • sdk: From impls between RichContent and Vec, dedupe call sites
  • mcp-proxy/sdk/api: messages_queued on agent completions final chunk
  • cli/api: rename per-leaf field agent_id_arg -> agent_id, AST-test it
  • cli/api: --agent-id as a per-endpoint flag, off of Config
  • cli/api: --agent-id flag overrides X-OBJECTIVEAI-AGENT-ID when env unset
  • viewer: right overlay panel with favorites picker + chat-pane scaffold
  • viewer: useFavoriteAgents hook listing favorites + subscribing to changes
  • sdk-js: regenerate zod for agent.favorites.* + viewer Request variant
  • json-schema: regenerate for agent.favorites.* + http.viewer.Request
  • agent_favorites: add ChangedNotification + viewer SDK plumbing
  • py+viewer: fix remaining root-test.sh failures
  • cli+py: fix stragglers caught by root test.sh
  • sdk+codegen: title each variant of the http.viewer untagged enums
  • sdk: regenerate schemas + add http.viewer types to json_schemas()
  • cli+sdk: stamp agent_id on every emitted notification and error
  • mcp-proxy: stamp X-OBJECTIVEAI-AGENT-ID on every upstream request
  • api+runners: forward composite agent_id as OBJECTIVEAI_AGENT_ID env
  • api+proxy: thread X-OBJECTIVEAI-AGENT-ID through agent completions
  • sdks: add agent_id (X-OBJECTIVEAI-AGENT-ID) to every http client
  • mcp-cli: per-request X-OBJECTIVEAI-AGENT-ID override of cli_config.agent_id
  • cli: add agent_id to Config (env OBJECTIVEAI_AGENT_ID)
  • cli/tests: route snapshot tests at a locally-spawned api
  • cli: hint at api spawn on connection-failure errors
  • cli/viewer: resolve send.rs broken-runner carve-out
  • cli/api: collapse the runner to always-remote
  • cli/mcp: align with api+viewer β€” add Config (jq) subcommand, reuse client
  • cli: add {viewer,api,mcp} spawn|kill + McpConfig
  • cli: unbundle viewer + api from the binary
  • viewer + viewer-sdk: dispatch via cli, drop ApiCall* and SDK http feature
  • sdk/cli: flatten ApiConfig (drop ApiHeadersConfig); strip x_ prefix
  • cli: re-implement the SDK env-var fallback at the api/ layer
  • cli: drop the SDK's mcp and viewer features
  • cli: disable the SDK's env feature
  • cli: mirror every objectiveai-api endpoint under objectiveai api ...
  • sdk/cli: add address and port to ViewerConfig
  • sdk/cli: flatten ApiConfig and ViewerConfig, drop the local/remote mode
  • sdk: drop the stale cooldown reference from the Skipped notification doc
  • sdk/cli: move the updater into objectiveai-cli, drop the SDK feature
  • release: reorder asset names by platform, drop no-viewer cli variant
  • clear-cache.sh: use shell glob, not find, to wipe target contents

v2.0.10

19 May 02:45

Choose a tag to compare

  • release: bump everything to 2.0.10
  • viewer send: spawn-send-kill in local viewer mode

v2.0.9

19 May 01:39

Choose a tag to compare

  • release: bump everything to 2.0.9
  • cli/viewer: e2e test for viewer send against a wiremock viewer
  • cli/viewer: add viewer send <path> <body> to POST synchronously
  • sdk: move viewer client to objectiveai-sdk::http::viewer; api keeps a thin ctx-aware wrapper
  • viewer: tailwind + cn() refactor, fix invisible tab bar
  • cli/help: emit --help as a notification, not a fatal error

v2.0.8

17 May 23:15

Choose a tag to compare

  • release: bump everything to 2.0.8
  • mcp: drain proxy /notify queue at agent turn start
  • viewer/test: skip bin target from cargo test (--lib --tests)
  • api/test: bump FUNCTIONS_INVENTIONS_SUBSCRIBE_TOOLS_TIMEOUT 60s -> 5min
  • README: reframe execution modes as actions; drop vector completions as user surface
  • README: remove all logprob references
  • README: reposition as 'The Swarm Judgment Harness'
  • build artifacts: regenerated SDKs from clean build
  • README: full refactor β€” packages grid, binaries table, comprehensive sections
  • build: drop objectiveai-dotnet from the root build pipeline
  • updater + skipreason: add #[schemars(title = "...")] on each variant
  • plugins install: split into github and filesystem subcommands
  • viewer-plugins: remote URL as iframe source (alongside zip bundles)
  • plugins/resolve: multi-extension fallback for plugin binaries
  • updater: shared sdk module, JSONL emission, opt-in feature for all 4 binaries
  • clear-cache.sh: empty contents in place, preserve junctions/dirs
  • objectiveai-mcp-cli: update CLI invocation to new run() signature
  • release: add objectiveai-mcp binary releases (objectiveai-mcp-cli crate)
  • install.sh + README: install all three binaries (cli + api + viewer)