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