This release fixes authentication, vulnerability-management, and Docker compatibility issues.
It also improves file-mode preservation, project navigation, notifications, and dashboard reliability.
Authentication and notifications
Align first-login password validation with the configured policy β b71892d0902480a5e430bf4c10439d167508301c (@kmendell)
Preserve notification event subscriptions during partial settings updates and warn when none are subscribed β 817444abbd7984401e9f2e3ef59447e474f8d97b (#3925) (@kmendell)
Vulnerability management and Docker compatibility
Fall back to cpuset for Trivy when the Docker host lacks CFS quota support β 41eae6334d8807d7fd7c159b73f157b28422e2a8 (#3910) (@kmendell)
Allow vulnerability management to be disabled per environment β 4e432b30a69458c2077f9eac5ceb1a83709282b6 (#3914) (@kmendell)
Added filtering for containers and projects by labels, plus support for hiding containers through labels and Compose metadata (5dfd281c628bac0b4880c465bd629040d94a301e, #3874; 6006dbefd64e437e4935c80e38006b96d53c4b93, #3875) (@kmendell).
Added support for uploading non-UTF-8 workspace files (a38a0a2fbff09efeeda6430be15c933af00719fe, #3859) (@neurekadev).
Linked Git-managed projects and synced files to their repositories (6eed748e3fc976ebeaa8a227239ec8b7565ad86d, #3879) (@FusselTV).
This release adds performance improvements across authentication, Docker calls, scheduled scans, project loading, and CVE serving. It also fixes container shell handling, scheduler overlap, image digest display, authentication flows, agent reconnection, and several UI and integration issues.
Fixes
Surface container shell close reasons and disable WebSocket compression β 30e1bb590a34d9aeded744a71d39e8709b3b7b33, b9b8c813f6d3735770f2bc1bf5c80b4967eb7e26 / #3814 (@kmendell)
Keep the first-login password dialog open and clear its flag after an admin password change β 6f90da73f3606e42e58a0f00c98208f5817c27c9 / #3831 (@kmendell)
Allow the frontend to recover from stale chunks after a redeploy β 8c294a7316f3616a704edfec366f4adccd91a577 (@kmendell)
Keep edge agents on gRPC after a manager restart β 4febf6d0dcf64997b53cba7743d082b4c7550979 (@kmendell)
Show digest-pinned image references β 5c0592994278ac9ab4600966dcdb460ecbef857b / #3836 (@kmendell)
Hide passkey login when no credentials are registered β b7b568e1a6911bf1b8369de129af792fb0f23e4e (@kmendell)
Honor SSH usernames in Git repository URLs β 837fe10c92ddbb2391d7b13475d475a68f7fca2c (@kmendell)
Support host memory accounting for Docker inside LXC β 416e93a4be282a5d26025f9fd00f3ae56c70bb71 / #3846 (@kmendell)
Load project digests automatically when entering the Updates page β 8d5eaeb9dda0072736eb67272de4d7d781d7472b (@kmendell)
Sort environments by name while placing the current selection first β 4e0f1dcfc074a4562b59ef03ee49dabbd68f40f5 (@kmendell)
Rate-limit webhook triggers by token instead of client IP β de1e978810a490fd7930a634bd4df765a50f65b2 / #3742 (@ohOgil)
Run backups in an activity instead of locking the UI β dd16fd942afaed4db4d63ad4fa787bce20251f8d / #3847 (@kmendell)
Share one stream producer across all clients β db9878d01dccfed0406cee7c5e573a7f2c8637fe / #3819 (@kmendell)
Look up Copa targets by digest instead of issuing database queries β ddcd50530759ed0b31d2f717e7d82a213bfd655d / #3821 (@kmendell)
Validate the projects metadata cache by file modification time and resolve entries in parallel β 0b44e8dd5e16131015e18c70601c79b1c2cad9a9 / #3823 (@kmendell)
Serve the CVE list from a normalized table β 31a9896dfb052ece34d7ba4c14d8347b9ad8a8b5 / #3825 (@kmendell)
Bound scheduled scans, skip unchanged images, and avoid remounting during navigation β 8299a56c5430f9a04ee132b15f58a9e46f810dc0 / #3829 (@kmendell)
Allow selecting registries for Arcane Tools and Trivy databases β b85caceeef0ba5dd094ce1fcb82805acfd2a6445 / #3830 (@kmendell)
Clean up duplicate HTTP client logic β 8a74c1b729e6bd0b02e1bcf17a824cc445cb2eb3 (@kmendell)
Dependency updates
Bump react-email from 6.9.2 to 6.9.3 β 0cbb2590792d935ff2c7a20468e91edc3b318304 (@dependabot[bot]); 8dd0210aec7303fa506cdf77e235804961107a7d / #3806 (@kmendell)
Update the tanstack-table group with two updates β f58bc47404cbc61ca0c2a62a4d48436e5b2b5688 (@dependabot[bot]); 0a7ea50401c95aff42f90b94172b0c2f42ece4cb / #3799 (@kmendell)
Bump ky from 2.0.2 to 2.1.0 β 5700fb7f52a95e3e21ab0fce8d5a7e453cb0201c (@dependabot[bot]); ab3eaae5751c0abe8ae326b35b565b43f2ed678f / #3802 (@kmendell)
Bump svelte from 5.56.10 to 5.57.0 β 3db4f4a591fd43aff54d5d9ca679780f6d9c5e35 (@dependabot[bot]); efb72f212b9795ecccfcf3b792a0e76dedebb1c6 / #3808 (@kmendell)
Bump @tanstack/svelte-query from 6.1.43 to 6.1.48 β 917e6c267748da315f93855dadbea3444466f12c (@dependabot[bot]); 242744189b8e1065be494d5cd25c8a97ecb511c0 / #3807 (@kmendell)
Bump pnpm to v12.2.1 β 7d33837fd5a2d8bfd9617dabe7347f1ea06ca1c2 (@kmendell)
Bump @xyflow/svelte from 1.6.3 to 1.6.5 β 1829e66194ca404bd8ff4b211e693a7d149ac184 / #3810 (@dependabot[bot])
Bump github.com/nicholas-fedor/shoutrrr from 0.18.0 to 0.19.0 in /backend β 343dc2020f10c610f81bb5834bcc5b858377afbe / #3840 (@dependabot[bot])
Bump golang.org/x/crypto from 0.55.0 to 0.56.0 in /backend β 37226ae35749563489551c840ca2b1620e07e3e6 / #3844 (@dependabot[bot])
Bump github.com/coreos/go-oidc/v3 from 3.20.0 to 3.21.0 in /backend β 504e5b6dda7ea16bdab84eb6b72c1da47e90414d / #3845 (@dependabot[bot])
Bump github.com/pressly/goose/v3 from 3.27.3 to 3.28.0 in /backend β d6271ea3045682a063b516ea0f1d71fc2f7e4a64 / #3841 (@dependabot[bot])
Bump github.com/klauspost/compress from 1.19.2 to 1.20.0 in /backend β 71d866fefdd79552afd4db123fd01cbd29199753 / #3843 (@dependabot[bot])
Bump github.com/mattn/go-runewidth from 0.0.28 to 0.0.29 in /cli β 5137b5dcb4efe2e6107adc7d316af4ec9132f01b / #3838 (@dependabot[bot])
This release adds selective system restores, scheduled volume backups, Convert to Compose, direct image patching, Apple push notifications, and ML-DSA-87 signing for authentication and edge mTLS.
It also improves upgrade reliability, image update discovery, project logs, Swarm access, backup downloads, and UI performance.
Backups and recovery
Add selective system restores and harden recovery β 874134cfedc2e8ae44e6f0cd7e957e87bc760988 (#3708) (@neurekadev)
Preserve stderr streams and Docker timestamps in project logs β cac8a9090baea3b44aa2868d195cd21c3dcf62f0 (#3770) (@kmendell)
Allow the Viewer role to browse Swarm resources β 3f205dea94fa6d40189cf80eec665e39c5131e60 (#3779) (@kmendell)
Trigger agent self-upgrades asynchronously and pass the managerβs resolved target version β d857910d9b08f96e7739c679415b18fd192a01b4 (#3786) (@kmendell)
Serialize explicit empty values in partial-update DTOs with omitzero β 24592561d9154da35d7fecd380e12c50e3c5783a (@kmendell)
Authentication and notifications
Add native Apple push notifications for the iOS app β 4b1abefec6b9b93ea331e1259e061c6862025a11 (#3783) (@kmendell)
Sign and verify sessions, OIDC, passkeys, and edge mTLS with ML-DSA-87 β 2993fd316d41fafc110476370870a49b9202969c (#3785) (@kmendell)
Accept display names in email notification From addresses β 034e7e7efd4e756f0c3145099f24f2afe0bc7596 (#3776) (@ohOgil)
User interface
Improve table-scrolling performance across all views β 1243d8e0bafdc110b8443ef710d999e5104ce632 (@kmendell)
Keep dialog widths within the content area β 5e7acb61d3bb6ef4bc60a80266c424f1d40d02c2 (@kmendell)
Move frontend files into a more maintainable structure β 938882a174322a1bbc6fe50fe926a4c61820797b (@kmendell)
Dependencies
Bump github.com/aquasecurity/trivy from 0.69.3 to 0.72.0 in /backend β 29784fead298d740fb07db2754d53ff55e3bb9c4 (#3748) (@dependabot[bot])
Bump github.com/sirupsen/logrus from 1.10.0 to 1.10.1 in /backend β be4220fa2cc44c348177de5c39354b716a517413 (#3753) (@dependabot[bot])
Bump github.com/quay/claircore from 1.5.52 to 1.5.53 in /backend β 611b5d7ff298ccd51b0675874354282aa117356c (#3747) (@dependabot[bot])
Bump github.com/samber/hot from 0.13.0 to 0.13.1 in /backend β cecdb777ec0f3487ab442f2bd1a45dc1120f0564 (#3754) (@dependabot[bot])
Bump charm.land/bubbles/v2 from 2.2.0 to 2.2.1 in /cli β b631dd67c34ef642c3bb177ad3d9df09c0974b0d (#3752) (@dependabot[bot])
Bump @tanstack/svelte-query from 6.1.39 to 6.1.43 β 55762896904d9453f2c2cbeb26645b6e0f6818a2 (#3761) (@dependabot[bot])
Bump github.com/google/go-containerregistry from 0.21.9 to 0.22.0 in /backend β 3c0aac7c557ace8a15ffbd60dd6dc4448ec43a93 (#3755) (@dependabot[bot])
Bump marked from 18.0.10 to 18.0.11 β 201a3ff183a0f07e342398d0b1b12ca3847777a5 (#3759) (@dependabot[bot])
Refactoring
Use generics to eliminate redundant logic β 671ebef57234c40acba287925c5ee6ac9efdd399 (#3683) (@kmendell)
Migrate JWT and JWKS handling to jwx v4 β 45b063a074f521f45591f58c7b1d89b4395dc267 (#3790) (@kmendell)
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.
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])