v2.0.0-sc.1
Pre-release
Pre-release
·
4 commits
to develop
since this release
Added
- SSH authentication with a PGP key, including RSA keys held on an OpenPGP smartcard
(newPgpCardSshAuthMethod); documentation for transferring a PGP key onto a card - Guided setup: PGP key, storage format, Git identity and remote are now asked for on
dedicated screens that can be stepped through forwards and back, replacing the dialog chain - A folder's encryption key is a labelled field that can be set to "Inherited from the folder
above", and folder key changes explain what happens to the entries already in it - Search bar on the password list, between the sync and add buttons, replacing the search
item in the app bar - "Change keys" on an open entry, with a warning when none of the chosen keys could open it
again, and a report when some keys could not be written for - The remote branch to reset to is chosen from the branches that exist
- A newly created password opens straight away, on the copy kept from writing it — no key,
passphrase or smartcard touch needed - Git commits are refused until a Git name and email are set, with a prompt to set them
Changed
- Saving an entry closes the editor immediately; the commit runs afterwards
- Encryption keys are named (
KeyNames) wherever they are shown, instead of being identified by
key ID, and an entry is opened with the keys the message itself records - Snackbars are gone: progress is shown at the top of the screen it belongs to, short
confirmations appear as a notice that outlives the screen that raised it (and waits for the
commit), and failures are raised as dialogs - Remote settings and authentication live in one screen, saved as they are edited; settings are
grouped into rounded containers and ordered by subject - The commit signer was rewritten (−90 lines) and the smartcard PIN-and-retry loop unified
- Generating a password moved into the password field; "Save and copy" was removed, so a password
is no longer put on the clipboard as a side effect of saving - Material 3 shape, spacing, type and colour applied throughout — dialogs, menus, tooltips,
switches, list rows and the setup screens - Wording throughout is shorter and says what happened rather than that it succeeded
Fixed
- Renaming an entry moves the file instead of writing a new one and leaving the old
- A save whose commit fails is rolled back, so disk and history cannot disagree — a cancelled
signing prompt no longer leaves an unrecorded entry - Re-encrypting an entry no longer overwrites it when encryption succeeded for none of the chosen
keys, and an entry edited under its own keys keeps them - Setting a folder's key when the target folder was lost (process killed behind the key picker)
no longer re-keys whichever folder happened to be on screen - Passphrases are cached under the key's own ID, not the store's name for it
- Re-keying a folder leaves the user where they were and skips hidden entries
- Folder picker navigation, selection state and empty state
Security
- The entry screen is exported and no longer accepts commit instructions or arbitrary file paths
from other applications - Decryption rejects input too short to contain an initialisation vector, instead of reading past
the end of the array - The proxy password is written once the field is done with, rather than one stored copy per
keystroke - OpenPGP smartcard: key fetch by card URL restricted to HTTPS with a size cap, decipher attempts
capped per message, messages without integrity protection rejected, and the card PIN kept out of
an immutableString
Disclaimer: The improvements in this build were implemented with assistance from generative AI (Claude Opus 4.8 and 5). Claude performed a security audit and a general code review of the changes, but I have not had time to review everything by hand myself. Since this is a password manager, please review the changes yourself before relying on this build for sensitive use, and please report any issues you find.