Feature and fix index
Every published release, newest first, with each new feature and each fix on one line. The per-version notes answer “is there anything in here for me?”; this file answers “when did X ship?” and “which release fixed Y?” without opening every release’s notes.
Each line starts with the area it belongs to — [preview], [ecs-ec2], [mirror] — so a fix can be traced back to the feature it repairs, which is not otherwise visible once the bullets are one line long.
From 0.24.0, a line that came from a GitHub issue ends with its number, linked to https://github.com/k-k1/agent-fleet/issues, where bugs and requests are tracked.
0.44.0 — 2026-11-12
Section titled “0.44.0 — 2026-11-12”CLI pins — Claude Code 2.1.322, Codex 0.167.1, Copilot 1.0.109, OpenCode 2.2.7, Muse Code 1.4.15-R8339.1
New / Improved
- [schedules] Gated schedules: run only when a saved work item query has a changed result, with fire caps (#1763, #3809)
- [chat bridge]
!starta new session and!attacha thread to another session from Discord or Slack (#1566) - [watch] Bitbucket Pipelines runs and next runs; shared
ci.run.*types for both CI sources (#3875) - [settings › machine] Drop build output from dormant working copies (#3800)
- [settings › machine] Delete old self-made
~/.af-workfolders one by one, by age (#3881) - [settings › machine] Gradle tool-cache rows for versions no wrapper under
~/repospins (#3202) - [memory] Muse Code’s own memory in snapshots, and imported on the Agent memory switch (#3860, #3858)
- [memory] Tidy-up can propose retiring a memory, with issue/PR state checked (#3788)
- [memory] Automatic lint marks:
af-memory lint --applywhile idle, off by default (#3767) - [memory] Agent memory switch note says what it does; one name for the agent’s own memory (#3856, #3857)
- [appearance] Device-local Text contrast (Standard, Strong, Strongest) (#3786)
- [ecs-ec2] Dark slots reported as an audit entry and an
af-dark-sincetag (detect only) (#2450) - [start flow] Launching in home opens the Start work dialog (#3785)
- [usage] Session usage answers in time after a restart (#3885)
- [console] Archived date on archived sessions, partial cost months worded as such, rail folds kept across sign-out (#3874, #3843, #3787)
- [ECS]
update.shcarries on past a failed side stack and exits non-zero (#3555) - [ECS]
30-ingressmay grow past the inline template limit and then deploys through S3 (#3550)
Fixed
- [AWS] Console AWS sign-in stuck on “starting” with aws-cli 2.36; a login with no link fails after a minute (#3837, #3839)
- [preview] Browser pane disconnected after a minute of silence behind a load balancer (#3842)
- [bitbucket] Connections broke when two processes renewed the token at once (#3736)
- [watch] Watches on vanished PRs kept polling; workflow watches missed runs behind 20 newer ones (#3780)
- [MCP] MCP form’s Watch source box did not follow the tenant switch (#3844, #3865)
- [work items] Remembered Jira repository lost to another tab’s save, and could not be forgotten (#3775)
- [security]
AF_ROUTE_ISSUE_TOKENwas written in plain task-definition environment (#3452)
0.43.0 — 2026-11-10
Section titled “0.43.0 — 2026-11-10”CLI pins — Claude Code 2.1.321, Copilot 1.0.108, rtk 1.2.0
New / Improved
- [watch] Sessions wait for PR checks, conflicts, reviews and merges with
watch/list_watches/unwatch(GitHub, Bitbucket), notices to a parent (#3627, #3628) - [watch]
watchon a GitHub Actions run, or a workflow’s next run, outside a PR (#3779) - [watch]
watchtimers up to 30 days, optionally starting a stopped workspace (#3632) - [watch] A member’s MCP server as a watch source, behind the tenant switch Watch sources (#3631)
- [watch] Webhook pokes:
AF_GITHUB_WEBHOOK_SECRETfor public repositories,af-watch-hookfor private ones (#3630, #3751) - [memory] Opt-in memory tidy-up: model-drafted suggestions with a preview, approve and undo (#3497, #3702, #3720)
- [memory] Memory lint report and
af-memory lint-rename(#3443, #3571, #3496) - [memory]
memory_patchandmemory_feedback, also on external/mcp(#3441, #3496, #3649, #3636) - [memory] Archived or superseded memories hidden from agents and the Claude Code write-back (#3495)
- [workspace] Optional start of a stopped workspace at sign-in, per tenant, with a member opt-out (#2031)
- [workspace] Opt-in restart of an idle workspace onto a new image (#3656)
- [usage] Running hours and cloud cost by month, with month-over-month change (#3383, #3609)
- [tenants] Per-tenant Max PAT lifetime (#3465)
- [work items] Merge a Bitbucket Cloud PR from the detail panel; mergeability shown
- [appearance] Random colors on open, hourly or daily, plus a 🎲 re-pick (#3738)
- [ecs]
20-platformparameterMasterKeyKmsKeyArnfor a customer-managed key on/af-cp/master-key(#3470) - [auth] The Control Plane refuses to start on a weak
AF_MASTER_KEY/AF_COOKIE_SECRET; per-purpose cookie keys by default (#3552) - [security] The Console runs only its own scripts; external Markdown images load on click (#3454, #3458)
- [files] Markdown Split view scrolls together; a tab keeps its mode and scroll (#3659, #3662)
- [work items] Jira launch asks for the repository and remembers it per project (#3770)
- [PR feedback] No repeats of watched events, review notices say what is new, no conflict re-announce on a base move (#3629, #3732)
- [mirror] Skill picker matches word prefixes (#3614)
- [agy] Usage popover lists limits Seen on failed calls (#3744)
- [work items] Kind row shows the tracker’s issue type (#3734)
- [bitbucket]
bktnames the missing scope on a refusal (#3570)
Fixed
- [settings] Tool permissions switch was inverted (#3688)
- [jira] Connections broke when a renewed token was overwritten by an older copy (Bitbucket too) (#3723)
- [mirror] Permission card Allow on tall or rtk-rewritten Bash dialogs; cards left after claude closed the dialog (#3601, #3725)
- [files] Unsaved edits lost on a tab switch (#3663)
- [agy] Conversation translation failed; translate button missing on mixed-language replies (#3745, #3746, #3747)
- [muse] af tools lost after resume or fork; answers hidden until finished, failed drafts shown (#3611, #3612, #3676)
- [sessions]
get_session_outputskipped the rest of a reply still being written (#3618) - [ecs-ec2] opencode’s terminal UI could not start (#3682)
- [kubernetes] Tenant OAuth MCP tokens and some scheduled-run outcomes failed from workspaces (#3761)
- [console] Carried question Markdown, built-in MCP Disable, usage age label, AWS row buttons, cross-tab theme, chat bridge texts (#3597, #3621, #3703, #3573, #3741, #3667)
- [memory] Background memory review removed; waiting suggestions exported once (#3440)
0.42.0 — 2026-11-08
Section titled “0.42.0 — 2026-11-08”CLI pins — Claude Code 2.1.319, OpenCode 2.2.6, Copilot 1.0.107, Antigravity 1.5.3
New / Improved
- [settings] Settings › Agents draws every card at once with a Checking… chip per card (#3385)
- [work items] The detail panel shows the item’s state as a coloured pill (#3542)
- [terminal] A pane whose session stopped says so and points at Resume instead of freezing (#3472)
- [ecs]
30-ingressparameterEgressEventRetentionDaysfor the egress event retention (#3403) - [auth]
AUTHmust be set outside native;AUTH=devneedsAF_ALLOW_INSECURE_DEV_AUTH=1and is refused behind https (#3485) - [auth] Banner for a weak
AF_MASTER_KEY/AF_COOKIE_SECRET; opt-in per-purpose cookie keys (AF_COOKIE_PURPOSE_KEYS) (#3499) - [security] Workspace bridge tokens kept out of ECS task definitions, with a per-member epoch and
af-cp advance-bridge-epochs(#3452) - [terminal] Clipboard writes from inside the terminal ask first; optional Copy without asking after a mouse drag (#3487, #3518)
- [sessions] A handoff’s first message is prefilled and sent by the member, not automatically (#3488)
- [MCP] MCP OAuth trusted clients can be pinned to a callback path; idle dynamic registrations expire after 24 h (#3486)
- [audit] Role changes, tenant creation, member limits and workspace stops are audited; claude Bash audit rows keep program and subcommand only (#3500, #3501)
- [internal git] Pushes are checked for malformed objects (#3493)
Fixed
- [reaper] An attached but idle terminal, terminal auto-replies, reconnects or a visible browser pane kept sessions and workspaces from idling out (#3460, #3461, #3473, #3462)
- [mirror] The permission card’s Allow failed on wrapped, multi-line or “Dangerous rm operation” Bash commands (#3491, #3521)
- [mirror] Automatic translation skipped replies finished on another tab or during background work (#3437)
- [opencode] No compaction on an engine with a context window but no output limit (#3559)
- [security] Cross-site cookie writes, framing, redirect and relay path checks, tenant OIDC endpoints, Jira/Bitbucket callback binding (#3448, #3508, #3490, #3506, #3481)
- [tenants] Invite rewriting another tenant’s identity email, tenant-IdP identities in other tenants, tenant rules on PATs and admin gates, PATs and MCP grants surviving removal; PATs always expire (#3451, #3489, #3450)
- [security] ComfyUI jobs visible across members, chat replies into shell/SSM sessions, unshown fields in share proposals, notification id collisions (#3482, #3507, #3483)
- [preview] Path-form preview redirected to the preview domain, sandboxed without one; rendered Markdown drops forms, inline styles and Console-API media (#3447, #3449)
- [files] File-browser denylist bypass via rename, upload or symlink; unchecked
.gitmodulesnames when seeding submodules (#3502, #3484) - [security] Credentials in logs, audit rows, error bodies and relayed headers; ingest tokens sent to other hosts; slot role reading CP parameters (#3501, #3453, #3446)
- [ecs] EFS file-system policy requires access points and TLS; deploy
10-databeforeupdate.sh(#3445)
0.41.0 — 2026-11-06
Section titled “0.41.0 — 2026-11-06”CLI pins — Claude Code 2.1.318, Codex 0.167.0, Copilot 1.0.106, Antigravity 1.5.2, Kiro 3.1.0
New / Improved
- [claude] Terminal claude sessions can run on the Anthropic API key (Model route in the launch dialog), billed per use (#3281, #3344, #3317)
- [claude] Continue on the API route for a subscription-route session stopped at its usage window; one-way, after a cost confirm (#3283)
- [sessions] Tell sessions about their PR’s feedback (off by default): CI failures and requested changes are told to the PR’s session, which is started if stopped (#3129)
- [egress] AWS egress gateway passes non-HTTP TCP (SSH git, databases) to destinations named as TCP port entries; needs
00-networkdeployed (#3369, #3399) - [toolchains] Amazon Corretto JDKs beside Temurin (#3411)
- [ecs-ec2] The Control Plane follows Amazon’s ECS-optimized AMI itself; outdated slots replaced at next start, reason shown in Slots (#3318)
- [mirror] Cloud command runs fold into their tool call, repeats collapsed;
af-gcloud-execruns recorded (#3329) - [console] This month / Last month / Last 30 days presets on Running time, Cloud cost and the uptime heatmap (#3383)
- [work items] Issue and PR URLs open the work item modal (#3365)
- [egress] Toolchains and agent CLI download hosts allowed by default under enforce (
storage.googleapis.comstill opt-in) (#3432) - [settings] Settings › Agents opens faster; the repository poll pauses while the Console is unattended (#3385, #3333)
Fixed
- [mirror] The permission card could answer the wrong option (Always allow denied, Deny approved); answers matched to the dialog on screen, chat bridge too (#3354, #3359, #3358)
- [mirror] Stopping a Terminal claude session still left the prompt behind in more cases (first prompt, paste, wide-character title, bidi control) (#3345, #3302, #3372, #3373, #3375, #3408)
- [sessions] Stopping a Terminal codex or opencode session could let its turn or a queued instruction run unseen (#2607)
- [agents] A CLI self-update could leave codex or copilot unable to run; reinstalled at the next start (#3416)
- [mirror] A long paste stuck at Pending, a nested claude’s conversation in the mirror, Translate refusing some long turns (#3362, #3355, #3332)
- [terminal] Opening a terminal tab typed
0;276;0cinto shell and SSM sessions (#3337) - [assistant] agy assistant chat ended the turn on a read outside its knowledge folders (#3412)
- [console] Backspace/Delete edited a file in View mode; misaligned per-member bars; EC2 pool tables overflowed; stalled-tree notice repeated (#3381, #3382, #3384, #3351)
0.40.0 — 2026-11-03
Section titled “0.40.0 — 2026-11-03”CLI pins — Claude Code 2.1.317; Confluence CLI 2.31.0 added
New / Improved
- [confluence]
confluenceCLI baked in, signed in through the member’s Jira connection; opt-in per tenant (ten scopes on the Atlassian app, Confluence ticked on the tenant Jira card, members reconnect) (#2212, #3266, #3267, #3309) - [sessions] The session row’s PR chip marks requested changes and merge conflicts (GitHub, Bitbucket) (#3129)
- [mirror] Claude’s background commands listed above the input box with run time and a “may be stuck” warning; Stop ends one (#3279)
- [launch] Save to memo sets a Start working draft and its attachments aside; Start with this on the memo brings it back (#3289)
- [claude] Idle compaction switch in Settings › Agents › Claude (#3303)
- [settings › machine] Leftover files: work folders of archived sessions still inside their 7 days, deleted now after a confirm (#3299)
- [settings] Time zone and region format also reach the Console’s remaining dates and charts, a schedule’s next run, and Agent-written text (with “follow browser”, the last-used browser’s zone) (#3217)
- [console] An unattended visible Console pauses live updates after 10 minutes while nothing is working; lighter session-list reads in the Control Plane and the Agent (#3235, #3236, #3231, #3239, #3255)
- [archive] A working copy’s archive shelf includes its archived child sessions (#3295)
- [console] Work items Show less stays in view; the last browser confirm boxes use the Console dialog (#3296, #3307)
- [agent] More Agent errors in the display language, including the OpenCode 1.x refusal (#3227, #3241, #3246)
Fixed
- [mirror] Stopping a Terminal (CLI) Claude session before its reply glued the stopped prompt to the next message, which stayed Pending (#3290)
- [mirror] A queued Claude prompt with a pasted image showed its thumbnail twice (#3284)
- [llama.cpp] The chat pill stayed as “Not reachable” after llama.cpp was switched off (#3291)
- [sessions] The stalled-tree notice counted a session launched from a handoff proposal as the proposer’s child (#3243)
- [jira] The Jira card’s Site picker could list a site twice (#3265)
0.39.0 — 2026-11-02
Section titled “0.39.0 — 2026-11-02”New / Improved
- [work items] Sessions link to their branch’s PR (GitHub, Bitbucket), Jira keys in the branch or PR title and issues the PR closes;
link_work_itemtool; links inherited; item details list linked sessions (also when stopped) with Remove; merged / closed PRs shown done (#3134, #3147, #3166) - [notifications] A session’s PR merged or closed, or on GitHub ready to merge, is notified once (#3131)
- [sessions] A session whose own PRs are all finished shows a Merged chip that archives it after a confirm; Cleanup lists it for review (#3131)
- [plan review] “Review automatically, up to N rounds” on the live plan card (#2810)
- [home] “At a glance” tiles: machine, running time, agents, model usage, usage limits (#2362)
- [settings] Region format and time zone in Settings › Display; Console dates and numbers and Markdown exports follow them (#2185)
- [workspace] “Not responding” badge for a running workspace whose Agent went silent; shown to tenant admins and notified; optional automatic stop via
AF_AGENT_SILENT_STOP_AFTER(#3212, #2518) - [admin] Tenant admins notified of a member’s nearly full home volume or a failed boot install (#2427)
- [gke] Optional Cloud Storage bucket for the egress archive in the GKE Terraform stack; real-GCS acceptance open (#2733)
- [agents] Re-authenticate on Antigravity, Cursor, Kiro and Muse Code cards; auth-expired toasts name the agent (#3025, #3122)
- [usage limit] Booked auto-resume shown on stopped sessions, moved earlier when a Claude / Codex limit lifts early, cancelled when you carry on by hand (#3185, #3186, #3196)
- [usage] Usage chips keep their last reading across Agent restarts (#3127)
- [workspace] Maven and npx caches in Settings › Machine tool caches (#3079)
- [audit] Connections and API keys, MCP servers, locks and spend caps audited (#2883)
- [opencode] OpenCode 1.x no longer supported: a 1.x is refused, rollback is an earlier 2.x pin, a leftover
opencode-aiin~/.localis removed (#3132)
Fixed
- [approvals] An approval decided right at its timeout could be reported approved although nothing ran (#3042, #3157)
- [mirror] A pending Claude question was drawn twice (#3190)
- [work items] Item details’ session rows overflowed the dialog on narrow screens (#3175)
0.38.0 — 2026-10-31
Section titled “0.38.0 — 2026-10-31”CLI pins — Claude Code 2.1.316, Codex 0.166.0, Antigravity 1.4.12, Kiro 2.37.0, OpenCode 2.2.5
New / Improved
- [AWS profiles] Profiles on one IAM Identity Center portal share one sign-in (one login and logout); existing profiles grouped with Share one sign-in, imports propose it (#3014, #3077)
- [AWS profiles]
af-aws-execruns shown in the calling session with account, role and region; SSM pane prints its identity; per-profile confirm before use in each session (#3050, #3064) - [Settings] Import
~/.aws/config,~/.ssh/config(SSM hosts) and gcloud configurations with a preview, read in the browser; export AWS profiles as a~/.aws/configfragment (#3010, #3017) - [workspace] Settings › Machine breaks the whole home volume down by category (#3083)
- [codex] Re-authenticate button, revoked login reported as a login problem, prompts refused until sign-in, then the session resumes (#3021)
- [workspace] An archived session’s
~/.af-workfolder is removed 7 days after archiving (#3105) - [agent memory] Outside saves by
repositorycan start a project for a cloned repository and accept thememory_projectsremote form; working-copy search no longer times out on large workspaces (#3032, #3098, #3045, #3061) - [cloud login] AWS / Google Cloud login toasts show profile, account and role as fields and count down (#3023)
- [work items] A PR whose mergeability GitHub is still computing shows it is being checked and re-checks (#3012)
- [codex / ecs-ec2] Codex SQLite databases kept on the home volume, not EFS (#3013)
- [audit] More Console actions audited (session archive / restore / recreate, branch delete, staging, repository create) (#2883, #3104)
Fixed
- [usage / budget] Claude subagent and Workflow-agent turns and a long session’s oldest turns were not counted, so budgets did not stop subagent-heavy sessions; cursor Terminal turns also counted as unmeasured (#3051, #3054, #3055, #2495)
- [claude] The reworded 5-hour usage limit was not recognised as a usage limit (#3065)
- [editor] Selected text and some syntax colours unreadable in the dark theme (#3020, #3046)
- [work items] PR panel showed CI passed while a workflow was queued or a status had not reported (#2992)
- [sessions] Stopping a Managed Cursor session recorded a crash; a Codex / OpenCode server exiting on its own recorded stopped (#2996, #3004)
- [approvals] An approval clicked as it timed out was reported approved although nothing ran (#2964)
- [MCP]
create_session’s first prompt lacked the Via MCP marking (#3027) - [worktrees] A worktree made from a worktree got a nested folder name (#2991)
- [UI prefs sync / viewer] Settings stored empty on a device could break pages; the PDF find bar sometimes opened without focus (#2970, #2972)
0.37.0 — 2026-10-30
Section titled “0.37.0 — 2026-10-30”CLI pins — Antigravity 1.4.10, OpenCode 2.2.1
New / Improved
- [macOS] Apple Silicon Macs supported for a single user:
docker-compose.macos.ymlfor Docker Desktop, OrbStack or colima, or thelinux-arm64native package in a Linux VM (Lima, OrbStack) (#2960, #2961) - [installers]
install.shexplains the macOS routes,install-compose.shruns on macOS withshasum,af updatepicks no Linux package on a non-Linux host (#2960) - [jira] Markdown tables are sent as Jira tables (#2943)
- [agent / efs] The Agent stops rereading archived and stopped claude sessions’ files in the background (#2850)
- [internal] Control Plane, Agent and Console code reorganised (ADR 0124); no behaviour change intended
Fixed
- [terminal] Panes side by side showed garbled characters until clicked (#2983)
- [cursor] Default ran the model the CLI last used, which a Free plan refuses; Default now runs Auto (#2928)
- [UI prefs sync] Synced settings failed to load when one stored value was empty (#2904)
- [MCP] A remote MCP client could lose its connection when it renewed its sign-in twice at once (#2885)
0.36.0 — 2026-10-28
Section titled “0.36.0 — 2026-10-28”CLI pins — Claude Code 2.1.312, Codex 0.165.0, Copilot 1.0.105, Antigravity 1.4.8, Kiro 2.35.1, OpenCode 2.2.0, Muse Code 1.4.14-R7309.1
New / Improved
- [skills] Read-only view of agents’ skills: personal (Claude Code, Codex, OpenCode, Muse Code) under Settings › Skills, a repository’s (Cursor too) under Skills… in its row’s menu (#2792, #2795)
- [assistant] A chat turn that fails on a lasting usage or rate limit before any output is re-run on the next backend, with a notice; AI-assist one-offs skip it; a limit about to lift does not switch; a compaction or memory review that hits a limit is not retried elsewhere (#2780)
- [work items] Rows mark new activity; GitHub and Bitbucket rows show comment counts (#2779)
- [workspace] Settings › Machine charts memory pressure (measure only) (#2516, #2837)
- [viewer] Find in the PDF pane: Ctrl/Cmd+F opens its own find bar over every page (#2822)
- [work items] The Merge button is offered to GitHub App sign-ins on a positive permission check (#2753)
- [plan review] “Review again in ‹reviewer›” is offered on every device for reviews started from this version (#2496)
- [mirror] A Claude conversation restored from the Agent’s backup says so (#2740)
- [work items] Comments are accepted only from the Console by the workspace’s member, and audited (#2752)
Fixed
- [chat] A mistyped slash command stayed Pending forever on claude; the warning now shows (#2830)
- [jira] Markdown bodies were garbled next to Japanese text, and
issue create -Pdropped the parent (#2809, #2812) - [opencode] opencode 2: empty Agent instructions preview; a
/newsession’s first turn did not update its status (#2799, #2827) - [assistant] claude’s own auto-memory stayed on with Agent Fleet memory (#2488)
- [mirror] A slash command with an attachment showed an internal instruction in its chip (#2823)
- [misc] IPv6 Control Plane URL in the egress allowlist, MCP connection-test timeouts, Settings heading spacing (#2754, #2820, #2813)
0.35.0 — 2026-10-26
Section titled “0.35.0 — 2026-10-26”CLI pins — Claude Code 2.1.310, Codex 0.164.0, Antigravity 1.4.7, OpenCode 2.1.4, Muse Code 1.4.13-R6996.1, rtk 1.1.0
New / Improved
- [AWS / egress] Optional egress gateway (
EgressRoute=gateway, preview): workspace HTTP(S) traffic leaves through its own Elastic IP, the Egress allowlist applies to ECS workspaces, and each connection is recorded with the workspace it is matched to; paused and restored bypause.sh/standup.sh(#2717, #2728, #2729, #2742, #2759, #2665) - [AWS / networking] Workspaces get their own subnets and the S3 endpoint gets a restrictive policy (#2716, #2657, #2763)
- [egress] Raw egress events are kept 30 days (
AF_EGRESS_EVENT_RETENTION_DAYS) and can be archived to S3, Google Cloud Storage or a local directory before the purge (#2675, #2699, #2720, #2732, #2734) - [MCP] Tenant admins distribute OAuth MCP servers, optionally with a pre-registered client (#2479)
- [MCP / memory]
/mcp/memory, an endpoint that reaches only the memory tools; outside memory tools pick the project by repository URL (#2764, #2765, #2766) - [MCP] MCP tokens moved to Settings › Outside access › MCP tokens & apps, with a warning that a token given to a session reaches all your sessions within its scope; this deployment’s own
/mcpcannot be registered as a session’s MCP server (#2680, #2696, #2677) - [work items] Merge a GitHub pull request from its work item (#2632)
- [work items] Report back on Bitbucket pull requests with
pullrequest:write(#2709) - [toolchains] Exact JDK / Node.js patch, patch updates, the version Install fetches, pruning and Uninstall (#2624, #2625, #2646, #2647, #2648)
- [sessions] Managed sessions get
$AF_WORK_DIRand$AF_SESSION_NAME(opencode 2 on the shared server) (#2431, #2710, #2715) - [opencode] opencode 2 Terminal sessions on the shared server branch from a past message; to-dos show as ToDo (#2493)
- [memory] The memory browser pages back through all changes and forgotten memories; multi-word search shows full matches, or marked partial ones when none (#2486)
- [sessions] The move dialog shows copilot and Antigravity quota (#2492)
- [claude] Login expiry shown in the repository launch dialog; a first prompt lost to it offers Re-authenticate (#2494)
- [ECS]
30-ingresssets the idle timers, GitHub sign-in extras and LAN engines (#2596) - [docker] The workspace listener (
AF_CP_INTERNAL_URL) is supported (#2776)
Fixed
- [peer messages] A message to a stopped claude could be lost on resume while reported delivered (#2741)
- [sessions] Terminal Stop could fail to interrupt opencode, cursor and copilot (#2491)
- [MCP] Every claude session ran two
afMCP servers after an upgrade from an old version (#2678) - [i18n] Error messages, the MCP connection test’s included, were Japanese whatever the display language (#2483, #2721)
- [ecs-ec2] Stop (force) could leave the slot’s network interface attached (#2524)
- [admin] Member detail stalled while a home’s size was measured (#2425)
- [egress] Observations were lost when the report to the Control Plane failed (#2603)
- [preview] The development OIDC IdP refused callbacks on owner-only ports (#2500)
- [kubernetes] AWS instance-metadata lookups from workspaces are disabled by default; the home-nearly-full notice was missing (#2498)
- [misc] MCP sign-in, memory suggestions, memory import limit, inbox attachments, skipped toolchain upgrades, labels (#2586, #2689, #2695, #2690, #2584, #2487, #2489, #2499, #2502, #2484, #2505)
0.34.1 — 2026-10-23
Section titled “0.34.1 — 2026-10-23”New / Improved
- [ECS]
30-ingressparametersMcpEnabled,McpOAuthandMcpOAuthTrustedHoststurn on/mcpand MCP sign-in;SessionTtl,GithubAllowedEmailsandKmsDataKeyCacheTtlare settable too (#2595)
Fixed
- [compose]
AF_MCP_ENABLED=1in.env.exampleleft/mcpoff; the example now showstrue(#2595)
0.34.0 — 2026-10-23
Section titled “0.34.0 — 2026-10-23”CLI pins — Claude Code 2.1.309, Copilot 1.0.103, Antigravity 1.4.5, Cursor 2026.10.22-27dcf5f, Kiro 2.33.1, OpenCode 2.1.3, Muse Code 1.4.12-R6909.1
New / Improved
- [MCP] Remote MCP clients (claude.ai, ChatGPT, Claude Code and others) connect to
/mcpby signing in; connected apps with recent calls, a tenant switch, trusted client hosts in the Admin panel, and a Via MCP mark on their input (#2433, #2434, #2455, #2457, #2531, #2542, #2567) - [MCP] Sign in to MCP servers that require OAuth from Settings; sessions use them through a relay in the workspace (#2479, #2485, #2549, #2568, #2580)
- [MCP] The MCP server forms start from a remote server with a display name and an authentication choice (#2550)
- [ecs-ec2] Stop (force) for a wedged pool slot (#2449)
- [ecs-ec2] The host keeps 2 GiB of every slot and its ECS and SSM agents are protected from reclaim (#2451, #2452)
- [ecs-ec2] A Start stuck behind a task that cannot finish stopping is shown as blocked (#2447)
- [files] Open shell here in a folder’s context menu (#2460)
- [jira]
jira issue comment editanddelete(#2477) - [jira] Retries, timeouts and candidate issues after a timed-out create; Agent instructions may prefer an Atlassian MCP tool (#2476, #2532, #2538, #2539, #2543)
- [muse] Muse Code 1.4.12 and its new record kinds (#2575)
- [muse] Muse Code contributor mode setting (#2535)
Fixed
- [copilot] Sessions did not start once copilot had updated itself to 1.0.103 (#2576)
- [ecs-ec2] A workspace stuck in “starting” could not be stopped; a Start after a size change timed out on a wedged slot (#2446, #2448)
- [ecs-ec2]
AF_ECS_EC2_HOST_RESERVE_MB=0was treated asauto(#2503) - [workspace] Folders made by the member under
~/.af-workcould be deleted at start (#2454) - [mirror] A just-finished reply could vanish for a moment (#2564)
- [opencode] Terminal panes could stay disconnected after the shared server restarted (#2432)
- [MCP] ChatGPT refused the
/mcptool list because of an invalid schema (#2540) - [preview] The Preview settings entry stayed hidden after a Control Plane error (#2317)
- [command palette] The selection could fall off the list (#2504, #2554)
0.33.0 — 2026-10-21
Section titled “0.33.0 — 2026-10-21”CLI pins — Claude Code 2.1.305, Copilot 1.0.101, Antigravity 1.4.3, Cursor 2026.10.19-6bbf2c4, OpenCode 2.1.1, Muse Code 1.4.11-R6667.1
New / Improved
- [members] Members page as one card per member: state badge, filter, sort, search, sessions, last active, home disk, live memory and CPU (#2385, #2388, #2389)
- [workspace] A full home disk and failed CLI installs are shown to the member and the tenant admin; a start of that kind is refused with the reason (#2383, #2398)
- [command palette] Memory mode searches Agent memory (#2407)
- [command palette] Shift with the palette chord cycles modes backwards; PageUp/PageDown page; the mode hint has its own line (#2412, #2421)
- [preview] Loopback URLs in Markdown open the workspace preview of that port (#2414, #2419, #2426)
- [session-to-session messages] A parent gets one notice when its whole session tree has been idle for 15 minutes (#2397)
- [mirror]
$AF_WORK_DIRpaths in Terminal replies are links; file menus open the folder or the folder in the gallery (#2429) - [sessions] kiro can be a move target (#2252)
- [handoff] Handover file in the Console language, with discarded inputs and fewer old read-only calls (#2233)
- [muse] Muse Code 1.4.11 and its new record kinds (#2394)
- [ECS]
pause.shdeletes the NAT gateway while paused and keeps a paused RDS instance stopped (#2386)
Fixed
- [workspace] A half-failed CLI install at start was logged as successful and the broken binary kept (#2384)
0.32.1 — 2026-10-19
Section titled “0.32.1 — 2026-10-19”CLI pins — Claude Code 2.1.303
New / Improved
- [agent memory] Tenant admins can block external access to Agent Fleet memory; allowed by default (#2318)
- [issue tracker] The Jira card says when the connection lacks the Jira Software scopes (#2372, #2377)
Fixed
- [agent memory] Memory suggestions ran automatically once turned on; automatic review is now a separate switch, off by default (#2358, #2356)
- [opencode] A stopped session’s conversation history was empty (#2379)
- [workspace]
jira issue create -p KEYfailed withoutjira initand reused another project’s issue types (#2369, #2373) - [work items] A Jira work item’s first prompt pointed at a Jira MCP server instead of the
jiraCLI (#2367) - [MCP] The connection test passed for servers that lose sessions behind a load balancer (#2368)
0.32.0 — 2026-10-18
Section titled “0.32.0 — 2026-10-18”CLI pins — Claude Code 2.1.302, Codex 0.163.0, Copilot 1.0.98, Antigravity 1.4.2, Cursor 2026.10.16-e3cb207, Kiro 2.32.0, OpenCode 2.0.32, Muse Code 1.4.10-R6427.1
New / Improved
- [sessions] Move a session to another agent with a handover file; a usage-limit band offers the move (#2182, #2254)
- [sessions] Export a conversation as Markdown: conversation only, tool names, or tool output (#2183, #2202)
- [preview] Development sign-in (dev OIDC IdP) for apps on preview hosts, with copy-ready app configuration and test personas; on by default (#2218, #2222, #2223, #2228, #2304)
- [workspace] The Jira CLI
jirais bundled and signs in through the Jira connection (#2178) - [agent memory] Experimental: finished sessions suggest memories, approved under Changes › Proposed; off by default (#1559, #2320, #2321)
- [agent memory] Agents outside Agent Fleet can use Agent Fleet memory through
/mcp; off by default (#1988, #2329) - [agent memory] Settings split into Agent memory and Memory snapshots, list-and-detail memories, one Import & export page (#2324)
- [opencode] The image moves to opencode 2 (2.0.32); conversations carry over (#2105, #2134, #2133)
- [plans] Review a revised plan again in the same reviewer; review a carried plan in another session (#2219, #2211)
- [agents] An expired Claude login in the assistant chat offers Re-authenticate and Retry; Re-authenticate opens the agent’s card (#2180, #2177)
- [agents] claude resumes sooner after giving up on a held login-refresh lock (#2231)
- [idle stop] Background work holds a workspace for at most 2 hours (
background_hold_max); a Managed cursor, kiro, codex or opencode turn silent for an hour stops holding it (a running tool or an unobservable turn still holds) (#2338, #1942) - [kiro] Terminal approval prompts are read from kiro’s recorder (#2285)
- [cursor] Terminal sessions record per-turn token usage (#2286)
- [sessions] The session menu is grouped into sections (#2189)
- [agents] claude helper calls no longer start your MCP servers (#2334)
Fixed
- [session-to-session messages] Long or multi-line messages to a busy claude Terminal session were truncated; queued or rejected messages were reported as delivered (#2195, #2288, #2299)
- [agent kinds]
create_sessionwith a misspelled kind started a claude session (#2297) - [worktrees] Switching to a remote branch went wrong when two remotes had the same branch name (#2268)
- [idle stop] A background shell running a
workspace-agentcommand did not keep the workspace awake (#2351) - [usage] Usage chips showed a window past its reset as near its cap (#2184)
- [worktrees] Delete working copy hid “Stop the running sessions first” for copies with unpushed or uncommitted work (#2201)
- [console] The project list emptied on a failed load; the active session row hid its state chip (#2191, #2192)
- [preview] On a phone the WS bar’s port preview buttons spilled out of the popover (#2308)
- [native] The user guide did not open on a native install without a rootfs (#2315)
- [preview] Malformed host names under the preview domain reached the Console instead of 404 (#2240)
- [agent memory] Snapshot history stayed on “Loading…” or read a failed load as empty; it now offers Retry (#2344, #2347, #2349)
- [settings › toolchains]
bktwas missing (#2179) - [ECS] The missing-EFS-backup warning stayed after a backup plan was added (#2063, #2066)
0.31.0 — 2026-10-14
Section titled “0.31.0 — 2026-10-14”CLI pins — Claude Code 2.1.300, Codex 0.162.1, Copilot 1.0.97, Antigravity 1.3.5, Cursor 2026.10.12-d47ca18, Kiro 2.31.0, OpenCode 1.19.0, Muse Code 1.4.8-R6256.1
New / Improved
- [members] Inbox: messages and requests between tenant members; a request is taken by one recipient, who can start a session from it (#1961)
- [members] Opt-in limit board: publish your usage-limit state to the tenant or chosen members (#1962)
- [onboarding] Home view with what is waiting, what to continue and what to start; the first-run checklist moves there (#2028, #2027)
- [admin / tenants] Member defaults name the agent new members connect (#2026)
- [agent memory] Memory browser in Settings: all scopes, body search, create/edit, forget/restore, purge past revisions (#1985, #1999, #2003, #2007, #1997, #1982)
- [agent memory] Import from muse and from a memory bundle; move or merge an orphaned project’s memories, suggested by remote (#1991, #2005, #1983, #1984, #2110)
- [agent memory] Turning the switch on imports claude’s memory and off writes it back; muse’s own memory is off while it is on (#1972, #1990)
- [agent memory]
memory_searchranks by relevance and falls back to any word (#1981, #1995) - [mirror] A memory write in the changed-files strip opens (#2148)
- [preview] The owner can open any listening port on the preview subdomain without registering it (#2138)
- [preview] The preview and browser pane say why a port failed (nothing listening / not HTTP / HTTPS) (#2139, #2151)
- [Markdown] Right-click menu for file and folder links (#2059)
- [workspace] The Bitbucket CLI
bktis bundled and signs in through the Bitbucket connection (#2079) - [ECS] Opt-in per-home credential-store keys (
WorkspaceDekRandom) andaf-cp rewrap-keysfor the KMS custodian (#1646, #1979, #1645, #1956) - [handoff] Received handoffs in the inbox, members named by e-mail, and “Push, then send” (#2075, #2072)
- [sharing] Sharing and handoff dialogs open quickly with many sessions (#2074, #2098)
- [agents] Stopped claude conversations are kept, backed up and restored on resume (#2062, #2073)
- [agents] claude’s
/modelskips the “Switch model?” dialog (#1920) - [agents] An expired Claude login offers Re-authenticate from a refused send and the start dialog (#2125)
- [AWS] A role-chaining profile follows its source’s sign-in in the WS bar (#1109)
- [idle stop] A frozen Terminal session of codex, cursor, copilot, kiro or opencode stops holding its workspace after an hour (#1830)
- [agy] Terminal sessions track conversation and working/idle through agy’s own hooks (#2156)
- [opencode] A Managed session shows a provider error while retrying and fails on a permanent one (#2129)
- [lcpp] Many MCP tools are reached through a search tool (#1565)
- [ecs-ec2] Slots from an older launch template are replaced at the next Start (#1934)
- [ECS] Admins are warned when
Persistence=retainhas no EFS backup (#2063, #2066)
Fixed
- [handoff] A recipient could start a just-withdrawn offer; a closed offer’s notification opened it (#2020, #2040, #2058, #2041)
- [handoff] “Hand off to a member” said the workspace was not running for members with very many sessions (#2064)
- [worktrees] A new-branch session failed with
invalid referenceon a base pushed after the last fetch (#2019) - [sessions] “Ask AI to suggest” a title was refused for minutes after a failed automatic attempt (#2061)
- [opencode] Terminal sessions lost their conversation after an Agent restart (#2122)
- [console] Dialogs closed when a selection ended on the backdrop; text boxes could grow wider than the dialog (#2054, #2056)
- [mirror] A band appearing above the conversation shifted the view while reading further up (#2144)
- [admin / ecs-ec2] On a phone the EC2 pool tables pushed the page sideways; Slots tab actions did not look like buttons (#1959, #1935)
0.30.0 — 2026-10-09
Section titled “0.30.0 — 2026-10-09”CLI pins — Claude Code 2.1.295, Codex 0.162.0, Copilot 1.0.94, Antigravity 1.3.2, Muse Code 1.4.4-R5419.1
New / Improved
- [composer] Waiting to send: hold follow-up prompts while a turn runs and send them one at a time (#1083)
- [files] Download a folder as zip from the Files tree and the gallery (#1829)
- [terminal] Ctrl+C copies a selection and Ctrl+V pastes; can be turned off in Settings › Display (#1708)
- [AWS] Settings profile type “Assume a role from another profile” (#1109)
- [agent memory] Write Agent Fleet memory back to Claude Code (#1914)
- [agent memory] Pinned memories;
memory_indexranks the rest by use (#1703) - [agent memory] While on, Agent Fleet memory replaces claude’s own memory; every kind gets the usage guidance; imports are no longer shortened (#1734, #1733, #1921)
- [MCP]
create_sessioncan start a child in the parent’s own working copy (allow_shared_working_copy) (#1826) - [left pane] A folded repository shows its newest session in its row (#1915)
- [command palette] Child sessions are grouped under their parent (#1887)
- [work items] Jira keys of any connected project link, Jira and Bitbucket items outside the inbox are read live, and
#Nlinks in a Markdown file’s preview (#1899, #1661, #1900, #1909) - [git hosting] Expiring GitHub App user tokens renew themselves (#1676)
- [Google Cloud] Log out from Settings and the WS bar;
af-gcloud-execrenews its token during long commands (#1850, #1488) - [AWS]
af-aws-execandaf-gcloud-execat a member’s terminal ask the Console for the login (#1512) - [work items] The default GitHub query names the type (#1715)
- [usage] The Muse Code usage menu links to Meta’s usage page (#1892)
- [i18n] The rest of the Console’s English is plainer; several notes match the Console’s behaviour (#1823)
- [guide] Where members put their own Claude Code hooks, skills and agents (#1780)
Fixed
- [ecs-ec2] Chromium failed on ecs-ec2 workspaces; Fargate now greys out the browser features (#1927)
- [agents] The Remote control toggle never connected claude sessions (#1254)
- [repositories] A leftover git
index.lockblocked fast-forward for good (#1930) - [MCP] Unknown arguments were silently ignored (
promptstarted an idle child) (#1905) - [Markdown] An unclosed
<a>or other formatting tag turned every following paragraph into a link (#1846, #1853, #1876) - [idle stop] A command Antigravity ran in the background did not keep the workspace awake (#1825)
- [command palette] Reopening kept the old selection; an old Conversations hit landed at the end (#1886, #1663)
- [members] “Delete this member” was offered while the workspace still existed (#1888)
- [cloud login] Submitting a login code could report an error although it was delivered (#1885)
- [WS bar] On a phone the WS bar could be wider than the screen (#1650)
0.29.1 — 2026-10-07
Section titled “0.29.1 — 2026-10-07”Fixed
- [MCP]
list_repos,get_session_outputand other af tools failed in claude 2.1.292 with a schema validation error (#1842) - [session state] A claude session stayed “in progress” 45–60 s after its answer while the Stop hook ran (#1834, #1836)
0.29.0 — 2026-10-07
Section titled “0.29.0 — 2026-10-07”CLI pins — Claude Code 2.1.292, Codex 0.160.1, OpenCode 1.18.35, Copilot 1.0.92, Antigravity 1.3.0, Kiro 2.28.0, Muse Code 1.4.3-R5018.1
New / Improved
- [svn] Show log and Local changes views with diffs for SVN working copies (#1705)
- [agent memory] Import claude’s auto-memory into Agent Fleet memory from Settings › Agent memory or
af-memory(#1569) - [display] Separate appearance per tenant, applied on a tenant switch (#1692)
- [idle stop] A Terminal claude or Antigravity session with no progress for an hour no longer holds its workspace; the outlook shows how long it has been working (#1811, #1818, #1819)
- [agent memory] The Agent Fleet memory switch moved to Settings › Agent memory (#1735)
- [agent memory]
memory_indexis ranked and bounded, and names what did not fit (#1702) - [sessions] Archived sessions opens quickly and is wider (#1701)
- [work items] A linked PR or issue outside the inbox shows its title, state and assignees (#1697)
- [image generation] Antigravity edits from up to three reference images and reports an account without image generation (#1718)
- [i18n] The Console’s Japanese follows one glossary and notation; plainer English settings text
- [guide] The user guide rewritten in plainer English and Japanese; stale chapter links and facts corrected (#1725, #1726)
Fixed
- [image generation] The Antigravity route produced nothing and the codex route failed on ChatGPT accounts (#1716, #1711)
- [muse] Questions could not be answered or cancelled, and a waiting question showed as in progress (#1695)
- [muse] A session stopped by its usage limit was neither marked nor auto-resumed (#1766)
- [agents] Turning RTK on or off removed the user’s own Claude Code Bash hooks (#1779)
- [worktrees] A claude session in a worktree stopped at the folder-trust dialog (#1784)
- [composer] A long prompt with an image in claude Terminal arrived as
[Image #N](#1686) - [tenants] The left pane and top bar kept the previous tenant’s data after a switch (#1680)
- [tenants] The tenant’s default machine class was ignored on a scheduled wake and a home resize (#1687)
- [work items] GitHub refresh failed with a bare 422; the reason is shown and the query retried (#1690)
- [AWS] Profile logout did not end the AWS session once the SSO token had expired (#1689)
- [gallery] Thumbnails of rotated JPEG photos were sideways (#1643)
- [mirror] Skill picker entries lost their description line; the spawn badge tooltip names the parent (#1782, #1752)
0.28.0 — 2026-10-04
Section titled “0.28.0 — 2026-10-04”New / Improved
- [sessions] Search past conversations from the command palette (Conversations) and with
search_sessions(#1558) - [sessions] Find a session by its issue, PR or Jira key in the left-pane filter and the palette (#1665)
- [mirror] Ticket references in the mirror and the assistant chat open the work item (#1659)
- [usage] Per-session spend budget: stop after the turn at the budget, Raise budget & resume (#1054)
- [agent memory] Agent Fleet memory shared by every kind, off by default, with a change list to revert or forget (#1569)
- [git] Connect GitHub through a built-in OAuth App or GitHub App; a tenant’s own app kind is detected (#1667)
- [image generation] Paint the inpaint mask on a canvas over the picture (#956)
- [gallery] Include subfolders, send a picture to a session, EXIF-aware width × height (#961)
- [engines] LAN ComfyUI URL and key in Admin › Inference engines;
comfyui-lan.shruns the pinned image on a LAN host (#957, #958) - [AWS] Opt-in KMS key custodian for member secrets (#969)
- [notifications] One settings table: kinds × dot / OS notification / read-aloud (#1085)
- [console] The WS bar folds by width instead of wrapping (#1642)
- [agents] Live compacting for codex Terminal and OpenCode; OpenCode’s reported cost in usage (#1139, #1082)
Fixed
- [agents] Auto-resume declined a first request the usage limit had refused (#1658)
- [question cards] Picking a single-choice option erased the free text (#1653)
- [session state] A turn reported finished early when a user Stop hook blocked the stop (#1600)
- [mirror] Changed files misplaced files under a symlinked
~/reposor~/.af-work(#1610)
0.27.0 — 2026-10-03
Section titled “0.27.0 — 2026-10-03”CLI pins — Claude Code 2.1.288, Codex 0.160.0, Copilot 1.0.91, Antigravity 1.2.16, Cursor 2026.10.01-e373342, Kiro 2.27.1, Muse Code 1.4.2-R4684.1
New / Improved
- [Google Cloud] Profiles in Settings,
af-gcloud-execwith a Console login, WS bar badge (#1495, #1496, #1497, #1498, #1511, #1517) - [AWS] WS bar chip for profile sign-in, per-profile Log out, warning before a login ends, region list (#1477, #1502, #1483, #1029, #1506)
- [sessions] Session rows show the branch’s PR and listening ports (#1062)
- [schedules] Delivery targets (assistant, notifications, Discord, Slack) and a silent
[SILENT]answer (#1560) - [start flow] First-prompt templates and history, skill picker, any file type; provisional branch names re-asked for up to 45 s (#1469, #1448, #1447, #1440)
- [sessions] Session menu: recreate a missing worktree, open the repository menu; session links open the session menu (#1445, #1557, #1553)
- [MCP]
peek_session_outputreads a peer’s recent output (#1061) - [session-to-session messages] A peer message to a session waiting on its user is queued until the answer (#1031)
- [ecs-ec2 › slot pool] Reserve slots for replacement at their next start (Settings › Admin › Slots) (#1473)
- [internal git] Tenant admins rotate one member’s git token (#1199)
- [ECS] Recreate, Clean home and Destroy reach the EFS home; interrupted home operations finish after a CP restart (#1260, #1536, #1537, #1544)
- [admin] Removing a member stops their workspace and pauses schedules; a re-invite resumes them (#1087)
- [mirror] Changed files separates session scratch and other working copies (#1607)
- [display] Tabbed grid is the default layout for new users and devices (#1481)
- [mobile] Swipes follow left-rail order and skip shell / SSM (#1595)
- [settings modal] Consistent headings, sections and spacing in Settings and the admin dialogs (#1480, #1491)
- [ECS] The CP task role is fenced to this deployment’s instances and Amazon-owned or public images (#1423, #1522, #1576)
Fixed
- [sessions] Queued peer, operator and scheduled messages were lost on a stop or Agent restart; a queued peer could enter a resumed turn (#1255, #1257, #1550)
- [AWS] SSM Force re-login signed out every AWS profile (#1484)
- [ecs-ec2] A slot could be quarantined after a release and a start raced on one home mount (#1592)
- [image generation] codex Managed never saw the studio’s trial tool when the switch was turned on later (#1132)
- [codex] A slow scan of loaded threads never finished (#1147)
- [mirror] A cancelled question read as declined by the agent; chip menu reopened on dismiss; Translate stuck after a remount (#1604, #1556, #1589)
- [console] Escape on overview card menus, pinned worktree header under a wrapped repo header, ahead/behind chip spacing (#1449, #1584, #1509)
- [admin] Member keys and tenant slugs could name another directory under the data root (#1455, #1214)
0.26.0 — 2026-10-01
Section titled “0.26.0 — 2026-10-01”CLI pins — Claude Code 2.1.286, Codex 0.159.3, OpenCode 1.18.34, Copilot 1.0.90, Antigravity 1.2.14, Kiro 2.26.1, Muse Code 1.4.1-R4503.1
Security
- [AWS] AWS credentials of the workspace or its host are no longer handed to agent sessions; operator steps in the notes
New / Improved
- [distribution] One GitHub Release per version carries the rootfs; native package for arm64 Linux (#1345)
- [stop] Two-stage Stop for Managed sessions: the first ends the turn and keeps the queue, a second (or “Stop and discard the queue”) discards it, with Put back / Back to input / Remove (#1289, #1292, #1293, #1294, #1244, #1256)
- [mirror] A claude reply shows while it is being written: Off / Line by line / Typewriter (default) (#1250, #1274, #1396)
- [branch names] Initialize Git Flow from the Console, creating local tracking branches (#1126, #1329)
- [workspace] A start stuck past 30 min is stopped; the member is notified and admins see why (
AF_WORKSPACE_START_DEADLINE) (#1240, #1298, #1384) - [branch names] Tenant naming rules under Tenant settings › Branch naming rules (#1127, #1120)
- [branch names] English slug for non-ASCII titles from the AI suggestion (#1129)
- [MCP]
branch_nametool for sessions (#1128) - [notifications] Claude Code’s push notifications reach the notification center (#1069)
- [AWS] Edit profiles and SSM hosts in place; a profile in use cannot be deleted (#1409, #1411)
- [image gallery] S / M / L tiles, width × height, faster opening of new pictures (#961)
- [worktrees] The sync chip and parent fast-forward compare against the parent’s upstream (#1415)
- [engines] Tenant admins can limit LLM / image engines to granted members (#1215)
- [worktrees] Recreate offers a squash/rebase-merged PR’s head; a reused branch takes its newest merge (#1043, #1397)
- [overview] Context gauge, token trend, model and last line for every agent kind (#1342, #1362)
- [skills] The skill picker offers the other agents’ personal skills (#1351)
- [instructions] llama.cpp listed in Agent instructions (#1202)
- [ECS] Daily EFS backup under
Persistence=retain(#1195, #1235) - [ECS]
--comfy-digestpins the ComfyUI copy instandup.sh/update.sh(#966, #1319) - [muse] Mirror backfilled on resume, image thumbnails, background commands show as busy (codex Managed too) (#1197, #1350, #1358)
- [codex] Managed → Terminal switch needs the session stopped first (#1148, #1147)
- [admin] Irreversible admin actions are audited before they run and refused without the log (#1266, #1334)
- [internal git] Rename / delete only by the creator or a tenant admin (#1200)
- [issue tracker] The rail stays put on collapse, pins its filter, keeps fold-toggle focus (#1348, #1360)
- [deploy] Warning and banner when signing people in without
AF_MASTER_KEY(#1080)
Fixed
- [muse] Muse Code 1.4 sessions without a model ran on the contributor model; the picker showed only “Default” (#1344)
- [AWS] Recreate and Clean home removed nothing; now work on ecs-ec2, refused on ecs (#1225, #1259, #1260)
- [agents] Prompts were typed into Codex / OpenCode / Cursor Terminal question, permission, update and lock screens (#1227, #1263)
- [agents] Stuck “working”: codex Esc, opencode after a kill, Managed queues after a lost runtime (#1264, #1265, #1258)
- [agy] “Waiting for input” shown mid-turn (#1424)
- [AWS] Console login stopped at “unexpected sign-in URL” for issuer-form start URLs (#1408)
- [worktrees] Delete and branch switch ignored running Managed sessions (#1169)
- [browser pane] Early “ready”, “unreachable” after an aborted navigation, a freeze on a failed load, a doubled off-loopback notice (#1353, #1377, #1381, #1386, #1406)
- [AWS] Compaction, plan refresh, Ask and edit suggestions failed past a minute (#1151)
- [source control] “Committed” marks and the submodule list never loaded (#1183)
- [mirror] Peer message merged into the member’s bubble; marker pill painted the neighbouring pane; skill picker tap, close and dark-mode contrast (#1369, #1286, #1217, #1220, #1226)
- [diff] Empty numbered row after the last line (#1160)
- [ecs-ec2] “Cannot start” shown after the workspace started (#1271)
- [image generation] Reusing a Qwen-Image-Edit inpaint ran a whole-picture edit (#955)
- [lcpp] Skills it could not open were offered in a subdirectory (#1361)
- [internal git] Clone failed with a port in
PUBLIC_BASE_URL; LFS GC could delete objects in use; LFS quota drift;/git/refused withoutPUBLIC_BASE_URL(#1198, #1210, #1211, #1335, #1212) - [deploy]
0did not turn off four interval loops; a CP image built from source had no user guide (#1186, #1176) - [MCP] The admin tool to stop another member’s session never ran; now
stop_user_session(#1188) - [ECS] CP’s SSM commands and its tag writes scoped to its own slot instances (#1182, #1419)
0.25.0 — 2026-09-29
Section titled “0.25.0 — 2026-09-29”CLI pins — Claude Code 2.1.284, Codex 0.158.0, OpenCode 1.18.33, Copilot 1.0.89, Antigravity 1.2.12, Cursor 2026.09.28-64d2043, Muse Code 1.4.0-R4302.1
New / Improved
- [branch names] A session started from a work item takes its branch name and base from the repository’s rules (
.agent-fleet/branches, git-flow, Bitbucket’s branching model); advisory only; the default becomesfeature/1113-<title words>,fix/for a bug (#1120, #1124, #1125) - [issue tracker] Open PRs show CI status and merge conflicts (#1113)
- [issue tracker] The “already started” list shows session names and restores archived sessions (#1108)
- [AWS]
af-aws-execruns your own assume-role andcredential_processprofiles with--account(#1107) - [AWS] Settings › AWS profiles/SSM (was “AWS SSM”): Log in and a login-state badge on each profile row
- [agents] A Managed session that fails to start shows the last lines its CLI printed (#1076)
- [MCP]
create_sessiontakes the child’s reasoning effort (#1068) - [image generation] Studio on a phone: draft bar in view while typing, composer on the bottom edge, toasts off the composer; “N pictures are ready” stays until seen (#1089, #1090)
- [issue tracker] AI-suggested titles keep the work item’s key; the filter gets the shared box, × and Escape
- [question cards] A translation asks again for the fields it dropped (#1114)
- [engines] gemma-4, LFM2.5 and GPT-OSS memory sized correctly (#975)
- [mirror] Long llama.cpp conversations read faster
- [ECS]
update.shmoves a ComfyUI tag still on an earlier default (#965)
Fixed
- [codex] Terminal (CLI) codex sessions ran in the home directory and could not resume; switching Managed → Terminal stopped at “open in another app” (#1131)
- [ECS] AI suggestions that took close to a minute failed on AWS deployments
0.24.0 — 2026-09-27
Section titled “0.24.0 — 2026-09-27”CLI pins — Claude Code 2.1.283, Codex 0.157.1, Antigravity 1.2.11, Cursor 2026.09.26-dd393fe, Kiro 2.24.1, Muse Code 1.4.0-R4161.1
New / Improved
- [AWS] Settings › AWS SSM profiles are written into
~/.aws/config;af-aws-execruns a command as you, and a Console toast asks you to log in when the login has expired (#998, #1026, #1036) - [worktree] Deleting a worktree goes to the trash with its branch and uncommitted changes, and restoring brings it back at the same path with its sessions; older deletes can be recreated from the archive (#1040, #1042)
- [notifications] Sessions that need you get an amber outline and pane ring, unread rows a bold title; Alt+U jumps to the next; a notification is read once what it points to is on screen (#1057)
- [models] The model pickers show API list price, context window and retirement (not for cursor, Muse Code, llama.cpp or claude’s tier names) (#1021)
- [notifications] Desktop notifications programs raise in a Terminal (CLI) session (OSC 9 / 99 / 777) reach the notification center (#1058)
- [settings › machine] Leftover files: stale Chromium profiles, orphaned
~/.af-workfolders, old Node patches and Kiro versions, removed on a press and at Agent start (old Copilot and Cursor versions too) (#1038, #981) - [settings › agents] Your own period for archiving stopped sessions (1–30 days, or Off) (#982)
- [image generation] Clip skip, FLUX guidance and Anima shift can be set from the studio, a catalogue row and
generate_image(#1035) - [image generation] The studio works on a phone, starts from a repository or worktree row, and runs several studios with their own results; every pane edits a studio (#1074)
- [issue tracker] Every label in its tracker colour, priority first; a query that matched more than was fetched says so, GitHub fetches 100, and “Search the tracker” finds the rest (#993, #994, #1095)
- [settings modal] The admin and tenant settings reopen where you left them (#1100)
- [UI prefs sync] A failed settings sync is shown with a Retry; another account’s copy in the same browser no longer mixes in (#1023)
- [agent kinds] llama.cpp sessions warn at turn 12 and stop at turn 20 a model that keeps calling one tool with changing arguments (#953)
- [engines] An engine that does not come up in time names the reason ECS gives (#967)
- [settings › assistants] A refused assistant setting says what was wrong, in your language (#971)
Fixed
- [deletion locks] A session action running at the same moment could undo a deletion lock (#950)
- [sessions] Resuming a Terminal (CLI) session reverted the model, effort and mode switched inside the terminal (#987)
- [MCP] In Managed sessions, Agent Fleet’s own tools refused when two sessions shared a folder, and every call failed on cursor (#978, #951, #989)
- [idle stop] A workspace could stop under a running or queued image generation (#949)
- [settings › AI assistance] AI assist with Muse Code chosen ran on claude (#1020)
- [SSM] Resume on a stopped SSM pane skipped the SSO login dialog, and a narrow pane cut the sign-in link (#1025)
- [sessions] Resuming a codex or opencode Managed session whose folder was deleted was not refused (#1039)
- [engines] flux1 image models could not be completed from the catalogue (#1053)
- [image generation] Studio: a sent message stayed “Pending”, tab titles and menu, a flash on switching back, the phone swipe, finished trials piling up, change outlines on every field (#1089)
- [start flow] Starting a session from a work item could send the first prompt twice
- [composer] A prompt starting with
-failed with “invalid flag”; the history (↑/↓, Ctrl+R) offered text you never typed - [claude auth] “Could not refresh your login because another Claude Code process is refreshing it” was retried instead of offering sign-in
- [antigravity] agy sessions showed “waiting for input” while working; the mirror showed no model on agy, llama.cpp and Muse Code replies
- [MCP] The CP’s
list_modelsrefused llama.cpp (#1075)
0.23.2 — 2026-09-25
Section titled “0.23.2 — 2026-09-25”CLI pins — Claude Code 2.1.282, Antigravity 1.2.10, Kiro 2.24.0
New / Improved
- [sessions] Each Terminal (CLI) session has its own scratch folder
$AF_WORK_DIR(~/.af-work/<session>/), deleted with the session (not yet for Managed) - [settings › machine] Tool caches: measure and empty the go, npm, uv and pip caches in your home on a press; a cache in use by a running build cannot be emptied
- [cleanup] The working-copy delete shows each copy’s sessions (kind icon, display name, state chip on running ones)
- [guide delivery] The guide’s top page puts the release history in its own paragraph after the reference
Fixed
- [notifications] With “Notify when a child session is waiting for input” off, the child’s input wait still left an unread dot on the row, the pane tab and the notification center; it is now marked read as it arrives
- [left pane › FILES] The Files pane could open
~/.local/share/agent-fleet(scrollback, cleanup archive, usage ledger); it is now blocked - [ecs-ec2]
pause.shleft engine GPU instances running and billed; it now waits for or terminates them, sweeps leftovers after the CP stops, and stops the database too (--keep-dbkeeps it)
0.23.1 — 2026-09-24
Section titled “0.23.1 — 2026-09-24”CLI pins — Claude Code 2.1.281, Codex 0.156.1, Antigravity 1.2.9, Kiro 2.23.1
New / Improved
- [image generation] Image studio: “Attach an agent” binds a session to the draft, the agent rewrites prompt, negative, steps, cfg, size, LoRAs and references as you talk, and a person presses generate; per-field locks, an edit history you can rewind to, model / seed / mask stay the person’s, and “Switch agent” rebinds without losing the draft (claude, copilot, cursor and kiro as Terminal (CLI) only; opencode not as Managed; Muse Code not yet)
- [sessions] Deleting any session goes to the trash and can be undone (shell and SSM too); deleting a session no longer deletes its worktree, and deleting a worktree moves its stopped sessions to the archive; the trash tab gains “Delete permanently: older than 30 days” and never empties on its own
- [cleanup] The cleanup dialog clears the cache of deleted sessions (pasted images, images codex read) once nothing refers to it
- [settings › machine] The disk Agent Fleet uses, with each folder’s path; a path opens in the file tree, an image folder in the gallery
- [question cards] A Translate button on pending and answered questions and on messages from other sessions that came in another language; answers are matched against the original
- [viewer] Text in a PDF can be selected and copied
- [guide delivery] The user guide carries every release’s notes and this index, and the builtin assistants answer from them (in a new conversation)
- [sessions] A session can run up to 10 children at once (was 6; default still 3)
- [notifications] “Notify when a child session is waiting for input” can be turned off; questions and approvals from a child still notify
- [mirror] Thinking blocks collapse to a one-line preview, and the close bar appears only on long ones
- [composer] A pasted image chip opens in the lightbox, in the mirror’s composer and the launch dialog
- [left pane › FILES] Long file names are shortened in the middle, keeping the extension and the end of the name; the tooltip shows the full path
Fixed
- [fleet operator] The fleet operator and SRE assistant on Antigravity answered “no response from agy” whenever the model tried a command or read its reference material; they now answer, and agy’s reason is shown when it fails
- [gallery] Opening the thumbnail cache folder in the gallery kept making thumbnails of thumbnails
0.23.0 — 2026-09-23
Section titled “0.23.0 — 2026-09-23”CLI pins — Claude Code 2.1.280, Codex 0.156.0, Copilot 1.0.88, OpenCode 1.18.32, Antigravity 1.2.8; Muse Code 1.3.0-R3401.1 (new, installed on demand)
New / Improved
- [agent kinds] llama.cpp sessions: the fleet’s own harness on the deployment’s chat engine, with no CLI and no terminal pane; tools, MCP servers, approvals and exact usage in the mirror; on from the start (“Use llama.cpp” in Settings › Agents switches it off), and “Your own connection” points it at a LAN llama-server, which takes priority and whose reachability the card and the engine pill show
- [agent kinds] Muse Code sessions: a one-time install into your home from the Settings › Agents card, sign-in with a Meta account from the browser or with an API key, then launched like any other agent; questions, usage and context gauge, skills, MCP servers, fork and handoff go through the mirror; its OS sandbox cannot run in a workspace, so it never asks before running a tool
- [sessions] A fleet graph behind the sessions overview’s “Graph” switch: one lane per session on a time axis with start, stop, spawn, messages, reports and the current state; families fold, archived lanes can be shown, the window pans and zooms from the last 24 hours
- [image generation] Editing by instruction: the Qwen-Image-Edit families (2509 / 2511) take a sentence, up to three reference pictures and a mask for inpainting; the whole picture is edited (nothing cropped, phone-photo orientation honoured, a mask of any size marks the same region); waking and generating are timed separately; reproduction info carries prompt, negative and size; Qwen-Image 2.1 joins the families, with sizes up to 2K
- [sessions] A stopped session whose window runs out moves to the archive with its conversation instead of being deleted, and a worktree no longer disappears with its session (the cleanup dialog reclaims it)
- [settings › AI assistance] Each AI-assistance feature — title, branch name and reply suggestions, file edit suggestions, work-plan update, answer translation — has its own on/off, agent and model; a feature that is off hides its button
- [plans] “Review in another session” on a plan rejects it and starts a review session with the agent you pick, which checks the plan against the code and answers in a fixed format
- [engines] “Stop after” per role on the engines panel replaces the fixed GPU idle window
- [engines] A Spot offer is bought only for a role where a super admin ticked “Accept interruption”; a pinned Spot offer without it is skipped and the role chooses automatically
- [engines] A registered model’s card offers “Other versions…” / “Other sizes…” — the same publisher’s other versions or quantisations with size and fit — and taking one in creates a new row
- [sessions] Stop every session under a repository or worktree from its right-click menu, now or after the turn, with the reason for any that cannot be stopped
- [opencode] The card separates “Use opencode” (Off in a new workspace; off, it is gone from the launch menus and API create is refused) from the billing choice, which gains “None (my own keys)” on which the opencode.ai key is never injected
- [notifications] A red dot on a session with an unread notification; “Mark all as read” in the notification centre
- [start flow] The model list says “Loading models…” and, when empty, why (all excluded, billing route, workspace just started)
- [usage] The WS bar keeps the usage chips of the two most recently used agents and folds the rest into “+N”; each chip can be kept on the bar or always folded
- [engines] The engine pill names the loaded model, says “In use” while a request runs, and when it was last used
- [gallery] Card right-click menu (copy path / name, rename, delete, open the generating session); the lightbox’s information panel follows the theme; pictures pasted into the chat open in the same lightbox
- [sessions] The changed-files band appears for llama.cpp, Kiro, Muse Code and Antigravity sessions
- [image generation] The size warning on an edit names the size the picture will actually come out at, for every family
Fixed
- [engines] A borrowed engine whose model was still loading answered “did not come up in time” instead of waiting; the wait is streamed and the far deployment’s refusal is relayed as it came
- [usage] Context usage of a session on the fleet’s own chat engine was a guess; it reads the window the engine actually loaded
- [engines] The fit verdict of a chat model’s quantisation could be wrong; it is read from the file itself and stays with the row
- [engines] Taking a model in: an undeclared
llmfile offered only Delete (now Register too); editing the id on the plan card failed as a stale plan; the dialog planned twice and flickered; a split family’s part colliding with another family’s file is detected while planning; moving a misplaced file always failed (needs the60-enginesupdate) - [mirror] A claude session’s mirror went silent during a long run of tools while the terminal kept narrating: the narration is claude’s thinking (summarised on Fable 5.1 / Opus 5.5), which the mirror dropped; it shows as a collapsible Thinking block, and usage is counted once per response
- [engines] A long generation on the fleet’s own image engine could be reported as failed while the engine was still working on it (a momentary health-check failure was cached); it now keeps waiting while the job is queued
- [console] Clicking outside a popover or right-click menu also pressed whatever was underneath; it now only closes the menu
- [integrations / Discord] The same “answer ready” notification could be sent twice
- [mirror] Copying a quote lost its paragraph breaks; swiping a wide table sideways on a phone opened the left pane
0.22.1 — 2026-09-18
Section titled “0.22.1 — 2026-09-18”Fixed
- [engines / ecs-ec2] Taking a model in failed on both roles wherever
EngineToolsImageTagstill held the value it came with — the template asked for a newer script contract than that image speaks, so fetch and upload refused to start (0.21.0 and 0.22.0 were both affected;update.shnow moves that one value on)
0.22.0 — 2026-09-18
Section titled “0.22.0 — 2026-09-18”CLI pins — Claude Code 2.1.275, Codex 0.155.0, Copilot 1.0.86, Antigravity 1.2.5, Cursor 2026.09.15, Kiro 2.22.0
New / Improved
- [workspace / databases] PostgreSQL and MySQL run in the workspace, one database per working copy, installed and started on the first
af-db url; the data survives Stop → Start, the port is 5432 / 3306, and starting an engine putspsql/mysqlonPATH - [workspace / databases] A Databases tab in the workspace settings: each engine’s state, version, memory and URL, install / start / stop, create, delete or reset a database by name, a shell already connected, and “Start with the workspace” (off by default)
- [engines] A registered model is headed by the name its publisher gave it, with that publisher’s example images, and the list is divided into families with a chip per family; one button fetches the names and pictures for models taken in earlier
- [engines] A repository’s quantisations are one card that answers “will this fit” before the download: the context window is a field defaulting to the largest that fits, each file is marked Fits / Tight / Will not fit this class with the class that would hold it, and a chat model’s files are filed under their repository with the rest of its quantisations one press away
- [engines] opencode’s model list and the image generation pane’s picker name a model by its publisher’s name rather than by its id (the id stays the key a request names)
- [mirror] “Translate automatically” presses the Translate button when a turn finishes, for answers that arrive while you are watching that session; off by default and never applied to what was already on screen
- [engines] The registered model list is a grid of cards, each folding to the width it was given rather than to the window’s
- [agents / opencode] Changing an opencode key or seat leaves the restart to you, on the opencode card in Settings › Agents, instead of folding a running turn; a model-catalogue change reaches the running server with no restart
Fixed
- [agents / opencode] opencode sessions stopped mid-work without saying so: the shared server was recycled every couple of minutes and the turn that died with it was reported as a completed answer
- [workspace / agent]
workspace-agent --versionstarted a second agent, which renamed its own MCP server and rewrote claude / codex / opencode / cursor to match; unrecognised arguments now print the usage and stop, and--version/--helpare supported - [agent / efs] Every workspace on a deployment could slow to a crawl: the agent’s changing state is off the shared file system and the transcript sweep is gone, and the file system’s throughput mode is a CloudFormation parameter (
EfsThroughputMode, nowelastic) instead of a hard-codedbursting - [markdown] A URL followed by Japanese punctuation took everything up to the next space into the link, and two URLs separated by
・collapsed into one
0.21.0 — 2026-09-16
Section titled “0.21.0 — 2026-09-16”CLI pins — Claude Code 2.1.273, OpenCode 1.18.31, Antigravity 1.2.3, Cursor 2026.09.10, Kiro 2.21.4
New / Improved
- [engines] Taking a model in is one press: a plan card lists every file the model needs with its cost, licence and warnings, the destination is decided for you, a family split across several files arrives in one act, and an incomplete row is completed from the same press
- [engines] The S3 bucket is the ledger: the catalogue’s second screen lists what is actually in storage, including objects no row declares, which can be registered as a row or deleted; a file in the wrong place is repaired by moving it inside the bucket
- [image generation] More than one image engine at once — the route a picture takes is the engine row rather than the provider kind, so a LAN ComfyUI can be preferred with a borrowed engine behind it, and the priority list in Settings › Agents is row-based
- [engines] An external ComfyUI’s loaded checkpoints, LoRAs and VAEs can be read off the machine and offered as catalogue candidates
- [engines] Every member sees a pill per role in the top bar with a popover per row: state, queue and how long the instance has left
- [admin / tenants]
llmandimagecan be switched off for one tenant by a super admin; a tenant nobody has answered for keeps both - [image generation] An
externalorremoterow can point at any OpenAI-compatible image server (provider: "openai-compat"), with its bearer read fromAF_ENGINE_API_KEY_<KEY>— tested only against this project’s own test double - [image generation]
generate_imageaccepts steps, CFG, sampler and scheduler; an omitted field runs at the model’s published value and a family that ignores one says so - [image generation] A LoRA’s trigger words reach the chat route and are shown on a row before it is picked
- [engines] SD 1.5, Anima and Krea 2 join the family vocabulary, and the default size follows the family instead of always being 1024×1024
- [engines] A Civitai token can be registered for login-walled assets; it and the Hugging Face token sit under “API tokens” in the administration modal, reachable with no engine configured
- [gallery] A folder shows a cover and its image count, and opening an image serves a copy at the size of the screen rather than the original
- [work items] A pull request’s “start” checks its head branch out into a new working copy and asks for a review
- [engines] A row whose
providerthis build cannot serve is marked on the “Inference engines” screen instead of silently droppinggenerate_imagefrom the tool list - [engines] A running session sees a newly enabled checkpoint without being recreated, and a borrowed deployment’s catalogue changes arrive in about two minutes rather than up to twenty
- [engines] The model catalogue works on a phone: the search and filter bar stays put, the next page loads at the end of the list, example images arrive as thumbnails
- [engines] Ingest search can be narrowed to a family and finds ComfyUI-shaped repositories it used to pass over
- [engines / ecs-ec2] The audit log records the instance type actually bought and its price
- [gallery] Moving between folders draws from what is already held instead of blanking, and thumbnails are asked for at the screen’s density
Fixed
- [mirror] Translating a reply: it vanished on a tab switch, broke surrogate pairs when splitting a long answer, was missing when the only label was a quote, was withheld from an English answer holding a few Japanese display names, and was sent for intermediate replies folded inside the working steps
- [sessions] A managed session’s turn could fail and still be reported as a completed answer waiting on you
- [sessions] After a usage limit the resume reservation could stall, leaving the badge on a time already past with no further attempt scheduled
0.20.2 — 2026-09-16
Section titled “0.20.2 — 2026-09-16”Fixed
- [agent / efs] The agent swept every project directory on EFS on every transcript lookup, issuing 821 directory reads per second per workspace and exhausting EFS burst credits across the whole deployment; the scan is now memoised
0.20.1 — 2026-09-16
Section titled “0.20.1 — 2026-09-16”Fixed
- [sessions / rail] Every session row disappeared after a 5xx and did not recover on its own; a browser reload now restores it
- [connections / agent]
GET /connectionscould block for 21–28 s and time out at the load balancer becauseclaude auth statusran synchronously with no timeout; the fix runs it asynchronously and falls back to the last known result
0.20.0 — 2026-09-13
Section titled “0.20.0 — 2026-09-13”New / Improved
- [image generation] An image generation pane: family, model, LoRAs and trigger words, prompt and queue, without going through an agent; the results land in the session’s folder and the usage screen counts images and pixels
- [gallery] An image gallery pane laying a folder’s images out as cards with a paging lightbox and folder navigation, reachable from the operations bar, the layout map, the files tree and a session’s menu
- [sessions] A “Sessions overview” pane: every session as a card under its repository, in family order, with state, last utterance and — while it runs — the mirror’s context gauge and token graph
- [engines] An inference engine can be borrowed from another Agent Fleet deployment: the lending super admin issues a token and records whose GPU it is, and the borrowed row is shown as such
- [engines] A ComfyUI on the LAN can serve image generation on a native / Docker deployment (
AF_COMFY_URL), shown as an externally managed row - [engines / ecs-ec2] The image role’s instance comes from an offers list, one of which can be Spot, bought by the Control Plane itself and falling through to the next offer when no instance arrives; the panel shows the list, the offer in use and the order tried
- [engines] Checkpoints published without a VAE are detected from the file’s own header, refused for enabling, and repaired in one press by taking the family’s VAE in as
--vae - [engines] Taking a model in is four questions in a pane (what for, where from, which file, confirm), ending at the enable press
- [engines] The inference-engine screen is two — “Inference engines” (mode, state, rung, uptime) and “Inference engine models” (catalogue, ingest, upstream search), with role and model / LoRA tabs
- [engines] Search results show what you may not do with a model before it is taken in (login-only, non-commercial, credit, paid, NSFW, scan warnings, the kind of HF gate); searching for a LoRA lists LoRAs
- [engines] The family and the author’s Steps / CFG / sampler arrive filled in, quoted from the sentence they were read from, and override the family’s recipe field by field
- [engines] A catalogue row can be tidied after the fact: per-file ingest source links, file replacement, rebuilding a row from the bucket, editing the window and measured VRAM, LoRA trigger words, deleting an ingest history line, and a fits-this-card check before ingest
- [mirror] A reply can be translated without spending a turn, and a turn that used tools can be marked on its final answer
- [console] Model pickers show the vendor’s brand mark and no longer raise the phone’s keyboard
- [sessions] A managed Codex session resumes by itself once the usage limit resets, as a Claude one already did
- [image generation] A request can carry a negative prompt, and an edit can say how far from the original it may go
- [mirror] Much less battery on a phone: no redraw on an unchanged poll, a widening interval while nothing changes, no re-sending unchanged totals during a turn
- [gallery] Thumbnails are prepared in advance, asked for only as their cards come into view, and carry a version in their URL, so returning to a tab does not fetch them again
- [console] Deleting a working copy clears what sits underneath it; a memo can be copied from its row menu
Fixed
- [skills] The skills picker listed skills from the wrong directory instead of the session’s own working directory
- [image generation]
generate_image’s description did not say which route and which checkpoint the request would take
0.19.0 — 2026-09-11
Section titled “0.19.0 — 2026-09-11”CLI pins — Claude Code 2.1.268, Antigravity 1.2.1
New / Improved
- [engines] Tenant administrators of an allowed tenant search and take in models from their tenant settings (search, ingest, own jobs, catalogue read-only); modes, classes, enabling and the HF token stay with the super admin
- [image generation] The deployment’s own ComfyUI edits and inpaints for all five families; a request can carry LoRA (up to four, weighted) and a seed; a request during model sync waits instead of failing
- [engines] The image role can be bought on Spot (
ImageCapacityOptionType=SPOT, default on demand); the llm role deliberately is not - [engines] The llm role takes a LoRA row on top of a catalogue model, served as a fixed preset
- [engines] A split model is one row: model family plus several files with their roles, a file can be added to an existing row, a pasted HF / Civitai URL fills in the form
- [admin / ecs-ec2] A member’s home disk is grown online by raising
disk_gb; the member detail is arranged into size and limits, actions, irreversible actions - [ecs-ec2] A quarantined slot can be terminated from the Console, reason shown before confirming and kept in the audit log
- [work items] Opening a pull request refreshes it: draft, conflicts, review status, CI, base ← head, diff size; the main button opens it on GitHub / Bitbucket
- [settings › environment] Whether the upstream CLI release watch is alive, warning on a failed source or a success older than 48 hours (read anonymously from a public GitHub issue)
- [engines] Search results link to the HF / Civitai page with the publication date; catalogue rows show the licence and who accepted a non-commercial one; picking a result goes straight to its file list; a hand-registered model can carry a licence
- [engines] The llm VRAM check counts the KV cache read from the model header;
vramMiBis the card’s physical amount - [engines] A model enabled while the engine is up arrives without a restart; the engine tab uses buttons, badges and cards; ComfyUI’s measured VRAM per model reaches CloudWatch
- [sessions] A session that started sessions can rename them, unless a person titled the child in the Console
- [mirror] Session and conversation links show their title on hover
- [console] Schedules sit right under the assistant in the left pane
- [console] Agent kinds and connected services are shown by their brand marks (session list, settings cards, workspace bar)
- [svn] Credentials can be entered after checkout (row menu, Settings › Connections) and reach
svnrun inside the session; a handoff from an SVN checkout no longer offers a worktree
Fixed
- [image generation] The deployment’s own ComfyUI did not work end to end from a Console-only setup: SD3.5 produced nothing, an undeclared family blocked the model, mode changes missed running sessions, a generation across an instance change failed instead of retrying; with no provider named the own engine is now tried before a personal Antigravity / Codex plan
- [image generation] Right after a Control Plane restart
generate_imagecould be refused as “not allowed” though listed - [work items] GitHub pull requests did not appear (wrong default query; a saved query must be edited by hand)
- [engines] A GPU class that failed to apply could not be retried; a changed ladder did not reach the Control Plane until restart
- [engines] Purging a row deleted files another row used; a row missing a required file could be enabled; Civitai login-only assets and unaccepted gated HF repositories came back as a generic failure
- [mirror] Words in angle brackets such as
<repo url>vanished from the mirror and the viewer - [memos] A long expanded memo could not be collapsed; a single memo was sent with a heading and a number
- [ecs] CloudFormation parameter descriptions showed
?for non-ASCII text
0.18.0 — 2026-09-10
Section titled “0.18.0 — 2026-09-10”CLI pins — Claude Code 2.1.267, Codex 0.154.0
New / Improved
- [sessions] A session can start sessions of its own and look after them — handing over a task, listing them, reading their output, stopping and resuming them; it cannot instruct, answer for or delete any session (off by default, Settings › Agents; 1–6 children per session, default 3)
- [sessions] Fleet observation is on for every session and its setting is gone; sessions can edit a memo as well as add one
- [sessions] The left pane nests worktrees and related sessions by lineage, one colour of vertical line per family; a session launched from a handoff proposal joins the family it came from
- [sessions] A row holding a handoff nobody launched has its own status, instead of reading as a session with nothing left to do
- [settings › admin] A deployment’s own colour and name (Settings › Admin › Appearance) reach the favicon, the home-screen icon, the login screen and the app name, with no redeploy
- [engines] Hugging Face and Civitai are searched from the ingest screen, with licence, size and context length on each row
- [engines] The model catalogue is browsable on a deployment running no engines at all
- [engines] A Hugging Face token is entered in the Console, so gated repositories (SD3.5, FLUX.1) need no CloudFormation run
- [engines] The GPU class an engine buys is picked in the Console, from a ladder of classes the operator declared (
LlmInstanceClasses/ImageInstanceClasses) - [engines] An engine wakes with only the model that was asked for and fetches the rest behind you; swapping models is faster
- [image generation] The deployment’s own ComfyUI as a provider (SDXL, SD3.5, FLUX.1, FLUX.2 klein, Z-Image;
ImageEngine=comfy); a request can name the model and is told which one is loaded - [memos] A + on each category heading adds straight into that category, carrying the draft and any uploaded image
Fixed
- [mirror] Generated images never reached the conversation when anything ran after them — the card was swallowed by the collapsed work process
- [agents] opencode’s launch menu offered only the default model and blamed the connection and plan
- [sessions] “Stop when done” halted a session while a background command was still running
- [memos] Asking a session to add a memo could file it in the agent’s own memory instead of the memo queue
0.17.0 — 2026-09-09
Section titled “0.17.0 — 2026-09-09”CLI pins — Claude Code 2.1.266, OpenCode 1.18.30, Antigravity 1.1.28, Cursor 2026.09.08, Kiro 2.21.2
New / Improved
- [engines] The fleet runs its own inference engines on a GPU bought on demand:
llamacpp/<model>in opencode’s launch menu (llm) andgenerate_imageserved by the deployment (image); disabled / always-on / on-demand in Settings › Admin (ECS only, opt-in) - [engines] Models are ingested from Hugging Face and swapped from the Console, with no CloudFormation run
- [engines] The engines panel shows start time, automatic stop time, recent demand, the model in VRAM and 14 days of occupancy
- [sessions] A session can be told to stop once it is done: it finishes the running turn and then halts (⋯ menu, agents, operator)
- [schedules] A scheduled run can stop its session afterwards, instead of leaving the workspace up until the idle timeout
- [sessions] A session can observe the fleet it is part of — another session’s state, its own context usage, reading and adding memos — and nothing that acts (off by default, Settings › Agents)
- [image generation] Antigravity added as a second provider (a different plan, honours the aspect ratio) and tried first; a request can name the provider, and an automatic one falls through when a plan is out of quota
- [mirror › skills] Claude’s bundled skills are in the skill picker, folded below your own
- [cost] The shared-cost card breaks inference engines and the speech engine out of the EC2 / ECS lumps
- [sessions] Tabs of sessions archived elsewhere (cleanup screen, another device, operator, agent) close themselves
- [auth] After re-authenticating, the card says so and the session resumes on its own
- [repos] A worktree of a repository with large submodules is seeded from the local clone instead of re-downloading them
- [agents] Antigravity is usable on hosts whose kernel has withdrawn RDRAND
- [sessions] Agent Fleet’s own tool descriptions cost each session less context
Fixed
- [mirror] In a long conversation the work process reopened by itself and the position jumped, on scroll and on loading older messages
- [question cards] A half-written free-text answer was lost when the session stopped or resumed
- [viewer] The font-size setting did not reach Markdown; dragging the minimap selected the text it passed
- [mirror] A path could be swallowed by a commit link and stop opening (generated image paths in particular)
- [notifications] A notification with no session to open said the session could not be found
- [ecs-ec2] A launch that changed the slot type said it would never start, half a minute before it started
- [usage] Codex’s usage chip ignored image generation
- [agents] opencode’s launch menu listed
amazon-bedrock/*models no workspace can reach
0.16.0 — 2026-09-07
Section titled “0.16.0 — 2026-09-07”CLI pins — Claude Code 2.1.263
New / Improved
- [image generation]
generate_imagefor agents without their own image tool (claude/opencode etc.; off by default, enabled per member) - [image generation / mirror] Generated images appear in the conversation as cards with thumbnails (claude / opencode / copilot)
- [text-to-speech] VOICEVOX runs on demand (off / always-on / on-demand; Polly reads until it is up)
- [settings › machine] New Machine tab: measured values next to the deployment’s declared ones, plus an hour of resource history
- [composer]
Ctrl+Rsearches everything you have sent before - [settings › toolchains] Node 26 can be installed
- [shared files] Shared images open in a lightbox at full size, with zoom and pan
- [mirror performance] Long conversations no longer get slower to open (incremental reads); the shared-image panel fetches thumbnails
- [settings › toolchains] Node 18 removed from the list (EOL)
Fixed
- [mobile] The workspace bar overflowed the screen width, which killed horizontal swiping entirely
- [question cards] A half-made choice was lost when switching tabs
- [mobile / selection] The selection colour chips hid behind the browser’s own copy/share menu
- [session state] An agent process that had already exited was reported as running
0.15.1 — 2026-09-05
Section titled “0.15.1 — 2026-09-05”New / Improved
- [distribution / ecs-ec2] The workspace image is published for arm64, so Graviton slots run on the official image (code identical to 0.15.0)
Fixed — none
0.15.0 — 2026-09-05
Section titled “0.15.0 — 2026-09-05”CLI pins — Claude Code 2.1.261 / Codex 0.153.4 / OpenCode 1.18.29 / Copilot 1.0.83 / Antigravity 1.1.26 / Cursor 2026.09.02 / Kiro 2.21.1 / rtk 0.48.0
New / Improved
- [left pane › FILES] The file list refreshes itself and marks rows added since you last looked
- [command palette] Sessions are now the first mode (
Ctrl/⌘+P) - [settings › AI assist] Titles, reply suggestions, branch names and file-edit proposals moved to their own tab, each switchable off
- [settings › toolchains] node can be installed
- [workspace image] Rebased on Debian 13 (trixie): newer chromium, git-delta added
- [workspace / arch change]
pip --user,uvtools and global npm packages are reinstalled for the new architecture at start; what cannot be repaired is named in the notification centre - [managed runtime] The Codex / OpenCode daemons no longer start without a login, and are shut down when nobody uses them
- [start flow] The first prompt typed into Start work survives closing the dialog
- [i18n] Agent sign-in errors follow the Console language
- [left pane › worktree] Directory name in the row tooltip; duplicate entries removed from the context menu
Fixed
- [session-to-session messages] With messaging on, Claude sessions could fail to start a turn (incomplete tool schema)
- [composer › attachments] Pasted and dropped images were being discarded
- [file viewer] Reading position is kept across tabs; the raw terminal no longer flashes before the mirror
- [question cards] Cancelling a card could leave the composer unable to send
- [mobile] Pinch-zooming an image and panning switched to a different session
- [ECS deploy]
30-ingress.yamlpassed CloudFormation’s 51,200-byte limit and every ECS deploy path was broken - [account menu] Admin entries disappeared during a backend outage and did not return until reload
- [start flow] A managed session that could not start because the agent was not logged in now says so
- [transcript › marks] The mark picker did not appear for selections crossing a line break
- [notifications] The “conversation is gone” notification was a dead end
- [agent memory] A failed secret scan looked identical to “no secrets found”
- [codex / shared files] Generated images can be opened from the shared-file preview
- [ECS ops scripts] Teardown states why a bucket could not be emptied; stand-up preflight compares the saved parameters with the current template; values that exist only as stack Outputs are saved
0.14.2 — 2026-09-01
Section titled “0.14.2 — 2026-09-01”CLI pins — Claude Code 2.1.252 / Codex 0.152.0 / Antigravity 1.1.23 / Cursor 2026.08.31 / Kiro 2.20.2
New / Improved
- [usage › uptime] Uptime is drawn as a 24h × date heatmap (occupancy, not money; recording starts with this version)
- [settings › preview] The preview-subdomain settings became their own screen
Fixed
- [control plane / database] On deployments where the database rotates its own password, every request started returning 500 about a week in — silently. Added
/readyzand an email alarm - [session state] A session running subagents looked like it was waiting for input
- [handoff / notifications] A received handoff could not be started from where the notification led
- [issue tracker] Branch names from a ticket keep the issue key’s capitalisation
0.14.1 — 2026-09-01
Section titled “0.14.1 — 2026-09-01”New / Improved
- [preview / ECS]
PreviewHostedZoneIdputs the preview certificate and DNS records in a separate zone
Fixed
- [workspace settings / Postgres] Saving workspace settings always failed; reads returned defaults, so the screen looked fine
- [guide delivery] The user guide would not open from inside a workspace
- [preview] The settings show the current URL, and re-issuing always says what it did
- [settings › tool versions] OpenCode and Copilot could show
(timeout)
0.14.0 — 2026-08-31
Section titled “0.14.0 — 2026-08-31”CLI pins — Claude Code 2.1.251 / Codex 0.151.0 / Copilot 1.0.82
New / Improved
- [preview] Each workspace start issues a dedicated preview URL at
https://{slug}-{port}.{domain}/— at the root, which is what React / Next.js and Spring Boot need - [file pane] PDFs render (continuous scroll, zoom, page numbers; Japanese without embedded fonts is fine)
- [file pane] Simple preview for Word, Excel, PowerPoint, OpenDocument and EPUB
- [repo import] A new folder is initialised as a git repository and leads straight into Start work
- [usage] Sessions get an estimated cost from their tokens; the tab is now Agent usage
- [terminal] The header shows the round trip to the workspace
- [terminal] Input got faster (Esc was always half a second late; keystrokes waited on a database write)
- [documentation] Split by reader: English guide, Japanese guide, README, developer material
- [tabs] Right-clicking a tab opens the same menu as the session row
- [mirror] Long tool traces and thinking can be collapsed from their end as well
Fixed
- [question cards] A cancelled question reappeared as a card where nothing worked
- [plans] An approved plan could get a rejected badge
- [sharing] People you shared with saw nothing while a question was open
- [session-to-session messages] Messages arriving over claude’s own path reached the CLI but not the screen
- [worktree / start flow] A session in a fresh working copy could start from a weeks-old state
- [control plane / SQLite] Columns added later were missing on a freshly built database
- [composer] The transcript drifted off the newest message on every keystroke
- [opencode] The model list was ordered differently each time the picker opened
- [schedules / ecs-ec2] Scheduled runs silently did not fire (only 90 seconds to wake a stopped workspace)
- [ecs-ec2 › golden] Re-baking golden could leave an ECS service and a 50 GiB disk behind
- [display] Assistant chat tab names; the issue-tracker row font size
0.13.1 — 2026-08-28
Section titled “0.13.1 — 2026-08-28”CLI pins — Claude Code 2.1.250 / OpenCode 1.18.25
New / Improved
- [issue tracker] Bitbucket queries are assembled from choices instead of written by hand; duplicate tickets collapse to one row
- [naming] The rail and the settings agree on Issue tracker
Fixed
- [claude state detection] A claude session writing its answer was shown as waiting for input
- [handoff / start flow] Starting from a handoff card could fail with “title is too long”
- [issue tracker] The same ticket appeared once per saved query
- [browser pane] The pane could stay black and never paint
- [display] The mirror’s chat/terminal switch follows the top bar colour; the query source is readable in dark themes
0.13.0 — 2026-08-28
Section titled “0.13.0 — 2026-08-28”CLI pins — Claude Code 2.1.247 / Codex 0.150.1 / Copilot 1.0.81 / Antigravity 1.1.22 / Cursor 2026.08.25 / Kiro 2.20.1 / rtk 0.46.0
New / Improved
- [issue tracker] Work items (GitHub issues/PRs, Jira issues, Bitbucket PRs) list in the left pane, and work starts from one of them
- [issue tracker / connections] GitHub / Jira / Bitbucket connect per tenant; settings gained an Issue tracker tab
- [issue tracker] Reports can be written back to the ticket — Agent Fleet drafts the facts, you write the text and press post
- [ecs-ec2] Workspaces run with a memory cap, so one workspace can no longer take the instance down with it
Fixed
- [ecs-ec2] A workspace could become permanently unstartable, returning 504 every time (the instance looked healthy from outside, the OS inside was dead)
- [mobile / session state] A running turn was shown as waiting for input on narrow screens
- [session-to-session messages] Messages from another session looked like your own
- [start flow / models] The reason for a failure on a retired model was buried in the list of available ones
- [cursor] Adding
CIto the environment left Cursor sessions as a dead banner-only screen
0.12.4 — 2026-08-26
Section titled “0.12.4 — 2026-08-26”Fixed
- [ecs-ec2] Upgrading to 0.12.3 made every pre-existing workspace unstartable — the “one task at a time” pin added in 0.12.3 conflicts with AZ rebalancing
0.12.3 — 2026-08-26
Section titled “0.12.3 — 2026-08-26”CLI pins — Claude Code 2.1.246 / OpenCode 1.18.23 / Antigravity 1.1.21 / Kiro 2.19.2
New / Improved
- [repo import] Imports became jobs you can watch, instead of “the folder exists, so it worked”
- [settings] Export and import your settings as one file (connection tokens and API keys are always excluded)
- [ecs-ec2 / networking] A deployment keeps its outbound IP (the NAT gateway’s Elastic IP)
- [ecs-ec2 › slot pool] Slots left stopped are terminated so their root volumes stop billing
- [tenant quotas] The settings warn when the tenants’ total exceeds the pool, and negative limits are rejected
- [ecs-ec2] Workspaces start faster (task definitions are reused)
Fixed
- [ecs-ec2 › slot pool] A full pool could leave a workspace permanently unable to start
- [usage chip] Accounts close to their limit could still read 0%
- [cost allocation] AWS Organizations member accounts kept showing “no cost is attributed to anyone” while the numbers were on screen
- [display / CJK] Enclosed numerals rendered thin and small next to Japanese
- [tabs] Middle-click could not close a tab once the strip overflowed
0.12.2 — 2026-08-25
Section titled “0.12.2 — 2026-08-25”New / Improved
- [agent memory] Import gained relocate, which takes the other environment’s history with it, so history, diffs and rollback keep working
- [resource readout] Memory, CPU and disk are shown on ECS deployments too
Fixed
- [admin › traffic / Postgres] The Traffic screen would not open, and the MCP traffic statistics failed with it
0.12.1 — 2026-08-25
Section titled “0.12.1 — 2026-08-25”Fixed
- [ecs-ec2 / standup]
--cp-arch arm64reached the image check but not the stack, so the control plane ran on x86_64 while reporting arm64 - [cost allocation] Cost allocation tags are unreadable in an AWS Organizations member account, so per-member cost read “unavailable”
- [agent memory] Importing memory into a freshly created workspace failed at the last step
0.12.0 — 2026-08-25
Section titled “0.12.0 — 2026-08-25”CLI pins — Claude Code 2.1.243 / Codex 0.149.1 / OpenCode 1.18.22
New / Improved
- [idle stop] A session stopped on a question no longer keeps its workspace awake (it gets its own timeout)
- [carried-over prompts] Questions, plans and permission requests open at shutdown are kept and answered from the session list
- [tool approvals] Ask every time can be chosen per agent kind or per session; the default is unchanged
- [member handoff] A session can be offered to another member of the same tenant
- [idle stop] A do not auto-stop pin holds a session and workspace for four hours
- [admin › members] The roster shows when each workspace will stop, and why it will not
- [presence] Presence follows recent keystrokes rather than an open connection; sessions with background work are not reaped
- [handoff] A handoff can start in a new worktree
- [models] New accounts start with Claude Fable hidden
Fixed
- [UI prefs sync] Accumulated settings such as working sets could leak into another account
- [workspace start] Some people hit a red “agent is not responding” on every start
- [question cards / background work] Questions raised while a subagent or workflow was running could not be answered
- [markdown / CJK] Bold and strikethrough did not work inside Japanese text
0.11.0 — 2026-08-23
Section titled “0.11.0 — 2026-08-23”CLI pins — Claude Code 2.1.241 / OpenCode 1.18.21 / Antigravity 1.1.19
New / Improved
- [git connections] Tenant admins register their own git OAuth app; the environment variables are no longer read
- [distribution / control plane] The control plane image ships for x86_64 and arm64, selected with
CpArch - [keyboard] Direct Alt keys for daily actions (tabs/panes, memos, working sets, font size and more), alongside the leader chords
- [ecs-ec2 › golden] The admin pool screen shows a golden bake in progress, or why one is not running
- [reply suggestions] One-off learned chips can be cleared in bulk
- [ecs-ec2 ops] Standing a deployment up, putting it to sleep and tearing it down are scripts
Fixed
- [antigravity] Sessions could run — and bill — on a different model than the one selected
- [ecs-ec2 › slot pool] Free slots did not sleep and kept billing as if in use
- [machine classes] Changing a member’s machine class could leave their workspace permanently unstartable
- [workspace power] A workspace stuck in starting could not be stopped from the Console, and gave no reason
- [control plane restart] Three things stayed broken until a workspace restart: saving the Bitbucket OAuth connection, all
af_*tools, and notifications - [ecs-ec2 deploy] A fresh 0.10.0 deployment always rolled the slot pool stack back at the last step
- [mirror] Another session’s to-do strip stuck to the top and stacked up
- [mobile / mirror] Pinch-zooming the mirror pinned the composer to the middle of the screen
- [ecs-ec2 › golden] Golden could be baked from a candidate of the other architecture; the admin screen could call a running workspace idle
0.10.0 — 2026-08-22
Section titled “0.10.0 — 2026-08-22”New / Improved
- [ecs-ec2 / machine classes] Tenants and members choose which machine class a workspace runs on, Graviton included
- [drawio] Vendor stencils (AWS, Azure, GCP, Kubernetes, BPMN, racks) render
- [admin › cleanup] Empty tenants and removed member rows can be deleted
- [account menu] The running version and image tag are shown (ECS)
- [admin] The reserved
af-goldentenant is hidden
Fixed
- [stopped sessions / terminal] After a deployment restart, every stopped session looked like a broken, disconnected terminal
- [claude state detection] claude relaunches itself and dropped our conversation id, going silent in the mirror
- [copilot / cursor] Went silent the same way
- [mirror] Tool traces opened and closed on their own, moving the reading position by thousands of pixels
- [memos / Postgres] Memo categories were broken (table never migrated; the error collapsed into an empty list)
0.9.3 — 2026-08-21
Section titled “0.9.3 — 2026-08-21”Fixed
- [admin › members] You could not remove your own membership from any tenant, even with several; only the last one is refused now
0.9.2 — 2026-08-21
Section titled “0.9.2 — 2026-08-21”New / Improved
- [ecs-ec2 › golden] The control plane re-bakes golden when the workspace image changes
Fixed
- [ecs-ec2 › golden] A home built from golden would not start at all, and the task restarted forever
- [ecs-ec2] A workspace whose Start failed before its home volume existed was retried every minute, forever
- [ecs-ec2 / runbook] Baking golden by hand could not be completed as written
0.9.1 — 2026-08-21
Section titled “0.9.1 — 2026-08-21”New / Improved
- [ECS / git connections] Bitbucket can be connected on ECS (
BitbucketOauthKey) - [text-to-speech] VOICEVOX settings are hidden on deployments without the engine
Fixed
- [ECS / workspace reachability] Workspaces created after the control plane started were unreachable, and every screen reading them returned 502
- [text-to-speech / ECS] Speech always failed — the control plane task role lacked
polly:SynthesizeSpeech - [text-to-speech] The voice shown during playback could name a character that was not speaking
- [workspace power] A workspace that could not start said nothing
- [onboarding] New users did not get the first-run guide
0.9.0 — 2026-08-21
Section titled “0.9.0 — 2026-08-21”CLI pins — Claude Code 2.1.238 / Codex 0.149.0 / OpenCode 1.18.19 / Copilot 1.0.80 / Antigravity 1.1.17 / Kiro 2.19.0
New / Improved
- [sign-in] Sign in with any OpenID Connect provider, or with GitHub
- [account identity] One workspace across email changes, other providers and self-added sign-in methods; settings gained an Account tab
- [tenants] One deployment splits into tenants with their own login URL, roster and sign-in methods
- [tenants / network restriction] Tenant admins can restrict where members connect from
- [ecs-ec2] A new AWS runtime that keeps home on a disk that survives stopping
- [workspace size] Memory, CPU and disk are chosen per member and per tenant
- [cost] Actual cloud spend per member, from Cost Explorer
- [drawio]
.drawioopens as a diagram (zoom, pan, theme-aware, bundled viewer) - [changed files] What this session touched, in a strip under the mirror header and as a command palette mode
- [transcript marks] Marks drawn on a conversation reach the people you shared it with (four colours)
- [sharing] Shared conversations carry more: handoff suggestions, reading position, session name and agent icon on the tab
- [mobile] Horizontal swipe switches between running sessions; jump to start of reply
- [mirror] File paths inside replies became links
- [claude auth] An expired login is stated with its date, and sending is refused with a reason
- [rate limits] A session stopped by a limit says so and when it returns
- [session-to-session messages] An intent is now required: request, question, answer, notice
- [onboarding] New installs start closed (invite only)
- [ECS / ingress] WAF can be enabled (rate limiting and IP reputation only, both off by default)
- [terminal] Much lighter rendering in Chrome
- [idle stop] Idle sessions and workspaces stop themselves (1 h / 2 h by default)
- [ECS] The same restart badge as Docker; [opencode, codex] transient provider failures are classified as interruptions and take the managed resume path
Fixed
- [terminal / Chrome] The Console froze for seconds at a time (evicted GPU contexts, then per-character width measurement through layout)
- [UI prefs sync] Learned chips, pins, SSM history and key bindings could reset on every device at once
- [question cards / claude] Free text typed into a question was discarded when the options had previews
- [question cards] Questions and plans awaiting approval were shown twice
- [usage] The usage chart stayed one turn behind
- [markdown / CJK] Lines like
[pending]: …vanished from the mirror (parsed as link reference definitions) - [start flow] The first prompt could fail to arrive, or arrive twice
- [stopped sessions / terminal] “Cannot reach the Workspace Agent” while the agent was answering fine
- [schedules] Scheduled runs with reporting off had no badge in the mirror
- [mobile] Horizontal swipe was completely dead in particular sessions (one unbreakable long string in the transcript)
- [opencode / plans] Sessions started on a plan nobody had selected
- [ECS / guide] The member guide would not open; [settings › toolchains] a JDK can be installed with one button
- [ECS] OAuth inside a just-woken workspace, gateway timeouts on first start, a restart badge that lit with nothing changed
0.8.0 — 2026-08-13
Section titled “0.8.0 — 2026-08-13”CLI pins — Claude Code 2.1.231 / OpenCode 1.18.18 / Copilot 1.0.79 / Antigravity 1.1.12 / Cursor 2026.08.11 / Kiro 2.18.0 / rtk 0.45.0
New / Improved
- [sharing] Share a conversation with other members of your tenant (view only, or allowed to suggest)
- [session-to-session messages] One short message to another session in the same workspace (off by default)
- [fork] Fork a conversation from one of your earlier messages (claude / codex / opencode / Copilot)
- [layout] The main area can be a grid of tabs, not only splits
- [agent instructions] Your own standing instructions for every agent
- [MCP / project] See the MCP servers a repository has committed, copy them across agents, or git-ignore them
- [browser handoff] Touch support; retarget to another tab in the handed-over page, and results reach the session
- [codex] Screenshots appear in the mirror
- [opencode] Sakana AI added as a provider preset
- [cleanup] Archive a repository’s stopped sessions in bulk
- [markdown] Code blocks wrap by default
- [sharing performance] Shared conversations render far faster; [assistant] the assistant can be turned off for good
- [control plane] Multiple replicas tolerate each other; [MCP] the built-in server takes a fresh name each start
Fixed
- [browser handoff] Clicks, keys and scrolling in a handed-over page were all discarded (the attachment starts view-only)
- [terminal / tabs] Switching tabs kept showing the previous tab’s terminal
- [codex / question cards] Multi-question prompts were answered against the wrong question
- [composer] Pressing send twice quickly froze the input
- [session state] A session running a slash command was judged idle
- [handoff] Only the last of several handoff suggestions survived
- [sharing] The shared list showed only old archives
- [assistant / opencode] The assistant fell back to the free tier with nothing connected
- [plans / question cards] The state badge read “awaiting permission”; plan comments that were never delivered showed as sent
- [lightweight preview] Downstream requests could not resolve the tenant, breaking pages that fetch anything
- [display] Dark-theme quotes, pane buttons on the wrong row, wrapped colour swatches
- [pane pop-out] Leaked WebGL contexts; [codex] thread config merged instead of replaced, and more
0.7.0 — 2026-08-07
Section titled “0.7.0 — 2026-08-07”CLI pins — Claude Code 2.1.224 / Codex 0.147.0 / OpenCode 1.18.15 / Copilot 1.0.78 / Antigravity 1.1.11 / Cursor 2026.08.04 / Kiro 2.16.2
New / Improved
- [opencode auth] Sign in from the Console (device flow; a running daemon picks the credentials up without a restart)
- [opencode plans] Choose the plan a workspace uses — free, Go or Zen; free tier gets no key injected
- [MCP] The AWS Agent Toolkit joins the built-in integrations (read-only by default)
- [turn auto-resume] An interrupted claude turn resumes itself (up to twice, on by default)
- [handoff suggestions] An agent can propose the next session with a ready first prompt and name
- [start flow] A session can start in a folder below the working copy
- [worktree] Parent commits can be fast-forwarded into a worktree; diverged history is refused
- [claude models] Keep your own model list
- [reply suggestions]
Tabcycles through the chips - [appearance / markdown] Five more colours; copy on quote blocks; a wrap toggle on code blocks
- [claude auth] An expired login reads as a failure and points at re-authentication
- [rate limits] Visible where they stopped you (managed codex, and model-specific claude limits)
- [question cards] Answering a choice is two steps: choose, then confirm
Fixed
- [transcript] Turns could disappear from the mirror forever (the read cursor skipped a torn line)
- [schedules] A schedule could keep firing forever where nobody could see it
- [worktree / submodules] A worktree with unfetched submodules was wedged; it now says so and repairs itself
- [markdown / CJK] Tables written with the full-width
|did not render as tables - [reply suggestions] Suggestions were built from progress fragments rather than actual answers
- [opencode] Model list, disconnecting, key changes reaching the daemon, final answers arriving in the mirror
- [mirror] Landing position on open, reply footer showing the end time,
"truncating the view - [start flow] The phone’s soft keyboard opened on its own; a failed connection check left the start button stuck
0.6.0 — 2026-08-02
Section titled “0.6.0 — 2026-08-02”CLI pins — OpenCode 1.18.11 / rtk 0.44.2
New / Improved
- [browser handoff] Hand the page an agent is driving to a person; the agent never makes the final publish/send/consent click
- [display settings] Thinking expansion is configured per agent kind (off by default)
- [i18n] The Console speaks the display language (assistant, suggestions, compact carry-over, work plans)
- [completion reports] Readable in either language
- [distribution / compose] ⚠️ Breaking: images come from GHCR instead of a tar
Fixed
- [usage chip / claude] The chip could freeze for a whole day (the status line was re-wrapped until it could no longer run)
0.5.1 — 2026-08-01
Section titled “0.5.1 — 2026-08-01”New / Improved
- [release gate] Every artifact is unpacked recursively and scanned before publishing
- [commit graph] Branches and tags collapse into one icon instead of a row of labels
Fixed
- [artifacts] The Console bundle carried source comments (0.1.0–0.5.0 downloads withdrawn)
- [i18n] With reply language auto, an English Console still got Japanese answers
0.5.0 — 2026-08-01
Section titled “0.5.0 — 2026-08-01”CLI pins — Codex 0.146.0 / OpenCode 1.18.10 / Copilot 1.0.77 / Antigravity 1.1.9 / Kiro 2.16.0 / rtk 0.44.1
New / Improved
- [working sets] Group repositories, chats and sessions per project and switch the left pane between them
- [MCP] Register your own MCP servers (stdio or remote HTTP, with a connection test; tenant admins can distribute them)
- [agent memory] Version the memory files: history, diffs, rollback, export and import as a bundle
- [editor] Ask for an edit to the open file and accept it from a diff
- [skill picker] Pick skills, with arguments, from the session chat
- [plans] Annotate a passage of a plan and send the comments together
- [rate limits / claude] Automatic recovery: confirm the free “wait for reset” and schedule a single resume
- [agent switch] Switch agent mid-conversation; [models] hide models you never use
- [plan carry-forward] Work plans survive a handoff instead of being compacted away
- [token reduction] Much less spend between assistant and sessions (five knobs in settings)
- [light mode] Rebuilt on measured contrast
- [cleanup] Staged: archive → remove worktree → release the shelf
- [worktree] Create one on an existing branch; [restart badge] the workspace bar flags a stale backend
- [left pane, markdown, naming] Files grouped by project and branch, YAML front matter as properties, auto-linked hashes and ids, clearer names
Fixed
- [rate limits / session state] A session could stay stuck in running after the limit menu, with nothing but a restart to fix it
- [MCP / opencode] Every MCP tool disappeared on OpenCode 1.18.8
- [completion reports] Reports could be lost (opencode assistant sessions never delivered any; codex sometimes failed)
- [file search / skill picker] The Console could go completely black
- [restart badge / Docker] The badge would not clear; [AI assist] generated subjects came with a preamble and ignored the display language
0.4.0 — 2026-07-27
Section titled “0.4.0 — 2026-07-27”New / Improved
- [usage] A usage tab per feature, with sessions and the fleet’s own assist calls in one ledger
- [editor] Text and code editing in the File pane (unsaved buffer with undo, revision check)
- [deletion locks] Pin sessions, working copies and conversations; enforced at the REST layer
- [turn auto-resume] Turns that failed for a resendable reason are resumed (twice at most, on by default)
- [assistant / models] Separate models for chat and for assist generation
- [opencode] Model list filtering and visible failed turns; [mobile] settings open from a list
Fixed
- [assistant chat] Answers could cross between conversations when another chat was opened
- [deletion locks] The lock state was not reflected until reload
- [plans] The approval badge was wrong on a re-presented plan
- [file save] Save/restore races: an abandoned PUT still landing, a stale read looking like a successful save
- [usage ledger] Missed rows, blocked writes, double counting
0.3.0 — 2026-07-25
Section titled “0.3.0 — 2026-07-25”CLI pins — Claude Code 2.1.220 / Codex 0.145.0 / OpenCode 1.18.5 / Copilot 1.0.75 / Antigravity 1.1.7 / Cursor 2026.07.23 / Kiro 2.14.2 (new)
New / Improved
- [agent kinds] Kiro CLI support (the seventh)
- [reply suggestions] Learned replies as chips, plus ✨ to generate one in context
- [fleet operator] The operator can answer a session’s questions and approve or reject plans, including an unattended autopilot
- [schedules] A schedule can fire into the operator conversation instead of a session
- [memos] Collapsible categories
- [native / updates] The host-update notice moved to the top bar
- [CLI self-update] Self-update actually moves forward now (one shadow scheme for every tool)
- [usage] Opus 5 / Sonnet 5 counted as 1M context; [mobile] agent selection by horizontal swipe
- [distribution / licensing]
LICENSEandNOTICEin the dist repo, and release notes from here on
Fixed
- [completion reports / background work] A report could be lost when the session ended while subagents were running
- [transcript] A skill emitting command tags in reverse order could erase the user’s whole turn from the mirror
- [schedules / cleanup] Deleting a worktree or session an active schedule points at is refused instead of silently breaking it
0.2.3 — 2026-07-24
Section titled “0.2.3 — 2026-07-24”New / Improved
- [memos] Drag a memo into a session’s composer
- [git connections] The settings explain the scopes a GitHub token needs
- [left pane] Reloads after a clone or checkout, so new working copies appear
- [native / svn] The account menu is always visible; SVN folder naming and wording fixed
Fixed
- [pane pop-out] The pop-out button overlapped the pane header’s controls
0.2.2 — 2026-07-24
Section titled “0.2.2 — 2026-07-24”New / Improved
- [pane pop-out] Any pane can be detached into its own browser tab
- [schedules] A detail and edit modal
- [assistant chat] Cursor can drive it
- [memos / assistant] A
⋯menu on the rows, with delete moved inside it - [settings modal] Bigger, with the current tab as the heading on phones; [session limits] shell / SSM sessions no longer count
- [handoff / command palette] Options aligned with the start dialog; arrow selection scrolls into view
Fixed
- [cursor / assistant] A headless Cursor could perform write operations without confirmation
- [schedules] Scheduled runs reusing a long-lived session could vanish silently
0.2.1 — 2026-07-23
Section titled “0.2.1 — 2026-07-23”New / Improved
- [handoff] Carrying work into a new session is one modal (formerly fork)
- [git connections / Bitbucket] The connection card names the scopes and checks them on connect
- [cursor] A model badge per reply; [key bindings] the send key moved to the Keys tab
Fixed
- [git connections / Bitbucket] Clone and push with an API token failed to authenticate
- [mirror] Answers, plan approvals and delegations did not appear while a session was running
0.2.0 — 2026-07-23
Section titled “0.2.0 — 2026-07-23”CLI pins — Cursor 2026.07.20 (new)
New / Improved
- [chat bridge] Drive sessions from Discord and Slack (a thread per session, buttons for questions, plans and permissions)
- [schedules] Cron, interval and one-off runs; a stopped workspace is woken and returned to its previous state
- [agent kinds] Cursor CLI support (the sixth)
- [svn] Subversion checkouts (basic auth, sub-paths, self-signed certificates)
- [native / auto-update] The
afhost binary updates itself; applying it stays an explicit action - [copilot] Model selection and the usage chip
- [console↔CP traffic] Much less of it: gzip, ETag revalidation, four polls replaced by one SSE stream
- [settings modal] Ten flat tabs became three groups; [guide] the user guide is bilingual
- [mirror] Honest scroll following, a permanent jump to latest, no blank before replies, lightbox responds to Back
Fixed
- [plans] Rejecting a plan was recorded as approval
- [remote control] The default is off (applied once to existing workspaces)
0.1.2 — 2026-07-21
Section titled “0.1.2 — 2026-07-21”New / Improved
- [workspace start] A progress dialog showing which stage boot-install is in
- [distribution / README] Getting started, feature list and uninstall, with a Japanese translation
Fixed
- [claude / native] Claude sessions accepted no input at all (a
git credentialprompt stole the pty) - [workspace start] A failed download during first start no longer leaves a half-built workspace (it retries)
- [native /
af start] The firstboot-installstreams its progress to the terminal
0.1.1 — 2026-07-21
Section titled “0.1.1 — 2026-07-21”New / Improved
- [settings › assistant] Assistant settings split into their own tab
- [artifacts / i18n] Everything user-facing in the artifacts is English; the README opens differently
Fixed — none
0.1.0 — 2026-07-21 (first public release)
Section titled “0.1.0 — 2026-07-21 (first public release)”CLI pins — Claude Code 2.1.215 / Codex 0.144.6 / OpenCode 1.18.3 / Copilot 1.0.73 / Antigravity 1.1.5 / rtk 0.43.0
New
- [agent kinds] Five agent CLIs from one Console (Claude Code, Codex, OpenCode, Copilot, Antigravity)
- [workspace] Per-user isolation: CPU and memory quotas, persistent home, network separation
- [repos / worktrees] Parallel sessions on real git repositories (HTTPS clone, LFS, submodules)
- [control plane] Orchestration, encrypted credentials, quotas, admin screens
- [distribution] Two forms: a Docker-free native package and a Docker Compose bundle