v2.2.0

getarcaneapp/arcanev2.2.0Jun 28, 2026by kmendell

AI Summary

Added system mode for light/dark themes, remote Trivy server support, and comprehensive image management tools including history, tagging, and registry search.

Key Highlights

  • System mode for light/dark mode
  • Allow use of remote Trivy server
  • Image history, tagging, registry search and local committing
  • Custom profile pictures
  • Pre-deploy hook for GitOps project syncs

New Features

  • System mode for themes
  • Remote Trivy server support
  • Image history, tagging, and registry search
  • Custom profile pictures

Full Release Notes


### New features

* system mode for light/dark mode ([#2994](https://github.com/getarcaneapp/arcane/pull/2994) by @kmendell)
* allow use of remote trivy server, and only show fixable cves ([#2999](https://github.com/getarcaneapp/arcane/pull/2999) by @kmendell)
* preserve managed volumes on project rename ([#2919](https://github.com/getarcaneapp/arcane/pull/2919) by @NeurekaSoftware)
* show attestations panel for images when supported ([#3036](https://github.com/getarcaneapp/arcane/pull/3036) by @kmendell)
* add missing kill/pause container actions ([#3037](https://github.com/getarcaneapp/arcane/pull/3037) by @kmendell)
* add image history, tagging, registry search and local comitting ([#3039](https://github.com/getarcaneapp/arcane/pull/3039) by @kmendell)
* allow custom profile pictures ([#3023](https://github.com/getarcaneapp/arcane/pull/3023) by @OlziYT)
* add pre-deploy hook for GitOps project syncs ([#3022](https://github.com/getarcaneapp/arcane/pull/3022) by @peitschie)

### Bug fixes

* add missing decyrption fucntions for notification providers ([#2992](https://github.com/getarcaneapp/arcane/pull/2992) by @kmendell)
* dashboard prune counts may be inconsistient ([#2998](https://github.com/getarcaneapp/arcane/pull/2998) by @kmendell)
* prevent logout and skipped environments during update all ([#3000](https://github.com/getarcaneapp/arcane/pull/3000) by @kmendell)
* environment update context deadline, and out of bounds text in dialog ([#3005](https://github.com/getarcaneapp/arcane/pull/3005) by @kmendell)
* tolerate unreadable files when backing up project on save ([#3007](https://github.com/getarcaneapp/arcane/pull/3007) by @kmendell)
* grpc fallback to websocket ([#3008](https://github.com/getarcaneapp/arcane/pull/3008) by @kmendell)
* cleanup z-axis frontend overlap issues ([#3020](https://github.com/getarcaneapp/arcane/pull/3020) by @kmendell)
* scope environment access tokens to their environment ([#3030](https://github.com/getarcaneapp/arcane/pull/3030) by @kmendell)
* swarm node agents never move out of pending ([#2993](https://github.com/getarcaneapp/arcane/pull/2993) by @kmendell)
* fix broken git sync bindings to recover properly ([#3032](https://github.com/getarcaneapp/arcane/pull/3032) by @kmendell)
* immediately display initial snapshot on mount ([#3024](https://github.com/getarcaneapp/arcane/pull/3024) by @OlziYT)
* abnormal flicker when closing sheets or dialogs([25c2de7](https://github.com/getarcaneapp/arcane/commit/25c2de7d2ed5e3d0f4c6e7836ded96cb78194d63) by @kmendell)
* complete frontend i18n coverage ([#3029](https://github.com/getarcaneapp/arcane/pull/3029) by @OlziYT)
* repetitive database calls for envID ([#3042](https://github.com/getarcaneapp/arcane/pull/3042) by @kmendell)

### Dependencies

* bump dompurify to 3.4.11([f5885f9](https://github.com/getarcaneapp/arcane/commit/f5885f9e65064ab53f34c89f512fa13f51c15549) by @kmendell)
* bump ts-deepmerge to 8.0.0([f1c231c](https://github.com/getarcaneapp/arcane/commit/f1c231ca1260226ce62aef5e0f55b9a314aa024d) by @kmendell)
* bump joi to 17.13.4([7316e54](https://github.com/getarcaneapp/arcane/commit/7316e54c13df7f16247b32f2fc5e2c7679721dfe) by @kmendell)
* bump tanstack-table to 9.0.0-b17([7182791](https://github.com/getarcaneapp/arcane/commit/71827915be8075ab7f8f7ee69f038106d6c15224) by @kmendell)
* bump github.com/containerd/containerd/v2 from 2.3.1 to 2.3.2 in /backend in the go_modules group across 1 directory ([#3004](https://github.com/getarcaneapp/arcane/pull/3004) by @dependabot[bot])
* switch hashicorp/uuid to google/uuid([b99849c](https://github.com/getarcaneapp/arcane/commit/b99849ca4fc6e20bb3d309be727a4573a28ec2dc) by @kmendell)
* bump typescript to v7.0.1-rc ([#3006](https://github.com/getarcaneapp/arcane/pull/3006) by @kmendell)
* bump github.com/docker/cli from 29.5.3+incompatible to 29.6.0+incompatible in /backend ([#3016](https://github.com/getarcaneapp/arcane/pull/3016) by @dependabot[bot])
* bump github.com/getarcaneapp/arcane/types/v2 from 2.0.3 to 2.1.0 in /cli ([#3015](https://github.com/getarcaneapp/arcane/pull/3015) by @dependabot[bot])
* compose 5.2.0, buildkit 0.31.0, moby/api 1.55.0, moby/client 0.5.0 ([#3019](https://github.com/getarcaneapp/arcane/pull/3019) by @kmendell)
* bump github.com/coreos/go-oidc/v3 from 3.18.0 to 3.19.0 in /backend ([#3017](https://github.com/getarcaneapp/arcane/pull/3017) by @dependabot[bot])
* bump actions/checkout from 6.0.3 to 7.0.0 ([#3028](https://github.com/getarcaneapp/arcane/pull/3028) by @dependabot[bot])
* bump actions/cache from 5 to 5.0.5 ([#3027](https://github.com/getarcaneapp/arcane/pull/3027) by @dependabot[bot])
* bump github.com/docker/cli to v29.6.1+incompatible([27d43c1](https://github.com/getarcaneapp/arcane/commit/27d43c19f1790667f20f4e81afde04ae3e0b23f0) by @kmendell)
* bump go.getarcane.app/updater to v0.4.0([4b2b44d](https://github.com/getarcaneapp/arcane/commit/4b2b44db803ead834eb7a7ceb8a828d4bfd205d0) by @kmendell)

### Other

* cleanup environments pages ([#3001](https://github.com/getarcaneapp/arcane/pull/3001) by @kmendell)
* extract build logic into go module go.getarcane.app/builds ([#3040](https://github.com/getarcaneapp/arcane/pull/3040) by @kmendell)



**Full Changelog**: https://github.com/getarcaneapp/arcane/compare/v2.1.0...v2.2.0