Skip to content

v0.5.6

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Sep 16:45

20 PRs (#326#345) on top of v0.5.5.

Integrations — Composio, Discord, and one place for credentials

  • Integrations hub (#328): one tab where every third-party credential goes, rendered from a descriptor rather than a bespoke pane per service — and each integration carries its own numbered setup walkthrough on screen until it connects (#343).
  • Composio (#327, #330): ~1500 SaaS toolkits over MCP, gated on the API key alone. Four meta-tools, so the prompt cost is flat regardless of catalogue size, and the model is told how to reach for them.
  • Discord remote control (#331): DMs and @mentions reach the agent, replies come back, and approvals prompt in the channel the turn came from. Raw HTTP + Gateway — zero new dependencies — and MESSAGE_CONTENT is never requested, so the bot cannot read guild chatter it was not addressed in.
  • Telegram moved into the hub (#329, #332): the Telegram tab is gone; /telegram still works and lands on the hub. A dead polling loop now reports itself instead of sitting on a green badge (#333), a failed channel says why (#337), and "already running in another atomic-agent" is no longer red (#338).
  • Credentials saved in the hub now reach the running channel (#342) — before, a token pasted on a fresh install did nothing until the next launch.

Downloads that survive

  • Resumable model downloads (#334): .part + sidecar, Range/If-Range resume, retry with backoff, stall watchdog. A kill at 90% of a 20 GB GGUF no longer costs the whole transfer.
  • models pull --background (#335): a detached worker that outlives the terminal, with models downloads / cancel / clear.
  • TUI pulls run through that worker (#336): quit the app and the download keeps going; reopen and it is adopted, landed and activated.

The agent loop

  • A turn is a task, not a step budget (#344). agent.maxSteps (25) is now a checkpoint interval; what ends a task is agent.task.maxSteps (1000), agent.task.maxDurationMs (2 h), the model finishing, the loop breaker, or you. Every leg boundary reports itself (» still working — 50 steps, 12 min (ceiling 1000)), a leg where nothing usable came back ends the run, and the closing message names the ceiling and says continue picks up from there — instead of (stopped: max_steps reached without a reply).
  • A provider outage is waited out, not fatal (#345). The same step is retried on a 2s→30s backoff for up to five minutes, with a live readout in the composer and a sticky provider unreachable state once the budget is spent. A 404 from a wrong URL or a 401 from a dead key still fails instantly — a typo is not an outage.

Reliability and diagnostics

  • Reflection can no longer reject after a store closes (#326) — four live crash clusters.
  • A dropped stream explains itself instead of printing terminated (#339).
  • Model failures carry tool_transport / failure_stage tags (#340).
  • Subscription CLIs (claude, codex) launch through cmd.exe on Windows (#341).

New config keys

{
  "agent": {
    "maxSteps": 25,
    "task": { "maxSteps": 1000, "maxDurationMs": 7200000, "autoContinue": true },
    "providerWait": { "enabled": true, "maxWaitMs": 300000 }
  }
}

USER_CONFIG_VERSION 51 → 53. Both new blocks are additive: an existing config file gains the behaviour and stays readable. agent.task.autoContinue: false restores the previous "stop at maxSteps" behaviour, and agent.providerWait.enabled: false restores fail-fast on a transport error.