Bitwarden v2026.6.0

v2026.6.0Desktop

Desktop v2026.6.0

Added 9
  • Shared Unlock for Web, Browser, Desktop
  • Auto submit on OTP paste
  • SDK managed PIN unlock
  • Premium Status Changed Push Notification
  • Copy actions for bank account cipher type
  • Passport to the desktop
Changed 4
  • Hide Send from navigation for users subject to policy removing send
  • Default enable native messaging permission on browser
  • Migrate cipher attachment operations to use SDK instead of APIs
  • Route bulk-collections, move, and assigned-cipher operations to SDK
Fixed 2
  • Bug fix for keyboard shortcuts
  • Per-request memory leak in bw serve (authStatusFor$)

Overview

  • 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
:shipit: 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: https://github.com/bitwarden/clients/compare/desktop-v2026.5.0...desktop-v2026.6.0

View original

Upgraded? How did it go?

Discussion