Skip to content

Update SDK to 3dbc272 (3.0.0-7302-10ba9cb) - #2894

Open
bw-ghapp[bot] wants to merge 25 commits into
mainfrom
sdlc/sdk-update
Open

Update SDK to 3dbc272 (3.0.0-7302-10ba9cb)#2894
bw-ghapp[bot] wants to merge 25 commits into
mainfrom
sdlc/sdk-update

Conversation

@bw-ghapp

@bw-ghapp bw-ghapp Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Updates the SDK from d4ac79827da8d4f293cf1aaae4ffb3cf3883bd47 to 3dbc27249f48fcb88c56739ece52e2335701de0b

What's Changed

Raw changelog
- [PM-39259] Implement bitwarden-random crate (#1223)
- chore(deps): reassign rand to Key Management in renovate (#1233)
- [PM-38859] Add FIPS cipher suite to bitwarden-crypto safe module  (#1226)
- [PM-35105] Add SecretProtectedKeyEnvelope safe primitive to bitwarden-crypto (#1204)
- Update API bindings to e899a9c9f487cfbb2db690ccca92f897dff8b331 (#1199)
- [PM-26955] Password Salt fallbacks to normalized email (#1225)
- [PM-40179] Add bitwarden-pam crate scaffolding (#1237)
- chore(deps): add license for crates owned by @bitwarden/team-vault-dev (#1247)
- KM Code owners of `bitwarden-crypto-cipher-suite` crate (#1250)
- chore(deps): add license for crates owned by @bitwarden/team-platform-dev (#1246)
- chore(deps): add license for crates owned by @bitwarden/team-key-management-dev (#1245)
- chore(deps): add license for crates owned by @bitwarden/team-auth-dev (#1244)
- chore(deps): add license for crates owned by @bitwarden/team-admin-console-dev (#1243)
- [PM-39992] Wipe IPC Crypto Session When Destination is Unreachable (#1229)
- [PM-40220] Add PAM Access Rules (#1236)
- [PM-40047] Refactor cipher blob serialization to JSON to drop redundant base64 (#1230)
- [PM-33107] Blob encryption key rotation migration (#1188)
- [PM-39778] Subtitle alignment bank account license passport (#1222)
- feat(crypto): add cose key thumbprint support (#1256)
- chore: remove Platform as co-reviewer on Tools crates (#1251)
- Update API bindings to c2d97d5ff2019c524405c36f7f3afc992ec0ef03 (#1254)
- [PM-40201] Derive missing SSH public key and fingerprint in the SDK (#1238)
- [PM-38857] Add support for `XAES-256-GCM` to SymmetricCryptoKey, Enstring, and the KeyStoreContext (#1264)
- [PM-39754] Switch SymmetricKeyEnvelope default algorithm (#1276)
- Update Identity bindings to c2d97d5ff2019c524405c36f7f3afc992ec0ef03 (#1267)
- [PM-40375] Update doc comment to reflect correct SSH key parsing error variant name (#1277)
- chore(vault): remove unused encrypt_composite implementation (#1281)
- Kotlin/Swift local date (#1154)
- fix(passkey): fido2 assertion overwrites creation date of passkey (#1280)
- [PM-40158] Make XAES-256-GCM the default for v2 user keys (#1279)
- [PM-34719] Add Send functionality to rust CLI (#1176)
- docs(crypto): clarify encryptable contract (#1286)
- feat(crypto): add key-encryption-key, content-encryption-key, key-hierarchy notes to safe (#1257)
- feat(crypto): add ffi bindings for unsignedsharedkey (#1271)
- feat(crypto): add safe crypto based invites (#1273)
- Update API bindings to e8917a8a8f93555eb94e3e4773555532126d0d19 (#1278)
- fix(fido2authenticator): fix cipher downgrades during fido2 assertion (#1287)
- [PM-39239] Surface shareable access URLs in bw send output (#1235)
- Update API bindings to 2f375aa0852a3f464415aac71ae58494cc12d4e8 (#1298)

@bw-ghapp bw-ghapp Bot added automated-pr PR created by workflow or other automation t:deps Change Type - Dependencies labels Jul 20, 2026
@bw-ghapp
bw-ghapp Bot requested review from a team and matt-livefront as code owners July 20, 2026 12:19
@bw-ghapp bw-ghapp Bot added automated-pr PR created by workflow or other automation t:deps Change Type - Dependencies labels Jul 20, 2026
@github-actions github-actions Bot added app:authenticator Bitwarden Authenticator app context app:password-manager Bitwarden Password Manager app context labels Jul 20, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to c5f5cf1 (3.0.0-7145-41bc9f6) Update SDK to a1ac266 (3.0.0-7155-270018d) Jul 20, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to a1ac266 (3.0.0-7155-270018d) Update SDK to 29e0488 (3.0.0-7165-e504886) Jul 20, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 29e0488 (3.0.0-7165-e504886) Update SDK to 6b3f130 (3.0.0-7207-3831dfe) Jul 21, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 6b3f130 (3.0.0-7207-3831dfe) Update SDK to bff911b (3.0.0-7208-62f4dec) Jul 21, 2026
fedemkr
fedemkr previously approved these changes Jul 21, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to bff911b (3.0.0-7208-62f4dec) Update SDK to 4e855bf (3.0.0-7215-4e9fed5) Jul 22, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 4e855bf (3.0.0-7215-4e9fed5) Update SDK to 86417ce (3.0.0-7236-d661e5c) Jul 23, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 86417ce (3.0.0-7236-d661e5c) Update SDK to e930cda (3.0.0-7237-c3e4610) Jul 23, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to e930cda (3.0.0-7237-c3e4610) Update SDK to 8b70324 (3.0.0-7238-a9b0e18) Jul 23, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 8b70324 (3.0.0-7238-a9b0e18) Update SDK to d72e6a1 (3.0.0-7263-b61945b) Jul 24, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to d72e6a1 (3.0.0-7263-b61945b) Update SDK to d866ee1 (3.0.0-7268-520e5f5) Jul 24, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to d866ee1 (3.0.0-7268-520e5f5) Update SDK to 55810ea (3.0.0-7274-db3ed96) Jul 24, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 55810ea (3.0.0-7274-db3ed96) Update SDK to 1f045a1 (3.0.0-7289-9b83f54) Jul 24, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 1f045a1 (3.0.0-7289-9b83f54) Update SDK to 7aba0fc (3.0.0-7297-1dacfac) Jul 27, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 7aba0fc (3.0.0-7297-1dacfac) Update SDK to 1656f3f (3.0.0-7301-e803618) Jul 27, 2026
@bw-ghapp bw-ghapp Bot changed the title Update SDK to 1656f3f (3.0.0-7301-e803618) Update SDK to 3dbc272 (3.0.0-7302-10ba9cb) Jul 27, 2026
@codecov

codecov Bot commented Jul 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 88.23529% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.89%. Comparing base (58ef05a) to head (f5d88aa).
⚠️ Report is 10 commits behind head on main.

Files with missing lines Patch % Lines
...ersLicenseItem/AddEditDriversLicenseItemView.swift 0.00% 3 Missing ⚠️
.../AddEditPassportItem/AddEditPassportItemView.swift 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2894      +/-   ##
==========================================
- Coverage   81.10%   78.89%   -2.22%     
==========================================
  Files        1038     1161     +123     
  Lines       67332    74631    +7299     
==========================================
+ Hits        54608    58878    +4270     
- Misses      12724    15753    +3029     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@LRNcardozoWDF
LRNcardozoWDF requested a review from fedemkr July 28, 2026 11:09

@fedemkr fedemkr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just a small ⛏️ . Also would it be possible to add a short summary of what's changing in the PR? i.e. what are the actual platform changes given the SDK being updated.
I believe that would add more context for the reviewer and also if we need to go back to a closed/merged PR to see what it was doing.
Also added the ai-review label.

Comment on lines +543 to +551
/// Whether the type is a bankAccount
var isBankAccount: Bool {
switch self {
case .bankAccount:
true
default:
false
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⛏️ Missing tests.

@fedemkr fedemkr added the ai-review Request a Claude code review label Jul 30, 2026
@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

🤖 Bitwarden Claude Code Review

Overall Assessment: REQUEST CHANGES

Reviewed the SDK revision bump from d4ac798 to 3dbc272 and the call-site updates it required. The bulk of the change is mechanical adaptation to three SDK contract changes: CipherListViewType.bankAccount now carries a BankAccountListView payload, SshKey.publicKey/fingerprint became optional (propagated to CipherSSHKeyModel), and the driver's license / passport date fields moved from String? to Date?. The Date? migration removed the local ISO parsing and its UTC anchoring, which changes how those dates are rendered.

Code Review Details
  • ⚠️ : Date-only fields now render in the device time zone rather than UTC, shifting the displayed calendar day for users west of UTC
    • BitwardenShared/UI/Vault/VaultItem/AddEditItem/AddEditPassportItem/AddEditPassportItemState.swift:70
    • BitwardenShared/UI/Vault/VaultItem/AddEditItem/AddEditDriversLicenseItem/AddEditDriversLicenseItemState.swift:62

Verified as non-issues: the CipherSSHKeyModel optionality change is consistent in both directions (init(sshKey:) and BitwardenSdk.SshKey(sshKeyModel:)), SshKeyView remains non-optional so sshKeyItemState() is unaffected, the isPassportDetailsSectionEmpty / isDriversLicenseDetailsSectionEmpty refactors preserve semantics, and project-common.yml and Package.resolved are updated to the same revision.

The missing test coverage for CipherListViewType.isBankAccount is already tracked in an existing review thread, so it is not repeated here.

Dependency Changes

Package Change Ecosystem
BitwardenSdk d4ac7983dbc272 (3.0.0-7302-10ba9cb) SwiftPM

Comment on lines +70 to 73
private static func displayDate(from date: Date?) -> String {
guard let date else { return "" }
return date.formatted(date: .long, time: .omitted)
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ IMPORTANT: Date-only fields now render in the device time zone, shifting the displayed calendar day.

Details and fix

The previous implementation parsed the ISO string with TimeZone(identifier: "UTC") specifically so "a stored date reads back as the same calendar day regardless of device locale". That intent (and the parser) is gone, but the render call is still date.formatted(date: .long, time: .omitted), which uses TimeZone.autoupdatingCurrent. Since these SDK values are UTC-anchored calendar dates (midnight UTC — same anchoring Date(year:month:day:) produces, per its timeZone: TimeZone(secondsFromGMT: 0)! default), a DOB of 1989-08-01 renders as "July 31, 1989" for any user west of UTC.

BitwardenKit already has the helper built for exactly this case, and it's what the shared DateFieldPicker from PM-38360 uses:

// BitwardenKit/Core/Platform/Extensions/Date.swift
/// ... pinned to UTC so a UTC-anchored stored date reads back as the same
/// calendar day regardless of device time zone.
var longCalendarDateDisplay: String

Suggested fix (requires import BitwardenKit):

private static func displayDate(from date: Date?) -> String {
    guard let date else { return "" }
    return date.longCalendarDateDisplay
}

The same applies to AddEditDriversLicenseItemState.swift:62-65.

Note the reworked tests won't catch this — #expect(subject.dateOfBirthDisplay == subject.dateOfBirth?.formatted(date: .long, time: .omitted)) asserts the implementation against itself, so it passes in any time zone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review app:authenticator Bitwarden Authenticator app context app:password-manager Bitwarden Password Manager app context automated-pr PR created by workflow or other automation t:deps Change Type - Dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants