What's Changed
Feature Development
- [CL-1176] Add bit-badge-group and deprecate bit-badge-list by @willmartian in #21070
- [PM-32740] Add support for three new cipher types to importers by @mcamirault in #21267
- feat(browser): Add autofill for SSH keys by @quexten in #21289
- Fix/late hydration shadow detection by @blackwood in #21370
- [CL-1210] use overflow directive to pack primary actions when needed by @BryanCunningham in #21589
- Feature/webmapper integration by @blackwood in #21738
- [CL-1194] responsive breadcrumbs by @BryanCunningham in #21742
- feat(automation-driver): add automation-driver package by @quexten in #21919
- feat(automation-driver): wire-in automation-driver by @quexten in #21921
- [PM-40127] Item history redesign using bit-card-segmented by @nick-livefront in #21940
- [CL-1245] updated icon tile colors by @BryanCunningham in #22102
- VaultPopupListTableComponent + Storybook by @nick-livefront in #22106
- [CL-1293] add description and hideOnEmpty inputs to bit-row-group by @willmartian in #22129
- [PM-41313] Add Fill Assist Policy Admin Console UI by @bensbits91 in #22204
- [PM-40945] add testing to relevant components by @dan-livefront in #22224
- [PM-35945] Browser: Show the Health Overview after a scan (gauge and risk categories) by @AlexRubik in #22235
- [PM-40312] Introduce vault items table component by @shane-melton in #22237
- [CL-982] update bit-item styles by @BryanCunningham in #22242
- [PM-41314] Apply Fill Assist policy by @bensbits91 in #22244
- [PM-35946] Browser: Health report at risk category detail view by @lastbestdev in #22246
- [CL-998] table-v2 polish by @willmartian in #22255
- [PM-37839] Browser: Delete item from at risk category view by @lastbestdev in #22268
- [PM-41686]Implement plumbing for inline menu lit components by @dan-livefront in #22286
- [PM-40329] Integrate VaultPopupListTableComponent into the Vault with Filters by @jaasen-livefront in #22288
- [PM-41273] Extend ImportService to expose per-vendor metadata by @harr1424 in #22297
- Route remaining SDK-capable Send operations through the SDK by @adudek-bw in #22321
- [PM-41856] Update tooltip wording for icons by @jengstrom-bw in #22345
- [PM-39223] Browser: Run the vault scan and show its progress and failure states by @AlexRubik in #22346
- [PM-41687]Implement locked and saved login lit components by @dan-livefront in #22348
- [PM-41688] Implement cipher list lit components by @dan-livefront in #22378
- [PM-39408] feat: Tee TS logs into LogRecorder sink by @dani-garcia in #22379
- [CL-988] Update no items component to status lockup design by @vleague2 in #22386
- [PM-40848] Add the shared folder card grid component (libs/vault) by @jengstrom-bw in #22390
- [PM-36628] Browser: Add clean state to Health at risk category detail view by @lastbestdev in #22396
- [PM-41689] Implement password generator lit components by @dan-livefront in #22406
- [PM-40814] Add key id support by @quexten in #22444
- [CL-1236] Extension header changes by @BryanCunningham in #22484
- Browser: Add dark mode image to Health tab intro CTA by @lastbestdev in #22487
- [PM-39455] Use v2 upgrade token when asserting organization public key trust. by @mzieniukbw in #22490
- [CL-998] table-v2 design review follow-up by @willmartian in #22520
- [CL-1248] Add FAB button component to vault by @nick-livefront in #22523
- [CL-998] filter chip and menu design review follow-up by @willmartian in #22587
- [CL-1244] icon tiles in menus by @BryanCunningham in #22611
- [PM-39409] feat: Forward TS logs to Flight Recorder buffer by @dani-garcia in #22613
- [PM-29095] Move autofill attributes to gated settings by @jprusik in #22620
- [PM-42211] Create reusable shared folders table component by @jengstrom-bw in #22652
- [PM-35944] Extension Health Report: Upgrade to Premium by @Banrion in #22655
- Route Send sync and key rotation through the SDK by @adudek-bw in #22672
- [PM-40323] Apply vault-type color tiles to the item table and vault selector by @jaasen-livefront in #22681
- feat(shared-unlock): add browser destination filtering by @quexten in #22683
- [PM-41001] Create scaffold for libs/managed-settings lib by @djsmith85 in #22695
- [PM-41001] Implement managed settings service by @djsmith85 in #22700
- [PM-41001] Wire up ManagedSettingsService into dependency injection by @djsmith85 in #22806
- [CL-1175] Create chip group component by @vleague2 in #22823
- [PM-37136] Empty vault states by @nick-livefront in #22827
- [PM-42828] Extension Health Report: Update on changes and open details by @Banrion in #22831
- [PM-42914] Browser: Update copy in delete item from Health at risk dialog by @lastbestdev in #22860
- [PM-41004] Create BrowserManagedConfigReader by @djsmith85 in #22880
- Create a DevManagedSettingsService, to override any reading of manage… by @djsmith85 in #22907
- [PM-42987] Introduce feature flag for temporary item sharing on clients by @djsmith85 in #22921
- [PM-42988] Move Send decryption to SDK functions by @mcamirault in #22923
- [PM-39982] Create libs/tools/share using the nx lib generator plugin by @djsmith85 in #22926
- [PM-39982] Create share-link icon by @djsmith85 in #22934
- [PM-39703] Add colored vault icon support for new table filters by @shane-melton in #22944
🐛 Bug fixes
- [SRE-2516] Do not event upload request bodies of unlimited size by @MGibson1 in #15190
- [PM-36960] fix: TOTP not copied to clipboard on stripe settings in Chrome by @bensbits91 in #20780
- Fix/autofill toplayer listener dedup by @blackwood in #21511
- [PM-40258]: AuthRequestResponse refactor by @enmande in #22182
- [PM-41487] Reuse a freshly built lunr index instead of rebuilding after the lock by @shane-melton in #22227
- [PM-41559] [PM-41539] Recognize both Keeper SSO callback URL forms by @detunized in #22265
- feat(salt): [PM-27060] - Use SDK salt for MP Login by @Patrick-Pimentel-Bitwarden in #22381
- [PM-42235] Browser: Health at risk category empty state fixes by @lastbestdev in #22538
- fix(key-connector): fix sdk-based unlock with key-connector on jit provisioning by @quexten in #22545
- [PM-13373] Fix Enpass CSV Importer by @harr1424 in #22561
- [PM-42203] Gate basic auth listeners behind a feature flag by @jprusik in #22612
- [PM-41333] Remove IPC fingerprint and client key half by @quexten in #22645
- SSH Agent import: log on failure by @neuronull in #22676
- [PM-42414] Browser health UI follow up tweaks by @lastbestdev in #22678
- [PM-42470] Add cooldown to user key id backfill migration by @quexten in #22682
- fix(key-management): Clear key id backfill cooldown on logout by @quexten in #22698
- [PM-42631] Fix flaky storybook tests for shared folder card grid by @jengstrom-bw in #22760
- [PM-42394] Show Vault and Shared Folders filter chips when vault is empty by @nick-livefront in #22761
- [PM-42468] fix: Prevent crash from null active account in cipher row menu services by @nick-livefront in #22776
- Vault Storybook - Remove org notification banner feature flag reference by @nick-livefront in #22833
- [PM-42851] Fail the vault health scan when the exposed-password check errors by @AlexRubik in #22848
- [PM-42903] Browser: Add virtual scrolling to health at risk category view by @lastbestdev in #22850
- [PM-42932] fix: normalize null hostname from getUriHostname to prevent search crash by @nick-livefront in #22882
- [PM-42937] Clear vault filters when active account changes by @nick-livefront in #22904
- [PM-42912] Filter Icons by @nick-livefront in #22920
- [PM-42913] Reuse the health scan when returning to the overview by @Banrion in #22927
- [PM-43064] Look up fill assist targeting rules with frame URL instead of tab URL by @jprusik in #22990
- [PM-42970] Fix folder filter restore race condition by @nick-livefront in #23013
⚙️ Maintenance
- Autosync Crowdin Translations for browser by @bw-ghapp in #22301
- refactor(crypto): split out legacy compat key service by @quexten in #22319
- [chore] Add CODEOWNERS entry for the licensed browser DIRT directory by @AlexRubik in #22325
- Autosync Crowdin Translations for browser by @bw-ghapp in #22339
- refactor(key-management): read the user key via userKey$ by @quexten in #22353
- refactor(auth): unlock via UnlockService in login strategies by @quexten in #22354
- refactor(key-management-ui): stop re-setting the user key after unlock by @quexten in #22355
- refactor(key-management): unlock via UnlockService in key connector conversion by @quexten in #22358
- refactor(unlock): replace UserAutoUnlockKeyService with UnlockService by @quexten in #22359
- [PM-41874] refactor(crypto): move key-management callers to @bitwarden/legacy-crypto by @quexten in #22362
- [PM-41874] refactor(crypto): move auth callers to @bitwarden/legacy-crypto by @quexten in #22363
- [PM-41874] refactor(crypto): move tools callers to @bitwarden/legacy-crypto by @quexten in #22364
- [PM-41874] refactor(crypto): move vault callers to @bitwarden/legacy-crypto by @quexten in #22365
- [PM-41874] refactor(crypto): move shared client wiring callers to @bitwarden/legacy-crypto by @quexten in #22368
- [PM-41874] refactor(crypto): move platform callers to @bitwarden/legacy-crypto by @quexten in #22369
- [BRE-2116] Bump actions/checkout to v7.0.1 + add bypass flag in client build workflows by @brandonbiete in #22385
- Autosync Crowdin Translations for browser by @bw-ghapp in #22423
- chore(lock): Move LockService into libs/unlock and add lock/unlock source tracking by @quexten in #22539
- chore(shared-unlock): update to new shared unlock implementation by @quexten in #22540
- Autosync Crowdin Translations for browser by @bw-ghapp in #22569
- [PM-41874] Remove legacy-crypto shims (key management) by @quexten in #22578
- [PM-41874] Remove legacy-crypto shims (platform) by @quexten in #22579
- tests: add test for device trust / shared unlock / unlock ordering by @quexten in #22600
- refactor(crypto): drop electron key service by @quexten in #22601
- refactor(unlock): extract AutoUnlockService by @quexten in #22602
- Autosync Crowdin Translations for browser by @bw-ghapp in #22606
- refactor(km): simplify process reload service by @quexten in #22646
- [PM-39460] Add
v2_encrypted_migrations_grace_period_startto state bridge by @eligrubb in #22653 - ci: Fix not reporting test results on push and workflow_dispatch by @eliykat in #22679
- key service flaky cipherDecryptionKeys$ tests by @mzieniukbw in #22680
- Fix IPC doc comment by @coltonhurst in #22754
- Autosync Crowdin Translations for browser by @bw-ghapp in #22769
- chore(km): Add browser and CLI process reload to codecov component by @quexten in #22869
- disabling failing key service test by @mzieniukbw in #22875
- Mute flaky chip-filter test by @vleague2 in #22925
- Autosync Crowdin Translations for browser by @bw-ghapp in #22983
- [PM-43089] Browser: Update Health intro CTA images by @lastbestdev in #23015
- Bump client version(s) by @github-actions in #23038
📦 Dependency Updates
- Update sdk-internal to 0.2.0-main.956 by @bw-ghapp in #22146
- [deps] Platform: Update postcss to v8.5.23 [SECURITY] by @renovate in #22324
- Update sdk-internal to 0.2.0-main.967 by @bw-ghapp in #22326
- Update sdk-internal to 0.2.0-main.970 by @bw-ghapp in #22442
- [deps]: Update dtolnay/rust-toolchain digest to 4360b52 by @renovate in #22459
- [deps]: Update actions/stale action to v11 by @renovate in #22475
- Update sdk-internal to 0.2.0-main.971 by @bw-ghapp in #22512
- Update sdk-internal to 0.2.0-main.978 by @bw-ghapp in #22518
- Update sdk-internal to 0.2.0-main.979 by @bw-ghapp in #22581
- Update sdk-internal to 0.2.0-main.983 by @bw-ghapp in #22592
- Update sdk-internal to 0.2.0-main.1001 by @bw-ghapp in #22651
- [deps] Platform: Update nx to v22.7.7 [SECURITY] by @renovate in #22693
- Update sdk-internal to 0.2.0-main.1008 by @bw-ghapp in #22841
- Update sdk-internal to 0.2.0-main.1011 by @bw-ghapp in #22892
- Update sdk-internal to 0.2.0-main.1012 by @bw-ghapp in #22922
- Update sdk-internal to 0.2.0-main.1013 by @bw-ghapp in #22985
🎨 Other
- [AI-88] llm: Remove .claude/CONTRIBUTING.md by @SaintPatrck in #22532
- [AI-94] llm: Evaluate SDK update PRs against the upstream commit range by @SaintPatrck in #22697
Full Changelog: browser-v2026.8.0...browser-v2026.9.0