Desktop v2026.6.0
Bitwarden Desktop v2026.6.0 includes support for Shared Unlock across platforms, adds new cipher types like Passport and Bank Account, implements SDK-managed PIN unlock, improves UI with design system refresh, and fixes numerous bugs including keyboard shortcut handling, memory leaks, and permission issues.
- Hide Send from navigation for users subject to policy removing send
- Bug fix for keyboard shortcuts
- Various under-the-hood improvements and minor bug fixes
What's Changed
💙 Community Highlight
- [PM-31854] fix: simplify switching unlock methods by @iHildy in #18826
- [PM-38330] Fix per-request memory leak in
bw serve(authStatusFor$) by @ggiesen in #20912
Feature Development
- [Shared Unlock] [PM-35083] Shared Unlock for Web, Browser, Desktop by @quexten in #19698
- [CL-1077] Update Menu Item styles by @lxiong-livefront in #19763
- [Shared Unlock] [PM-34508] Default enable native messaging permission on browser by @quexten in #19907
- [CL-999] Update tabs by @lxiong-livefront in #20010
- [CL-963] Update breadcrumb styles by @lxiong-livefront in #20085
- Add new SendApiServer that uses the SDK by @adudek-bw in #20170
- [PM-23585] Migrate desktop settings dialog to CL by @Hinton in #20230
- [PM-35224] Add route provider parameters support to featureFlaggedRoute by @Banrion in #20235
- BEEEP/Auth/PM-35338 - Auto Submit on OTP Paste by @JaredSnider-Bitwarden in #20250
- Desktop UI Cleanup milestone 3 & 4 by @Hinton in #20266
- [PM-34157] Wire up SDK to NewPolicyService by @eliykat in #20377
- [PM-31059] Implement SDK managed PIN unlock by @quexten in #20395
- [CL-1042] Design system refresh: Milestone 3 by @vleague2 in #20425
- [PM-35228] Add Premium Status Changed Push Notification by @sbrown-livefront in #20498
- [Shared Unlock] [PM-35083] Add shared unlock typescript drivers and services by @quexten in #20589
- [PM-36857] Add copy actions for bank account cipher type by @nick-livefront in #20605
- [PM-27679] Remove flagged logic from clients/server and clients feature flag by @jengstrom-bw in #20609
- [PM-34113] Add Passport to the desktop by @nick-livefront in #20617
- [PM-34156] Add accepted-state organization sync by @eliykat in #20627
- [PM-28192] Migrate Cipher Attachment Operations to use SDK instead of APIs by @gbubemismith in #20628
- [PM-37295] Ignore upgrade key rotation logout based on feature flag by @Thomas-Avery in #20637
- [PM-32016] - hide at-risk callout behind feature flag by @jaasen-livefront in #20639
- [PM-31054] Add V2UpgradeToken handling to sync by @Thomas-Avery in #20641
- SSH Agent v2: Sign Request by @neuronull in #20657
- Remove feature flag check from password generation by @adudek-bw in #20671
- [PM-2588] resolved sends root url conditionally by @bmbitwarden in #20684
- [Shared Unlock] [PM-35083] Implement biometrics over sdk IPC by @quexten in #20689
- [PM-37251] Add getStatus API method for public invite link status endpoint by @r-tome in #20695
- [PM-35656] Update Copy functionality for new item types by @nick-livefront in #20708
- [PM-36967] Update rotate_user_keys to use UpgradeTokenAction by @Thomas-Avery in #20711
- [PM-37229] Add bwi-passport icon for passport cipher type by @nick-livefront in #20712
- [PM-36229] Route bulk-collections, move, and assigned-cipher ops to SDK by @gbubemismith in #20718
- [CL-1204] bulk actions bar by @BryanCunningham in #20735
- [PM-36563] Send access event logs by @harr1424 in #20740
- [PM-37797] Add API method to check if email is valid for a given organization invite link by @r-tome in #20749
- SSH Agent v2: testing coverage for unsupported key types by @neuronull in #20789
- [CL-1214] remove tabs min height by @BryanCunningham in #20796
- [PM-30848] Key connector for user key rotation by @mzieniukbw in #20805
- Add feature flag for SSH ecdsa by @neuronull in #20813
- [PM-33753] Remove unlock-via-sdk-flag by @quexten in #20832
- [PM-37875] Split out crypto verification UI by @quexten in #20856
- [CL-1172] Improved non-color a11y for selected vs unselected nav items by @vleague2 in #20865
- [CL-1201] update row selected state and hover state by @BryanCunningham in #20869
- update contrast variant text color by @BryanCunningham in #20878
- SSH Agent v2: agent forwarding by @neuronull in #20879
- chore(platform): add FedRampGovRegion to client feature flag enum by @addisonbeck in #20880
- [CL-1213] allow tab label to be anchor for spotlight by @BryanCunningham in #20882
- [PM-37175] Preserve individual vault export folders when importing to My Items by @mcamirault in #20883
- [PM-37800] Add VaultBatchBarService to libs/vault by @nick-livefront in #20885
- [PM-38165] Limit Send Email character length by @harr1424 in #20895
- PM-32577 implemeneted send policy check of nav for desktop and browser by @bmbitwarden in #20934
- [PM-31625] Removes feature flag pm-30521-autofill-button-view-login-screen by @jengstrom-bw in #20968
- SSH Agent support of ECDSA key type by @neuronull in #21028
- [PM-18400] Update multi-select component to add title attribute for better accessibility by @JaredScar in #21031
- Gate import of SSH key ECDSA type on FF by @neuronull in #21059
- [PM-38163] Add getPoliciesByInviteLinkCode to PolicyApiService by @r-tome in #21075
- [PM-38012] Initialize feature flag overrides state to empty object by @quexten in #21166
🐛 Bug fixes
- [PM-35120] - Update user delete flows with org ownership by @jaasen-livefront in #20462
- [PM-32445] Extension Scrollbar Fix by @rr-bw in #20478
- [PM-36880] Filter Linked field type for Bank Account cipher type by @nick-livefront in #20564
- [PM-36947] Restrict bank account PIN field to numeric characters only by @nick-livefront in #20598
- PM-37554 resolved double cancel issue by @bmbitwarden in #20683
- [CL-1046] Add no-bit-dialog-wrapper lint rule by @willmartian in #20698
- Fix errors from UUID and yargs packages in the native messaging test runner by @differsthecat in #20706
- [CL-1203] Place tab overflow More button next to last visible tab by @willmartian in #20709
- [PM-36642] Fixing LastPass direct import for non-SSO accounts by @itsadrago in #20716
- Disable Native popover use from Angular 21 by @nick-livefront in #20730
- [PM-8123] Clearing import target selector as necessary by @itsadrago in #20739
- [PM-37782] User with view permission cannot favorite or add an item to a folder by @jengstrom-bw in #20764
- [PM-37798] Fix bank account section label to show "Bank account details" by @nick-livefront in #20779
- [PM-37776] - fix empty vault on pin and touch id unlock by @jaasen-livefront in #20793
- [PM-37825] Fix partial date validation blocking save and improve error count accuracy by @nick-livefront in #20799
- [PM-24173] Fix credential generator constraint bypass by @harr1424 in #20810
- [PM-37970] Fix vault list icons for Login and Identity with new item types flag by @nick-livefront in #20818
- [PM-37479] Assign to collection dialog displays dummy string
0">by @jengstrom-bw in #20819 - PM-37696 resolved broswer popup when trying to close tab by @bmbitwarden in #20861
- [PM-23564] Item view shows removed attachment/does not show added attachment temporarily by @jengstrom-bw in #20884
- SSH Agent fix calling unregistered IPC handlers upon account switch by @neuronull in #20914
- [PM-37948] Add back missing desktop shortcuts by @BryanCunningham in #20942
- Fix: SSH Agent v1 no agent forwarding warning by @neuronull in #20944
- [PM-38400] Fix avoid ambiguous character bug by @adudek-bw in #20953
- PM-38423 - Fix unsavedSendEditsGuard blocking logout by @JaredSnider-Bitwarden in #20967
- [PM-38405] Fix SDK ref leaking out of scope and add eslint rule by @quexten in #20999
- [PM-35573] - Refocus login input on Desktop restore by @jaasen-livefront in #21012
- [PM-38421] Remove duplicate copy actions by @nick-livefront in #21023
- [PM-38544] Fix flatpak auto-start by @quexten in #21039
- [PM-38547] Fix missing Flatpak desktop icon by @quexten in #21040
- [PM-38026] Fix desktop client saturates gpu usage at 99% after start when using fallapart effect in KDE/KWIN by @quexten in #21043
- [PM-38529] Fix virtual scroll after Angular 21 update by @vleague2 in #21055
- [PM-37913] - fix cloning archived cipher by @jaasen-livefront in #21058
- [PM-38357] Surface more descriptive error messages from server on Send edit failure by @mcamirault in #21067
- [PM-38571] Fix shareReplay memory leaks by @nick-livefront in #21087
- [CL-1217] Fix menu item role after menu item style changes by @vleague2 in #21091
- [PM-38759] Fix desktop not launching by @quexten in #21140
- [PM-38621] Fix desktop settings dialog saving stale form values by @nick-livefront in #21148
- [CL-1208] Remove extra header space in desktop by @vleague2 in #21157
- [PM-37913] - set archivedDate when cloning ciphers by @jaasen-livefront in #21160
- [PM-38831] fix: defective SyncPolicy push notification parsing by @eliykat in #21189
- [CL-1222] m3 fast follows by @BryanCunningham in #21202
- fix(nx): clear build dependsOn workspace default by @addisonbeck in #21203
- [PM-38867] Fix: add error toast if no owner for a new item by @eliykat in #21222
- [PM-38012] Fix local override migration by @quexten in #21223
- fix(extension-scrollbar): Auth [PM-32445] Extension Scrollbar Fix (#2… by @rr-bw in #21353
- [SM-1993][CL-1227] Fix textarea height and fix SM button spacing by @vleague2 in #21417
- [SM-1993][CL-1227] Fix textarea height and fix SM button spacing (#21417) by @vleague2 in #21418
- [PM-39392] Use readonly styles for fields intended to be readonly by @vleague2 in #21425
- [PM-39392] Use readonly styles for fields intended to be readonly (#21425) by @vleague2 in #21428
- PM-39449 resolved root url issues by @itsadrago in #21481
⚙️ Maintenance
- [CL-965] update spinner component by @iivins-livefront in #19017
- [CL-1129] Enable @angular-eslint/template/elements-content lint rule by @willmartian in #19505
- [PM-36363] Refactors org user view models and consumers to be ts-strict compliant by @BTreston in #20559
- [PM-31084] - migrate badge to chip-action in vault components by @jaasen-livefront in #20606
- [PM-6796] implemented file reorg by @bmbitwarden in #20648
- PM-36952 - Improve code review workflow with added triggers by @theMickster in #20702
- [PM-377730] Refactor unlock service & add decrypted user key method by @quexten in #20719
- Desktop Native: Clean up SSH Agent v1 deps by @neuronull in #20733
- fixed perms in cherry-pick workflow by @gitclonebrian in #20758
- [BRE-1938] Simplify and optimize Retrieve Current Desktop Rollout workflow by @vgrassia in #20778
- [bre-1942] improve native module cache busting logic by @aj-bw in #20791
- Temporarily increase shared ownership of desktop SSH Agent owned files by @neuronull in #20806
- refactor(platform): migrate Region enum to const object per ADR-0025 by @addisonbeck in #20887
- Remove cargo-deny check from the pre-commit hooks by @neuronull in #21005
- [BEEEP] [PM-38497] Dev-ex: Add attach VSCode debugger to desktop, web configs by @quexten in #21016
- [PM-36510] Remove dead "SDK not available" guards from SDK-backed services by @gbubemismith in #21173
- [BRE-2013] Add repository_dispatch trigger to sdk-update workflow by @vgrassia in #21187
- [BRE-2017] Pin snapcraft to 8.x/stable to fix Linux builds by @brandonbiete in #21217
📦 Dependency Updates
- [deps] Platform: Update Rust crate serde_with to v3.20.0 by @renovate in #18712
- [CL-954] Upgrade to Angular 21 by @willmartian in #19725
- [PM-36068] Update NAPI versions by @iinuwa in #20460
- Update sdk-internal to 0.2.0-main.765 by @bw-ghapp in #20744
- Update sdk-internal to 0.2.0-main.774 by @bw-ghapp in #20770
- [PM-37729] SDK Bump by @nick-livefront in #20776
- [bre-1942] fix package lock issue by @aj-bw in #20785
- Update sdk-internal to 0.2.0-main.779 by @bw-ghapp in #20798
- Update sdk-internal to 0.2.0-main.782 by @bw-ghapp in #20807
- [deps] Architecture: Update lint-staged to v17 by @renovate in #20843
- Update sdk-internal to 0.2.0-main.798 by @bw-ghapp in #20937
- Add cargo deny ignore RUSTSEC-2026-0153 by @neuronull in #21003
- [deps] KM: Pin dependencies by @renovate in #21111
- [deps] Autofill: Update tldts to v7.4.2 by @renovate in #21112
- [deps] Desktop Native: Update Rust crate serial_test to v3.5.0 by @renovate in #21113
- Bump SDK version for ECDSA key support by @neuronull in #21176
🔧 Other
- Bump client version(s) by @github-actions in #20690
- Autosync Crowdin Translations for desktop by @bw-ghapp in #20691
- [BEEEP] [PM-38012] Add local feature flag overrides by @quexten in #20833
- Improve claude.md by @Hinton in #20941
- [BEEEP] [PM-38497] Dev-ex: Add debugger attach rust desktop-native support by @quexten in #21036
- Expand .claude/rules to cover i18n, Tailwind, testing, and Angular DI by @Hinton in #21051
- Autosync Crowdin Translations for desktop by @bw-ghapp in #21063
- Add flatpak manifest claude md by @quexten in #21078
- Autosync Crowdin Translations for desktop by @bw-ghapp in #21109
- [PM-38719] Add env var to override access token location by @quexten in #21125
- Remove FF caching for dev env by default by @coltonhurst in #21131
- Change configRetrievalIntervalMs by @coltonhurst in #21143
- Bump client version(s) by @github-actions in #21145
- Autosync Crowdin Translations for desktop by @bw-ghapp in #21194
- Autosync Crowdin Translations for desktop by @bw-ghapp in #21219
- Auth - Add claude.md for libs/auth by @JaredSnider-Bitwarden in #21235
- Autosync Crowdin Translations for desktop by @bw-ghapp in #21260
- Bump client version(s) by @github-actions in #21271
- Bumped client version(s) (#21271) by @addisonbeck in #21274
Full Changelog: desktop-v2026.5.0...desktop-v2026.6.0
Source: original entry ↗
More from Bitwarden
Follow Bitwarden to get its new changes in your feed and email digest.
Desktop v2026.10.0
This release brings multiple feature improvements including new biometric unlock support for CLI, enhanced import dialogs, icon updates, and numerous bug fixes across the desktop application. The update also includes breaking changes related to SDK cipher handling and collection type arguments.
CLI v2026.10.0
Major CLI release featuring desktop biometric unlock support, community-contributed improvements, autotype GA, and numerous bug fixes across import, UI, and encryption handling. Includes breaking changes from SDK integration requiring collection type argument handling.
Browser v2026.10.0
Browser 2026.10.0 brings numerous enhancements including autotype GA, improved import dialogs across multiple sources (1Password, LastPass, Proton Pass), biometric unlock CLI support, UI polish with rotation icons and sticky navigation headers, and multiple bug fixes for import corruption, decryption handling, and UI consistency.