This update features a major search rework, SSH agent support for Android via Termux, and the ability to import SSH keys from files. Search now prioritizes title matches and displays context as a badge. You can also batch-edit tags for multiple items. Further improvements include Bash syntax highlighting and optimized Watchtower processing. Key fixes address desktop SSH agent startup loops, cmd:// URI handling, and gracefully handle invalid TOTP keys and SSH agent failures on Android.
All changes
0601d320 - improvement: Basic syntax highlighting for the Bash code snippets
76b62959 - improvement: More consistent padding on search qualifier popup
556891e7 - chore: Bump app version to 2.7.0
32461784 - improvement: Increase the max height of the SSH request window so the fingerprint icon fits properly
5a43351b - Merge pull request #1327 from AChep/localization_action
319a785b - Merge pull request #1337 from AChep/tld_public_suffix_list_action
47f08d12 - Merge pull request #1338 from AChep/tfa_2factorauth_action
ba46532c - Merge pull request #1339 from AChep/justdeleteme_action
a4b12bad - [AUTO] Update localization library
3a0bff06 - [AUTO] Update justdeleteme library
7323aaec - [AUTO] Update two-factor auth library
628d679b - [AUTO] Update Public suffix list
b0716995 - improvement(Desktop): Retry starting up the SSH agent before giving up
bc912119 - fix(UI): On edit cipher screen show invalid (deleted) folder as No folder #1330
ea26480a - chore: Bump Compose Multiplatform components to their respectable versions
58bc1e2e - chore: Bump Compose Multiplatform from 1.11.0-alpha04 to 1.11.0-beta01
e4022b25 - fix(Android): Gracefully handle failures in the SSH agent bridge
3dba1d6c - chore(Android): Uncomment .debug suffix for debug builds
efa31d30 - Merge pull request #1335 from AChep/dependabot/gradle/com.google.firebase-firebase-bom-34.11.0
24b18533 - Merge pull request #1334 from AChep/dependabot/gradle/com.hierynomus-sshj-0.40.0
6ca45b89 - feat(Android): SSH Agent support via a custom Termux package #884
31f11f68 - fix(Desktop): SSH agent restarts multiple times on app launch
72bdedbf - docs: Remove repository map from AGENTS.md
8d8857b0 - build(deps): Bump com.google.firebase:firebase-bom
e0bd6a4b - build(deps): Bump com.hierynomus:sshj from 0.38.0 to 0.40.0
bd2f6b8d - fix: Stop cmd:// URIs from being recognized as Web platform, which prevents a user from executing the command #1261
5ef22bcb - fix(Linux): Mark jspawnhelper as executable #640 #1261
24c8ed4f - Merge pull request #1331 from AChep/dependabot/github_actions/apple-actions/import-codesign-certs-6.1.0
17b358d5 - Merge pull request #1332 from AChep/dependabot/gradle/arrow-2.2.2.1
30edbae4 - Merge pull request #1333 from AChep/dependabot/gradle/touchIcon-0.9.12
a7aa0681 - build(deps): Bump touchIcon from 0.9.11 to 0.9.12
11e13f85 - build(deps): Bump arrow from 2.2.2 to 2.2.2.1
38b7171e - build(deps): Bump apple-actions/import-codesign-certs
c13d67b0 - chore(Android): Fix build by adding sun.security.x509.X509Key to R8's donotwarn
746454bf - Merge pull request #1328 from AChep/dependabot/gradle/androidx.activity-activity-compose-1.13.0
673cbee4 - Merge pull request #1329 from AChep/dependabot/gradle/sqldelight-2.3.2
f690f4c4 - feat: Add support for importing SSH keys from files #1326
d4dc2b70 - refactor(Android): Migrate from deprecated APIs for edge-to-edge
a93d9f9c - fix(Desktop): Show toast messages on the focused window
bc7c2f4a - build(deps): Bump sqldelight from 2.3.1 to 2.3.2
4bea6934 - build(deps): Bump androidx.activity:activity-compose
89ee6f93 - docs: Add VAULT_SEARCH section
8700ac23 - fix: Handle invalid TOTP secret key gracefully
5d78ba3d - improvement(UI): Insert/delete animation for add a cipher screen's items
37fa7345 - improvement(Vault): Set tags on multiple ciphers in batch #1181
47c62e09 - refactor: Add a comment about mutablePersistedFlow(...)
c9a3f7f4 - improvement(search): Always highlight a title match if there's one
204153c8 - improvement(search): Boost title field impact
90dfd060 - improvement(search,UI): Display search context as a badge
e62fa8ce - tests(search): Add search benchmark
98fb6207 - Merge pull request #1325 from AChep/dependabot/gradle/androidx.benchmark-benchmark-macro-junit4-1.5.0-alpha04
f5b1f0f8 - Merge pull request #1320 from AChep/dependabot/github_actions/crowdin/github-action-2.15.2
ad96da5c - Merge pull request #1321 from AChep/dependabot/github_actions/reactivecircus/android-emulator-runner-2.37.0
ea15db47 - Merge pull request #1322 from AChep/dependabot/github_actions/softprops/action-gh-release-2.6.1
34e34935 - Merge pull request #1324 from AChep/dependabot/gradle/gradle-wrapper-9.4.0
af59a1eb - feat: Large Search rework
edc9ffac - refactor: Minor code cleanup of the DB repos
fea9ab3f - improvement(performance): Split background processing of Watchtower entities in chunks, limit parallelization to lower the load on low-end devices
b1c6f46c - improvement(KeePass): Calculate the password strength on first sync
35a68955 - chore: Add a script for generating test KeePass databases
4ea4c578 - build(deps): Bump androidx.benchmark:benchmark-macro-junit4
880ce4dd - build(deps): Bump gradle-wrapper from 9.3.1 to 9.4.0
f358f0fc - build(deps): Bump softprops/action-gh-release from 2.5.0 to 2.6.1
098e879e - build(deps): Bump reactivecircus/android-emulator-runner
da390d76 - build(deps): Bump crowdin/github-action from 2.15.0 to 2.15.2