v0.44.0
A schedule can now wait for a saved work item query to turn up something new before it starts a
session, and a chat thread can start a new session or move to another one with !start and
!attach. Bitbucket Pipelines runs can be watched like GitHub Actions runs, Settings › Machine can
clear build output, unpinned Gradle versions and old ~/.af-work folders, and Muse Code’s own
memory is versioned and imported like Claude Code’s. Read the Upgrade notes if you run the ECS
templates or the deployment’s Bedrock route.
-
Gated schedules: a recurring schedule that starts a new session can be set to run only when one of your saved work item queries matches something that changed since it last fired (Gate in the schedule’s Details / edit, or the
gateargument ofcreate_schedule/update_schedule). Fires per day and the gap between fires are capped, and Run now ignores the gate. (#1763, #3809) -
Start or move a session from chat: in a session’s Discord or Slack thread,
!start <prompt>starts a new session like the thread’s one, and!attach <session>binds the thread to another session. (#1566) -
watchcovers Bitbucket Pipelines runs and a pipeline’s next run, with the sameci.run.completed/ci.run.failedtypes now used for GitHub Actions (the oldgithub.workflow_run.*names still work). Your Bitbucket connection needs to read Pipelines. (#3875) -
Disk cleanup in Settings › Machine:
- Build output in dormant working copies removes
node_modules,.next,targetand.gradlefrom a working copy nobody touched for 30 days, with a check and a preview first. - Old folders in ~/.af-work lists the folders you made yourself that have not changed for a number of days, and deletes the ones you tick.
- Tool caches gains two Gradle rows for versions no
gradle-wrapper.propertiesunder~/reposasks for.
Nothing in them runs on its own, and what they delete cannot be brought back. (#3800, #3881, #3202)
- Build output in dormant working copies removes
-
Muse Code’s own memory is kept in memory snapshots and can be restored like Claude Code’s and Codex’s, and turning on the Agent memory switch now imports Muse’s project notes too. (#3860, #3858)
-
The memory tidy-up can propose retiring a memory that describes finished work, with the issue or pull request state checked through your GitHub connection. A retired memory is archived, not deleted, and can be reverted. (#3788)
-
Automatic lint marks (Settings › Agent memory, off by default) run
af-memory lint --applyby themselves while the workspace is idle. (#3767) -
Text contrast in Settings › Display (Standard, Strong, Strongest) makes text stronger across the Console on this device. (#3786)
-
ECS EC2 pool: the Control Plane reports a slot that holds a home while its ECS and SSM agents are both silent, as one
pool.slot_dark_detectedaudit entry and anaf-dark-sincetag on the instance. It only reports; nothing is stopped or moved. (#2450)
Improved
Section titled “Improved”- Launch an agent in home on the Start hub opens the same Start work dialog as a repository, so images, templates, execution method and budget work there too. (#3785)
- Faster session usage after a restart: the usage list is warmed in the background and answers in time on workspaces with many sessions instead of timing out. (#3885)
- The Agent memory switch explains what it does, and the agent’s own memory has one name throughout the Console and the guide, kept apart from Agent Fleet memory. (#3856, #3857)
- Smaller improvements: archived sessions show when they were archived; a finished cloud cost month that is partial only because data starts mid-month reads “partial data (from …)”; the left-rail folds are kept across sign-out. (#3874, #3843, #3787)
- AWS sign-in from the Console stayed on “starting” with aws-cli 2.36, which prints its sign-in link on a new host, and ended only after 15 minutes. A login that shows no link now fails after a minute with a reason. (#3837, #3839)
- The browser pane disconnected after about a minute on a page that sent nothing behind a load balancer. (#3842)
- Bitbucket connections could break when two processes renewed the token at the same time. (#3736)
- Watches: a watch on a pull request that was deleted or became unreadable kept polling, and a workflow watch missed a finished run hidden behind 20 newer running ones. (#3780)
- The MCP server form’s Watch source box did not follow the tenant’s Watch sources switch, including a change made while the form was open. (#3844, #3865)
- The repository remembered for a Jira project could be lost to another tab’s save and could not be forgotten; launching with Open … tickets in this repository next time unticked now forgets it. (#3775)
Upgrade notes
Section titled “Upgrade notes”- If the deployment’s Bedrock route was ever on (
AF_PROVIDED_ROUTES=1): its route issuing tokenAF_ROUTE_ISSUE_TOKENnow reaches workspaces through the secret channel, but task-definition revisions registered while it was on (ECS) still hold the old value in plainenvironment. After the Control Plane and every workspace run 0.44.0, retire it withPOST /api/admin/rotate-bridge-tokensfor one member, or for everyone withaf-cp advance-bridge-epochs(a count only) and thenaf-cp advance-bridge-epochs --yes. The--yesrun ends the tokens of every running workspace at once, so do it in a quiet window and restart the workspaces straight after; deregister the old revisions if you like. (#3452) - ECS:
30-ingressmay now go through S3; this update does not need it. The template is allowed past the 51,200-byte inline limit, but in 0.44.0 it is still below it, soupdate.shdeploys it inline as before and switches to 20-platform’sCfnTemplatesBucketby itself only once it is larger. A hand-typedaws cloudformation deployofcfn/30-ingress.yamlshould pass--s3-bucket "$CFN_BUCKET" --s3-prefix cfn, withCFN_BUCKETread from 20-platform’sCfnTemplatesBucketoutput; whoever runs it needss3:PutObjectands3:GetObjecton the bucket’s objects (arn:aws:s3:::<bucket>/*). No CloudFormation template changed in this release: no new parameters or IAM, and the ingress stack updates in place with new task-definition revisions only (the load balancer, listeners and target groups are untouched). (#3550) - ECS:
update.shcarries on past a failed50-ttsor60-engines: it still deploys 30-ingress, then ends with aFAILED:line naming the stack and a non-zero exit. Fix the stack and run it again. (#3555) - ECS EC2 pool: dark-slot reporting is on by default
(
AF_ECS_EC2_DARK_SLOT_ACTION=detect): it tags such instancesaf-dark-sincewith the tag permissions the Control Plane already has. Set it tooffto turn it off. (#2450) - Nothing to do for the new cleanups and memory features; none of them runs by itself. The old
~/.af-workfolders list offers only folders members made themselves (session folders, archived ones included, are never listed) that no process uses and that have not changed for the chosen number of days, and deletes only what a member ticks and confirms. Automatic lint marks are off by default, and retire proposals come only from a memory tidy-up a member turned on. (#3881)
Other changes
Section titled “Other changes”- More of the user guide moved into task pages: agent memory, badges and menus, and the administrator’s members, sign-in, limits, audit, usage and outside connections, and the operator’s getting started, install, sign-in setup, day-to-day operations, security, keys at rest, the ECS EC2 slot pool and the engines.
Agent 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 (the rest unchanged from 0.43.0).