v2.9.0

getarcaneapp/arcanev2.9.0Aug 25, 2026by kmendell

AI Summary

This release introduces automated S3 backups, standalone container editing, and batched container-update notifications. It also adds GitOps redeployment for stopped projects and expands the CLI with new commands for vulnerabilities, activities, and webhooks.

Key Highlights

  • Automated S3 backups for data safety
  • Standalone container editing capabilities
  • Batched container-update notifications
  • GitOps redeployment for stopped projects
  • Expanded CLI with vulnerability, activity, and webhook commands

New Features

  • Automated S3 backups
  • Batch container-update notifications
  • Standalone container editing
  • Renaming unused volumes
  • GitOps pull and redeploy images for stopped projects
  • CLI commands for vulnerabilities, activities, and webhooks

Full Release Notes

> [!NOTE]
> This release adds automated S3 backups, standalone container editing, batched container-update notifications, and GitOps redeployment for stopped projects.
> It also expands the CLI with commands for vulnerabilities, activities, and webhooks while improving project handling, OIDC support, and API behavior.

## Features

- Add automated S3 backups — `555c5dfbac478e7bbe336fff29cfe4d6277b2d6d` (#3459) (@affeldt28)
- Batch container-update notifications — `0239f62b45c7b2d485285a54fc54e44b6a0721e8` (#3650) (@wyx1818)
- Add the ability to edit standalone containers — `24894fc7310b747e95d2b5d59e0a5100bb8bf12f` (#3646) (@kmendell)
- Add renaming for unused volumes — `1e413ada2f2413fa2a7c97798288b73ddb9d6b6c` (#3704) (@neurekadev)
- Pull and redeploy images after GitOps sync for stopped projects — `f17e84412ae41dac1945f5b6896bafce8c244bb9` (#3698) (@ohOgil)
- Add CLI commands for the latest server features and adopt hyphen-free command naming — `d84511b8d67bef5fe3117832c9173ecc987e38da` (@kmendell)
- Add CLI commands for vulnerabilities, activities, and webhooks with end-to-end coverage — `f4f9df0e8f1373a9e7fcba145383fcda8b4b3fc2` (@kmendell)

## Fixes

- Ensure stable ordering for page walks without an explicit sort — `bf783a828ef816acf789851dffb2b8b8ed249450` (#3648) (@kmendell)
- Percent-decode API path parameters before use — `c469305cdacf49b80f7f5639f00eef597c1ca102` (#3682) (@kmendell)
- Show Git-synced project files as read-only instead of hiding them or crashing — `da21e2694754434d9b6b936834aed44173378ef1` (#3690) (@kmendell)
- Send the build directive for projects from the backend — `53017c67cf91656965d667bf23e80dc0b46bd482` (#3691) (@kmendell)
- Allow assigning roles to OIDC users and handle username collisions during OIDC login — `c38c2580fb14f8a8f15f74ef9203bfdb9896c466` (#3692) (@kmendell)
- Make the update-all dialog scroll correctly with large fleets — `b7a619b2c7f8f08f05cc78f3db51ac6aa63e9ef4` (@kmendell)
- Validate cgroup-derived container IDs during self-detection with `network_mode: service` — `c24013107eff0adba0813b66b50350a03a487895` (#3710) (@kmendell)
- Handle updates to discovered Compose projects — `275aface140f0d41e67adef402859f8a2a6ba207` (#3711) (@kmendell)

## Refactoring

- Upgrade to Go 1.27.0 — `b22edb6909c5497f3e72e27d4570551c7fb2fe91` (#3680) (@kmendell)
- Use native Temporal for time and date parsing — `60c2dee13cd9405175b6e0a5d65053724bb005cd` (#3714) (@kmendell)
- Use AI generation for GitHub release notes — `2240e8f0c7a49331f3ba7e385d7b793b844fbcaa` (#3739) (@kmendell)

## Dependency updates

- Bump `@sveltejs/kit` from 3.0.0-next.21 to 3.0.0-next.23, then to 3.0.0-next.25 — `cd8c48b36c926a5342a5b83f373269e4ec4093a1` (#3672), `70475a2cf7ca52f2d017422551ce645e4507aaa4` (#3727) (@dependabot[bot])
- Bump `svelte` from 5.56.8 to 5.56.9, then to 5.56.10 — `d4d83941e2685a2273a6437670d17b71816d5620` (#3666), `1478dd7df710c42161b16f7cb07be79193e7570b` (#3724) (@dependabot[bot])
- Bump `svelte-sonner` from 1.1.1 to 1.2.1 — `39ce639ebe506fb4b825fd08335a98bc55a7efd1` (#3670) (@dependabot[bot])
- Bump `@xyflow/svelte` from 1.6.2 to 1.6.3 — `a59e1e8cdc38513921dc01c4e686581e208fd10d` (#3668) (@dependabot[bot])
- Bump `charm.land/lipgloss/v2` from 2.0.5 to 2.0.6 in the CLI — `98f5cac2359a4b5dd42355b9c4da24ebc1a1739d` (#3662) (@dependabot[bot])
- Bump `@codemirror/view` from 6.43.8 to 6.43.9 — `f2f34fac879a920afa772c0a6f0b509b7a74c478` (#3664) (@dependabot[bot])
- Bump the AWS SDK for Go v2 dependency group with five updates in the backend — `ffc1f128f487d1942f56c636c1daeba757649e57` (#3731) (@dependabot[bot])
- Bump `github.com/samber/slog-echo/v2` from 2.0.0 to 2.1.0 in the backend — `6c3f58f2b29acfb341d2071857e089b68f69529d` (#3735) (@dependabot[bot])
- Bump `go.getarcane.app/acfs` from 0.4.1 to 0.4.2 in the CLI and backend — `65b97153f05e20107ca04c70c60f3c1210409ac3` (#3722), `8087a444b343b9e8099df3a40d3a6fbb67c85441` (#3732) (@dependabot[bot])
- Bump `github.com/mattn/go-runewidth` from 0.0.27 to 0.0.28 in the CLI — `3f43202a9c7550d087f60077a53ae59616b925f7` (#3719) (@dependabot[bot])
- Bump `go.getarcane.app/updater` from 0.7.2 to 0.7.3 in the backend — `d9b58268878a9a3de48013a6aa6d1f2b1681112b` (#3733) (@dependabot[bot])
- Bump `go.getarcane.app/docker/convert` from 0.1.0 to 0.2.0 in the backend — `8d52e7a704f675fcc01a31a72b29b9a8e5799011` (#3734) (@dependabot[bot])
- Bump `charm.land/bubbletea/v2` from 2.0.8 to 2.0.9 in the CLI — `f012dbf16a2473a78fa9c44e6b2e7c384e522679` (#3720) (@dependabot[bot])
- Bump `charm.land/bubbles/v2` from 2.1.1 to 2.2.0 in the CLI — `29c5dc6afd682d08a26185ec5aa07a88e17ac6f9` (#3721) (@dependabot[bot])
- Bump `@tanstack/svelte-query` from 6.1.38 to 6.1.39 — `d200e9f73555d23b26a7e80270283fa3a9302213` (#3725) (@dependabot[bot])
- Bump `bits-ui` from 2.18.1 to 2.19.0 — `3646524258861b2f6d67f7bd67be4b96a830e0c0` (#3728) (@dependabot[bot])
- Bump `marked` from 18.0.9 to 18.0.10 — `82a2771040785fd68d44d1c66d8691543b3c4d7a` (#3729) (@dependabot[bot])
- Bump `vite-plus` to 0.3.0 — `f3002cbd30db67f0bd4e05feaf9dec830b1b35a3` (@kmendell)
- Bump `@tanstack/virtual-core` from 3.17.7 to 3.17.8 — `ea1ab4b086e857166bdff9f43fabb92f7cdb7360` (#3723) (@dependabot[bot])