Overview
- General under-the-hood improvements and bug fixes.
What's Changed
✨ Community Highlight
- [PM-23409] feat: Add client certificate authentication (mTLS) support for self-hosted environments by @jalenfran in #1720
- [PM-26292] chore: Remove unused strings by @mKoonrad in #2003
Feature Development
- [PM-33848] feat: Add dismissable Premium Upgrade banner to vault list by @andrebispo5 in #2505
- [PM-26293] tool: Add scripts to delete duplicate Localizable.strings entries by @KatherineInCode in #2412
- [PM-33849] feat: Add Premium Upgrade view by @andrebispo5 in #2523
- [PM-34904] feat: Replace plans endpoint with premium plan endpoint by @andrebispo5 in #2534
- [PM-26292] tool: Add script to delete unused Localizable.strings entries by @KatherineInCode in #2464
- [PM-35126] feat: Add billing subscription endpoint by @andrebispo5 in #2546
- [PM-13971] feature: Add user ID to DebugView by @morganzellers-bw in #2529
- [PM-34897] feat: Premium plan screen by @andrebispo5 in #2541
🐛 Bug fixes
- [PM-35040] fix: Prevent Authenticator lock overlay from being dismissed by @KatherineInCode in #2537
- [PM-24195] fix: Pass userId to refreshToken and setTokens by @LRNcardozoWDF in #2374
- [PM-35251] fix: Adjust presentation style to avoid Tab Bar issues in BWA by @KatherineInCode in #2551
- [PM-35285] fix: Prevent StateService.isAuthenticated(userId:) from throwing if token doesn't exist in keychain by @matt-livefront in #2553
⚙️ Maintenance
- [PM-25832] chore: Remove cxp-export-mobile feature flag by @matt-livefront in #2516
- Crowdin Pull by @bw-ghapp[bot] in #2520
- [PM-34016] chore: Centralize logic around TOTP code generation authorization by @morganzellers-bw in #2513
- [PM-33207] chore: Remove pm-19051-send-email-verification feature flag by @matt-livefront in #2524
- [PM-33571] llm: Add requirements refinement and planning skills by @SaintPatrck in #2445
- [deps]: Update actions/create-github-app-token action to v3 by @renovate[bot] in #2476
- Crowdin Pull by @bw-ghapp[bot] in #2531
- [PM-34009] chore: Create KeychainServiceFacade by @KatherineInCode in #2507
📦 Dependency Updates
- Update public suffix list by @github-actions[bot] in #2521
- Update public suffix list by @github-actions[bot] in #2532
🎨 Other
- [PM-33575] llm: Add delivery skills for preflight, commit, PR, and labeling by @SaintPatrck in #2449
- [PM-33572] llm: Add implementing-ios-code skill with Swift templates by @SaintPatrck in #2446
- [PM-33573] llm: Add testing-ios-code skill with examples and references by @SaintPatrck in #2447
- [PM-33576] llm: Add orchestration command, agent, and skill index to CLAUDE.md by @SaintPatrck in #2450
- [PM-34793] llm: Add ios-architect agent by @KatherineInCode in #2525
- [PM-34811] llm: Fix simulator destination in build-test-verify skill by @KatherineInCode in #2526
- QA-1654: Adding accessibilityIDs to FlightRecorderLogsView elements by @ifernandezdiaz in #2542
New Contributors
- @jalenfran made their first contribution in #1720
Full Changelog: v2026.4.0-bwa...v2026.4.1-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/24576671046