This is a security release which addresses a vulnerability related to social login accounts, to prevent accounts from different services being potentially mis-matched.
Upgrading is strongly advised if the instance has ever used more than one third-party/social login option (including previously used options which are no longer active).
Thanks to Google and Ada Logics for the discovery and responsible disclosure of this issue.
Full List of Changes
Updated social logins to scope social account queries to social system.
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).
The built-in MCP server now advertises tools as JSON Schema 2020-12, so strict clients that previously dropped every tool keep the full list. If you register custom MCP tools or prompts: unknown or unauthorized tool calls now return JSON-RPC error -32602 instead of isError: true; extra.sendNotification and extra.sendRequest are gone; and one prompt argsSchema that cannot become JSON Schema (for example z.date()) hides every prompt from prompts/list.
If you are using Part-DB it would be helpful if you fill out this short survey on your usage of Part-DB (Google Forms): https://forms.gle/Q15twx3YYq3qCNfe8
Part-DB 2.17.0
New features
Support stateless MCP version 2026-07-28, alongside old stateful versions, improved MCP metadata
Added an advanced part search MCP tool, for more detailed part searches
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])
β οΈ Potential breaking change: Agents now verify HTTPS certificates. If an agent connects to a hub using a self-signed or otherwise untrusted certificate, configure CA_CERT_FILE with the appropriate CA certificate or the connection will be rejected.
If you are using Part-DB it would be helpful if you fill out this short survey on your usage of Part-DB (Google Forms): https://forms.gle/Q15twx3YYq3qCNfe8
Part-DB 2.16.1
Bug fixes
Fixed add/withdraw dialog not working (issue #1510)
UpSnap can now automatically track changing IP addresses. For devices with IP tracking enabled, UpSnap periodically scans the local subnet with nmap, matches discovered hosts by MAC address, and updates the stored IP when a device is found at a new address.
1. Set a cron schedule in the settings page:
We do not recommend anything lower than 1 minute. Depending on the amount of devices you have added to UpSnap, the scan duration will increase. Every 30 minutes is plenty for most users.
2. Enable per device:
Changelog
Features
b5fd864: feat: optional per-device IP address tracking via periodic ARP scan (#1763) (@mwpastore)
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)