Implement initialization, entry creation and generation dialogs #24
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement the TUI forms and dialogs for vault initialization, recipient selection, entry creation and password generation.
Scope
.gpg-idrecipient selection using storage-provided key identities.:commands, with consistent validation and confirmation.Acceptance criteria
.gpg-id, encryption, generation or Git rules itself.Prerequisites
Sidebar; authentication UI; structured editor; keymap; command mode.
Implemented and pushed in commit
6ea184c.The Ratatui frontend now provides keyboard-only dialogs for recipient initialization, entry insertion, and password generation. Direct hotkeys and typed colon commands use the same forms. Initialization selects one or more encrypt-capable identities supplied by crates/storage and supports nested policies. Insert supports hidden-confirmed, echoed, and multiline secret input with constant masking and zeroized buffers. Generate supports pass-default or explicit length, symbol selection, overwrite, and in-place replacement.
All repository mutation remains in crates/storage through RecipientPolicyManager, VaultWriter, PasswordGenerator, and storage-owned automatic Git committers. Work executes off the input thread after secure-store authentication. Cancellation and validation do not mutate the vault; failures retain the form; successful writes refresh the sidebar and open the resulting structured document without rendering the plaintext password.
Verification included an encrypted compatibility-store integration covering nested multi-recipient init, multiline insert, declined overwrite with byte-identical ciphertext and unchanged Git history, new generation, in-place generation preserving document suffix fields, and one automatic Git commit per successful operation. Secure rendering, command parity, validation, focus, cancellation, and redacted diagnostics have unit tests.
Required gates passed from the repository root: