Skip to content

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 gate argument of create_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)

  • watch covers Bitbucket Pipelines runs and a pipeline’s next run, with the same ci.run.completed / ci.run.failed types now used for GitHub Actions (the old github.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, target and .gradle from 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.properties under ~/repos asks for.

    Nothing in them runs on its own, and what they delete cannot be brought back. (#3800, #3881, #3202)

  • 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 --apply by 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_detected audit entry and an af-dark-since tag on the instance. It only reports; nothing is stopped or moved. (#2450)

  • 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)
  • If the deployment’s Bedrock route was ever on (AF_PROVIDED_ROUTES=1): its route issuing token AF_ROUTE_ISSUE_TOKEN now reaches workspaces through the secret channel, but task-definition revisions registered while it was on (ECS) still hold the old value in plain environment. After the Control Plane and every workspace run 0.44.0, retire it with POST /api/admin/rotate-bridge-tokens for one member, or for everyone with af-cp advance-bridge-epochs (a count only) and then af-cp advance-bridge-epochs --yes. The --yes run 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-ingress may 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, so update.sh deploys it inline as before and switches to 20-platform’s CfnTemplatesBucket by itself only once it is larger. A hand-typed aws cloudformation deploy of cfn/30-ingress.yaml should pass --s3-bucket "$CFN_BUCKET" --s3-prefix cfn, with CFN_BUCKET read from 20-platform’s CfnTemplatesBucket output; whoever runs it needs s3:PutObject and s3:GetObject on 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.sh carries on past a failed 50-tts or 60-engines: it still deploys 30-ingress, then ends with a FAILED: 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 instances af-dark-since with the tag permissions the Control Plane already has. Set it to off to turn it off. (#2450)
  • Nothing to do for the new cleanups and memory features; none of them runs by itself. The old ~/.af-work folders 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)
  • 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).