Overview
- Various under-the-hood improvements and bug fixes
What's Changed
✨ Community Highlight
- [PM-33390] PM-33287: Change minimum numbers/special max value from 5 to 9 by @marcdejesus in #2432
Feature Development
- [PM-33859] feat: Premium upgrade dismissed to state by @andrebispo5 in #2463
- [PM-33569] feat: Handle displaying login request for alert style notification by @matt-livefront in #2482
- [PM-33853] feat: Add BillingAPIService for premium upgrade endpoints by @andrebispo5 in #2496
- [PM-33854] feat: Add getPlans endpoint to BillingAPIService by @andrebispo5 in #2501
🐛 Bug fixes
- [PM-33930] fix: Exclude items with invalid keys from TOTP section count by @matt-livefront in #2477
- [PM-32401] fix: Prevent TOTP autofill for non-premium accounts by @matt-livefront in #2467
- [PM-32401] fix: Prevent copy TOTP autofill action for non-premium accounts by @matt-livefront in #2479
- [PM-34062] fix: Fix dismiss sync with browser automatically by @fedemkr in #2484
- [PM-34062] [Backport] fix: Increase wait time for dismiss on sync with browser by @fedemkr in #2497
- [PM-34205] fix: Hide unmasked password text field from VO when password is masked by @matt-livefront in #2499
- [PM-250] fix: Update MP Hint Validation by @morganzellers-bw in #2495
- [PM-33569] fix: Remove pending login request if it no longer exists by @matt-livefront in #2498
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2472
- [PM-33945] chore: Consolidate AppIDService to BitwardenKit by @KatherineInCode in #2478
- [PM-33908] chore: Consolidate KeychainService to BitwardenKit by @KatherineInCode in #2470
- [PM-32730] [BEEEP] chore: Improve spell check script by @fedemkr in #2471
- [PM-34052] chore: Consolidate BitwardenError into BitwardenKit by @KatherineInCode in #2481
- [PM-34106] chore: Consolidate KeychainItem into BitwardenKit via protocol by @KatherineInCode in #2492
- Crowdin Pull by @bw-ghapp[bot] in #2502
- [PM-34443] chore: Fix Testing.md Sourcery usage/path by @fedemkr in #2508
- [PM-34527] chore: Fix non-Sendable related trivial warnings. by @fedemkr in #2512
- [PM-25831] chore: Remove cxp-import-mobile feature flag by @matt-livefront in #2514
- [PM-34522] chore: Add sourcery automocks to AuthenticatorBridgeKit and convert SharedKeychainRepository to use it by @KatherineInCode in #2515
- [PM-34592] chore: Update iOS version for tests to 26.2 by @matt-livefront in #2517
📦 Dependency Updates
- Update public suffix list by @github-actions[bot] in #2473
- [deps]: Update GitHub Artifact Actions (major) by @renovate[bot] in #2454
- [deps]: Update gh minor by @renovate[bot] in #2475
- Update public suffix list by @github-actions[bot] in #2503
🎨 Other
- [PM-33853] llm: Add Billing domain to CLAUDE.md by @andrebispo5 in #2500
- [PM-33574] llm: Add build-test-verify skill by @SaintPatrck in #2448
New Contributors
- @marcdejesus made their first contribution in #2432
Full Changelog: v2026.3.1-bwa...v2026.4.0-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/23952233246