Overview
Various under-the-hood improvements and bug fixes
What's Changed
✨ Community Highlight
PM-25654: feat: Preview attachment by @david-livefront in #6675
[PM-34168] Add future CalyxOS Chromium key to FIDO2 privilege community list by @lucasmz-dev in #6723
:shipit: Feature Development
[PM-33515] feat: Render premium upgrade banner in Vault UI by @SaintPatrck in #6698
PM-34042: feat: Preview attachments from AttachmentsScreen by @david-livefront in #6712
[PM-33516] feat: Create PlanScreen, PlanViewModel, and modal navigation by @SaintPatrck in #6715
PM-34228: feat: Add feature flag for forthcoming attachment updates by @david-livefront in #6739
PM-34231: feat: Support renaming attachments during creation by @david-livefront in #6742
🐛 Bug fixes
PM-29871: bug: Add more accessibility callouts for external links by @david-livefront in #6708
PM-32721: bug: Sort password history before persisting by @david-livefront in #6709
BWA-238: bug: Send additional cipher data for Authenticator Sync by @david-livefront in #6714
PM-34115: bug: Consistent visual length of TOTP codes by @david-livefront in #6716
PM-34193: bug: Unlock vault from Never-Lock should be on io thread by @david-livefront in #6728
BWA-224: bug: Add sort order for Authenticator items by @david-livefront in #6740
BWA-228: bug: Update identity custom field keys to use index by @david-livefront in #6743
PM-29763: bug: Handle invalid URI crash by @david-livefront in #6748
PM-34499: bug: Add appropriate external link callouts for attachments by @david-livefront in #6752
PM-34498: bug: Update attachments premium dialogs by @david-livefront in #6753
PM-34544: bug: Handle large attachments in preview by @david-livefront in #6757
⚙️ Maintenance
misc: Update BitwardenButtonData for more usability by @david-livefront in #6704
Crowdin Pull by @bw-ghapp[bot] in #6705
[PM-33999] chore: Standardize casing of Premium account status references by @SaintPatrck in #6707
chore: Implement Folder Repo interface for Bitwarden SDK by @david-livefront in #6691
chore: Update RootNavScreen to enforce state-based navigation by @david-livefront in #6713
chore: Update UI lists to ImmutableLists by @david-livefront in #6718
Crowdin Pull by @bw-ghapp[bot] in #6731
chore: Update AttachmentsState to use immutable list by @david-livefront in #6741
[deps]: Update actions/create-github-app-token action to v3 by @renovate[bot] in #6737
chore: Create common UI elements for VaultItemScreen by @david-livefront in #6746
chore: Attachment UI tweaks by @david-livefront in #6749
📦 Dependency Updates
[deps]: Lock file maintenance by @renovate[bot] in #6738
[deps]: Update com.google.firebase:firebase-bom to v34.11.0 by @renovate[bot] in #6736
🎨 Other
[PM-33941] llm: Refine skills and commands for agent reliability by @SaintPatrck in #6703
[PM-34107] llm: Add android-architect agent by @SaintPatrck in #6686
llm: Add test constants placement rule to testing skill by @SaintPatrck in #6726
llm: Add AI review label prompt to PR creation skill by @SaintPatrck in #6729
Full Changelog: v2026.3.1-bwa...v2026.4.0-bwa
Builds Source: https://github.com/bitwarden/android/actions/runs/23952220034