Repository navigation
Releases: openagento/agento
Release list
v1.0.0
First stable 1.x release. It collects everything from 1.0.0rc1 to 1.0.0rc4 since v0.17.2.
Breaking Changes
- Runtime split — the
sandboxservice is removed; agents run inrunner-<i>services as per-run uids, beside the newweb,proxy,runnerandartifactsservices. - Networks —
db-net,exec-netandweb-netreplaceagento-net, and the backend and the toolbox use separate DB users. - Compose override — rename a
sandbox:block indocker-compose.override.ymltorunner-1:, and useAGENTO_RUN_GROUPSto give runs access to host directories.
New Features
- Admin panel — a web panel for conversations, miniapps, artifacts, credentials and config, served through
proxy. - Tool dispatcher — every tool call goes through one dispatcher that re-checks the capability per call and writes an audit row first.
subagentmodule (opt-in) —agent_run/agent_resultlet an agent delegate work to nested sub-agents (max 3 levels), and the parent resumes when its children end.- Threads — every job belongs to a thread (a Jira issue, a mail conversation, a PR or a panel conversation), and the runs of a thread share
./sharedand resume the same session. - Conversations panel — the thread rail shows each sub-agent run as a tree under its parent job, with its status badge.
conversation:backfill(co:ba) — imports the jobs that ended before the conversation module ran into their conversations, with the run events from the Claude session file when it matches.- Conversation timeline — events sort by their time (microseconds), so an imported run sits in its time place.
- Conversation retention —
retention/event_daysandretention/archived_daysdefault to 0 (keep for ever). - Miniapp kit 1.3.0 — a released kit version with the panel's current UI.
- Credential checks and CLI shortcuts — check a credential from the CLI or the panel, and use short command aliases.
Bug Fixes
- Session resume — a resume stays on the same harness, and a job whose previous session file is missing starts a fresh session instead of failing.
- Session state — agent session state persists across runs in the per-run uid model.
- Runner SSH identity —
git push/git cloneover SSH no longer fail with "No user exists for uid", so the agent_view SSH key works again. - Interactive Claude (
agento run) — the TUI no longer stops at the first-run theme picker after a credential re-login. - Sub-agent spawn — concurrent spawns no longer race or fail on DB permissions.
- Cron image build — the build no longer fails now that CPython 3.15 is out; the image pins Python 3.12.
agento upgrade— strips an address fromMYSQL_PORT.- Panel dark mode — the success badge is a solid green.
Docs
- New
docs/modules/subagent.md,docs/architecture/threads.mdand theconversation:backfillsection indocs/modules/conversation.md. - The agent CLI default pins (claude 2.1.291, codex 0.157.0) lag behind upstream on purpose.
Upgrade
agento upgrade --version 1.0.0v1.0.0rc4
New Features
conversation:backfill(co:ba) — imports the Jira, Outlook and other jobs that ended before the conversation module ran into their conversations, in time order, with the run events from the Claude session file when it matches and the answer otherwise.- Conversation timeline — events now sort by their time (microseconds), so an imported run sits in its time place, not at the end.
- Conversation retention —
retention/event_daysandretention/archived_daysnow default to 0 (keep for ever).
Bug Fixes
- Session resume — a job whose previous session file is missing now starts a fresh session instead of failing the resume.
- Interactive Claude (
agento run) — the TUI no longer stops at the first-run theme picker after a credential re-login.
Upgrade
agento upgrade --version 1.0.0rc4v1.0.0rc3
New Features
- Conversations panel — the thread rail now shows each sub-agent run as a tree under its parent job, with its status badge.
Bug Fixes
- Runner SSH identity — git over SSH (
git push,git clone) failed with "No user exists for uid" in every run since the runner split; each run uid now has a passwd entry, and the agent_view SSH key works again.
Upgrade
agento upgrade --version 1.0.0rc3v1.0.0rc2
Features
subagentmodule (opt-in) — addsagent_run/agent_resulttools so an agent can delegate work to nested sub-agents (max 3 levels). The target is the caller's own view or one listed insubagent/allowed_agent_views. Withsubagent/wake_parenton, the parent ends its turn and afollowupjob resumes it when the children end.- Threads — every job gets a thread (one Jira issue, one mail conversation, one PR, or one panel conversation). The runs of a thread share a
./sharedworkspace, and each turn resumes the session of the line's last finished turn (jira/resume_session= 0 gives a fresh one). - Miniapp kit 1.3.0 — new released kit version with the panel's current UI.
Fixes
- Sub-agent spawn — child jobs are enqueued under a named lock, and the toolbox DB user gets the outbox grant it needs, so concurrent spawns no longer race or fail on permissions.
- Panel dark mode — the success badge is a solid green instead of a washed-out tint.
Docs
- New
docs/modules/subagent.mdanddocs/architecture/threads.md; agent CLI pins still lag behind on purpose.
Upgrade
agento upgrade --version 1.0.0rc2v1.0.0rc1
Breaking
- Runtime split: the
sandboxservice is removed. Agents run inrunner-<i>services as per-run uids. New services:web,proxy,runner,artifacts. - Networks
db-net,exec-netandweb-netreplaceagento-net. Separate DB users for backend and toolbox. - Rename a
sandbox:block indocker-compose.override.ymltorunner-1:. To give runs access to host directories, useAGENTO_RUN_GROUPS.
Features
- Admin panel, conversations, miniapps, artifact management.
- One tool dispatcher with per-call capability checks and audit rows.
- Credential checks, CLI shortcuts.
Fixes
- Resume stays on the same harness; channel replies.
- Session state persists across runs in the per-run uid model.
agento upgradestrips an address fromMYSQL_PORT.
Docs
- Agent CLI pins lag behind on purpose.
Upgrade
agento upgrade --version 1.0.0rc1
v0.17.2
New Features
- Per-job harness and model — a job can carry its own harness and model:
publish(..., harness=, model=)pins them at enqueue, and the consumer resolves the rest from the agent_view config, so model or harness evaluations on one agent_view need no config change. agento job:set-runtime— sets or clears a queued job's harness and model (--harness,--model,--clear) while the job is still TODO; a harness change also drops the stored session.agento run --harness / --model / --credential— pins the harness, model and credential of one run without a change to the agent_view config.agento e2e --harness— tests a harness other than the view's; the test claims only its own job and its own credential, so the rest of the pool and a live consumer are not disturbed.- Release e2e gate — every release now runs real-LLM end-to-end tests for Claude, Codex and Pi before it is published to PyPI; the tests run in parallel.
Bug Fixes
- Job runtime recorded for every outcome — harness, provider and model are written when the job is claimed, so FAILED, DEAD and retried jobs carry the values you need to debug them.
- Retries keep the runtime of the first attempt — a config change during a long job no longer switches the model or harness under a retry or a resume.
- Unknown pinned harness fails once — a job pinned to a harness no enabled module registers fails at once with a non-retryable error.
- A job pinned to another harness gets its own workspace files — it no longer runs on the view harness's build, and it never sees another harness's login.
- CLI errors are kept in the job output — when an agent CLI fails with empty stdout, its stderr is now stored in
job.output. - A near-expiry OAuth credential no longer blocks the pool for a whole job — Claude and Codex credentials close to expiry are refreshed before the job starts, and the lease is released after a few seconds.
- Codex OAuth refresh works with Codex 0.157 — the refresh marks the token as expired in a temporary home so the CLI refreshes it; the changed token is never saved.
- A refused refresh token is a temporary auth error — it throttles the credential instead of failing the job with an unknown error.
- The run's toolbox capability is created after the refresh — a slow refresh can no longer use up most of its lifetime.
- SQL queries are cancelled on the server when they time out — MySQL and MSSQL no longer keep running a query nobody waits for.
- MSSQL tools honour
core/sql_timeout_seconds— queries no longer fail at the library default of 15 s. - Large-result offload files no longer overwrite each other — the file name now carries a random suffix.
- Jira question handback resets the issue status — an issue handed back with a question no longer stays in the agent's working status.
- The Outlook secret migration lists the commands for every stale secret, not only the client secret.
- Integration tests use the configured MySQL host and port — the credential-index upgrade test no longer fails on a test database that is not on
localhost:3306.
Security
- A nested repository config can no longer run commands through the artifact store — the desk and the storage backend refuse a config placed inside the tree they operate on.
- Outlook replies align the DMARC
header.fromwith the sending mailbox.
Docs
- Added
docs/cli/job-runtime.md(per-job runtime contract) anddocs/deployment/release-e2e.md(release e2e gate); documented the newagento runpins indocs/cli/run.md.
Upgrade
agento upgrade --version 0.17.2v0.17.1rc5
Release candidate — for testing.
agento upgradewill not pick this up; pin it.
Carries everything in v0.17.1rc3, plus the credential refresh change below. (v0.17.1rc4 was never published: its release tests failed.)
Bug Fixes
- A near-expiry OAuth credential no longer blocks the pool for a whole job. Claude and Codex OAuth credentials close to expiry are now refreshed before the job starts, and the lease is released after a few seconds instead of when the job ends. Jobs that waited for the busy pool are woken when the lease is released.
- Codex OAuth credentials are refreshed with Codex 0.157. The CLI refreshes at startup only when the access token is expired, so the refresh now marks the token as expired in its temporary home. The changed token is never saved.
- A refused refresh token is a temporary auth error. The "could not be refreshed" messages from Claude Code 2.1.291 and Codex now throttle the credential instead of failing the job with an unknown error.
- The run's toolbox capability is created after the refresh, so a slow refresh can no longer use up most of its lifetime.
- The Outlook secret migration lists the commands for every stale secret, not only the client secret.
Upgrade
agento upgrade --version 0.17.1rc5v0.17.1rc4
Release candidate — for testing.
agento upgradewill not pick this up; pin it.
Carries everything in v0.17.1rc3, plus the credential refresh change below.
Bug Fixes
- A near-expiry OAuth credential no longer blocks the pool for a whole job. Claude and Codex OAuth credentials close to expiry are now refreshed before the job starts, and the lease is released after a few seconds instead of when the job ends. Jobs that waited for the busy pool are woken when the lease is released.
- Codex OAuth credentials are refreshed with Codex 0.157. The CLI refreshes at startup only when the access token is expired, so the refresh now marks the token as expired in its temporary home. The changed token is never saved.
- A refused refresh token is a temporary auth error. The "could not be refreshed" messages from Claude Code 2.1.291 and Codex now throttle the credential instead of failing the job with an unknown error.
- The run's toolbox capability is created after the refresh, so a slow refresh can no longer use up most of its lifetime.
- The Outlook secret migration lists the commands for every stale secret, not only the client secret.
Upgrade
agento upgrade --version 0.17.1rc4v0.17.1rc3
Release candidate — for testing.
agento upgradewill not pick this up; pin it.
Carries everything in v0.17.1rc2, plus the toolbox and security fixes below.
Bug Fixes
- SQL queries are now cancelled on the server when they time out. A query that hit
core/sql_timeout_secondswas abandoned by the client while the database kept running it to the end, so the server stayed busy on work nobody waits for. MySQL and MSSQL now cancel the request server-side and set a matching lock timeout. - MSSQL tools honour
core/sql_timeout_seconds. node-mssql ignoresRequest.timeoutand reads onlyrequestTimeoutfrom the pool config, so every MSSQL query failed at the library default of 15 s. The healthcheck keeps its own 10 s limit through request cancellation. - Large-result offload files no longer overwrite each other. The name was
result_YYYYMMDD_HHMMSS.{csv,txt}, so two calls that ended in the same second wrote the same path and the second result replaced the first. The name now carries a random suffix.
Security
- A nested repository config can no longer run commands through the artifact store. The desk and the Git backend refuse a config that a caller placed inside the tree they operate on.
- Outlook replies align the DMARC
header.fromwith the sending mailbox. A reply sent from a shared mailbox could carry afromthe receiving domain's DMARC policy did not accept.
Upgrade
agento upgrade --version 0.17.1rc3v0.17.1rc2
Release candidate — for testing.
agento upgradewill not pick this up; pin it.
Carries everything in v0.17.1rc1 (per-job harness and model pinning) plus the fix below.
Bug Fixes
- Integration tests — the credential-index upgrade test connected to a hardcoded MySQL host and port instead of the configured one, so it failed with
Unknown database 'cron_agent_test_upgrade'on any deployment whose test database is not onlocalhost:3306.
Upgrade
agento upgrade --version 0.17.1rc2