Skip to content

Releases

microagent v0.22.2

Choose a tag to compare

@github-actions github-actions released this 05 Nov 17:05

Fixed

  • ACP now accepts auto as the default session mode, so Paseo no longer
    rejects its default mode for the microagent provider. code remains a
    valid explicit mode.

microagent v0.22.1

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:36

Fixed

  • ACP sessions now advertise a model session config option, so clients that
    build their model list from configOptions detect the configured model
    instead of reporting no models.

microagent v0.22.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:10

Added

  • microagent acp serves the Agent Client Protocol v1 over stdin and stdout.
    It implements initialization, session creation, prompts, streaming message
    and tool-call updates, cancellation, session list/resume/load/delete/close,
    and stdio and HTTP MCP servers supplied by the client.

microagent v0.20.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 14:09

Changed

  • Update the linter setup action to setup-uv 10.3.0.
  • Correct the security policy version and threat-model citations.

microagent v0.19.1

Choose a tag to compare

@github-actions github-actions released this 04 Nov 14:03

Fixed

  • Send the updater HTTP GET request before reading its response, fixing
    HttpConnectionClosing when checking for or downloading releases.

microagent v0.19.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 13:11

Fixed

  • Create the default configuration atomically and leave an existing file untouched.
  • Treat a repeated edit as already applied instead of changing the file again.
  • Serialize concurrent stderr notes and MCP handshake arena writes.
  • Record benchmark run timestamps in UTC regardless of the host timezone.
  • Check repeated tool-call IDs and names by buffer identity, avoiding a
    platform-dependent allocator-capacity assertion on macOS.
  • Build with Homebrew's Zig layout on macOS by discovering the compiler's
    library directory instead of assuming it sits beside the executable.

v0.18.0

Choose a tag to compare

@maci0 maci0 released this 15 Oct 08:46

Added

  • microagent schema prints a CLI Spec 0.3 document and exits 0. It reads no config, no credentials, and no network. microagent schema <command> keeps that command and any command whose path starts with it. schema is a subcommand only as the first argument; a task of that name goes after -- or --print.
  • -o / --output selects auto, text, or json (default auto) and is accepted before the subcommand. The pipe contract stays the model's text, so auto stays text on a pipe and an explicit -o json is what asks for JSON. --version, setup, and update (including --check) then print one JSON document. update and setup include changed. A JSON-mode error's last stderr line is an error envelope, and the exit status stays 2 for a bad command line or bad configuration, 1 for a failure, 3 for a run that stopped without an answer, and 130 for an interrupt. The model's own stdout is unchanged, and the session log's JSON keys are unchanged.

microagent v0.17.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 11:47

Changed

  • Upgrade the toolchain to Zig 0.17.0. Migrated build configurations, module
    definitions, and standard library APIs across the codebase to Zig 0.17
    conventions (std.Io, std.process.Environ.Map, std.posix, and arena
    allocator semantics).

Fixed

  • Support IPv6 loopback URI host literals ([::1]) in network client host
    validation (urlCarriesKey), extracting raw URI host strings rather than
    strictly parsing RFC 1123 DNS hostnames.

  • Maintain POSIX child process spawning pipe and child cleanup on execvpe
    failure under Zig 0.17, preventing file descriptor leaks during failed tool
    and MCP server launches.

  • Fix static storage for test suite repeated byte buffers, avoiding runtime
    stack exhaustion during response ceiling boundary tests.

microagent v0.16.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 01:05

Changed

  • The bash tool tells the model which shell it runs. The name is bash and
    the shell has always been /bin/sh -c, so a model writing [[ ]], arrays,
    local, $'...' or process substitution saw a tool called bash and wrote
    bash into a sh. The description sent on every run now says POSIX sh and
    names the syntax that fails, and the tool table in docs/usage.md says it
    too. Nothing about how a call is executed changed: a command that failed
    before fails the same way, and the only thing that changes is what the model
    is told before it writes one.

Fixed

  • A write, edit, multi_edit or microagent setup that reports success now
    survives the machine stopping. writeFileAtomic renamed the temporary file
    over the destination without first flushing it, so a power loss between the
    rename and the disk taking the bytes came back with the name in place and
    nothing behind it: a source file the tool said it wrote, read back empty or
    half-written. The flush is before the rename and costs one disk round trip per
    file written, and a flush that fails leaves the destination exactly as it was.
    microagent update and the first-run config write already did this; this was
    the one writer that did not.

  • Read a compressed answer from a remote HTTP MCP server. The client sends
    accept-encoding: gzip, deflate and now reads a body its own Content-Encoding
    header names, for a frame and for a refusal alike, rather than passing the
    compressed bytes to the JSON parser. A tools/list catalog is the answer that
    benefits most; the 4 MB response ceiling and the 256-level nesting guard
    already count decoded bytes, so neither is widened by this.

  • microagent update spends the Retry-After a refusal names, where the agent
    run already did. The wait is capped at 30 s, this command's own backoff cap, so
    a person watching the command is not left waiting on a run that has given up on
    their side. A refusal that names no wait keeps the previous backoff, and so does
    one naming a wait already spent (retry-after: 0, or a date this machine's
    clock has passed), which took the backoff's place and sent every attempt
    milliseconds apart.

  • The benchmark venv is built for the interpreter its lock resolves for. The
    README's uv venv named none, so uv took whichever interpreter it found
    first on PATH: a host whose default is 3.11 installed a lock compiled with
    --python-version 3.12 into an interpreter a release below the floor the
    manifest states, and the adapter's own from datetime import UTC is a 3.11
    name, so the run failed at the first summarize rather than at the install.
    make lint-versions now holds that --python against the floor the linter
    manifest, the Harbor manifest and ruff.toml are already held to, and its
    self-test asks the same question of it as of the other four.

  • The git tool honors rev on cmd = "log" to narrow commit history. The
    tool schema declared the field for the commands taking one, but log dropped
    it silently and returned the entire log. cmd = "status" now explicitly
    refuses rev, explaining that status reports the working tree against HEAD.

  • Remote preset configuration keys (url, api_key_env, api_key_header,
    timeout) written under built-in tool tables like [tools.bash] report the
    table name in the diagnostic message instead of an unspecific unknown-key
    notice.

microagent v0.15.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 15:42

Added

  • The top-level config key reasoning_effort sets the same optional reasoning
    level as --reasoning-effort. The flag overrides MICROAGENT_REASONING_EFFORT,
    which overrides the file; omitted or empty keeps the provider's default.
    OpenCode receives its native reasoning_effort field, or thinking.type
    set to disabled for none.

Fixed

  • Preserve streamed reasoning_content on assistant messages so OpenCode Zen
    and Go thinking models can continue after tool calls and across REPL prompts.
    Reasoning shares the response byte ceiling and is kept out of stdout and
    session logs; a stream failure after reasoning is generated is not retried.
    Document both gateway base URLs, bare model IDs and the Chat Completions API limit.

  • Send a stable x-opencode-session header to OpenCode for each conversation;
    Go otherwise rejects requests with MissingSessionID. Decode compressed
    provider error bodies so their reason is readable instead of compressed bytes.