This release introduces biometric unlock on Windows with Windows Hello, a major overhaul of the OpenPGP pipeline, and significant improvements to sync conflict resolution for KDBX users.
- e009f2ed - refactor: Fix Detekt violations
- baba1021 - Revert "deps: Bump Compose"
- a2373ed1 - refactor: Move Zip service in a util/zip/ KMP module
- a885d303 - refactor: Move Zxcvbn implementation in a util/zxcvbn/ KMP module
- a69856db - chore: Smaller changelog summary is better
- a98219e7 - tests: Clean-up some of the GPG smoke tests
- 5e1ad797 - Merge pull request #1552 from AChep/localization_action
- 1d475f0e - chore: Bump app version to 3.1.0
- bb293191 - tests: Handle elevated Windows child owner
- a38ec41a - fix: Correct Windows hello credential handling
- 44079329 - [AUTO] Update localization library
- 7b296301 - feat: Windows Hello biometric unlock
- 6edcc818 - fix: Support K-9 signing key selection requests
- f2beb82e - tests: Cache UI Automation instance
- c78d836d - refactor: Fix Detekt violations
- 54b991c4 - chore: Pre-install required Rust components during Rust setup step
- f204d80f - Merge pull request #1557 from AChep/dependabot/github_actions/crowdin/github-action-2.17.1
- 96070065 - Merge pull request #1561 from AChep/gpmpasskeysprivapps_action
- aace6d70 - @sannidhyaroy has signed the CLA in #1563
- 38cb70b0 - improvement(GPG): Confirm signer identities with local certification authorities
- 4b2e5b57 - fix(UI): Align hardware unlock button row on the GPG unlock dialog
- 14a2ef22 - chore: merge Compose Multiplatform 1.12.0 upgrade
- 3d11dcaa - deps: Bump Compose
- e2533faf - fix: Disable pending usage history runner on Wear OS #1558
- 97f97cfc - fix: Run pending usage history on default dispatcher #1559
- 4d337c7b - fix: Explicitly disable HTTP cache on download requests
- 880c719f - fix(Bitwarden): Split GPG keys into multiple fields to avoid 5000 symbols limit
- 3a6f49cf - improvement: GPG certificate user ID replace/revoke UI
- c84611e6 - [AUTO] Update GPM Credential Privileged Apps JSON
- 004bf736 - improvement: GPG certificate reconciliation during normal import
- cad26986 - improvement: Add Titanium browser as privileged #1560
- f24669eb - refactor: Fix Lint complains
- dfdd520c - improvement: Reconcile changes in GPG certificates during a conflict
- 5b173e0e - improvement: 3-way merge for conflict resolution for KDBX
- 68ad89a9 - fix: Encode passkey key value as URL-safe base64, fixes incompatibility with BW #1559
- 0a76d715 - fix: Reject invalid keyserver responses
- 499dfb99 - improvement: Preserve GPG revocation evidence and reassess key status
- 7701a732 - improvement: Get GPG key restoration and revocation status
- 4598912e - chore(deps): bump crowdin/github-action from 2.17.0 to 2.17.1
- b8ed80d1 - fix(GPG): Preserve local key material during keyserver refresh
- dbf7024d - fix(agent): Verify macOS login ancestry for approval reuse #1549
- 547645b3 - docs(llm): Take AGENTS.md a bit more seriously
- a493d04a - fix: Update GPG and SSH agent paths on Linux and macOS
- 247a0b80 - fix: Harden SSH and GPG socket lifecycle & discovery
- 3f2d0479 - fix(macOS): Mark gpg agent binary as executable on release
- b732b696 - improvement: Add user ID management and deterministic certificate reconciliation
- 3a57ecea - feat: Overhaul OpenPGP pipeline
- 2dbe4aca - fix(sync): propagate fatal errors
- 96a0c256 - feat: Type a password from memory and compare it with a stored one #1533
- 4edd59b9 - docs: Remove the mention that Keyguard is largely JVM dependent
- 9673b43c - fix(Desktop): Stop SSH/GPG agent IPC servers on shutdown #1548
- 5f6b22e7 - improvement: Explicitly forbid database downgrade #1547
- 1e5ad1b4 - Merge pull request #1546 from ilkecan/fix/desktop-okhttp-bom
- acd217ce - @ilkecan has signed the CLA in #1546
- 56e21e5c - fix(Desktop): Declare the okhttp BOM in desktopApp
- 24827f50 - docs: Note that we do not have browser extension