Implement search and existing-entry mutation workflows #25
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 search and mutation workflows for existing entries and folders.
Scope
:commands for each workflow.Acceptance criteria
Prerequisites
Sidebar; authenticated viewer; keymap; command mode.
Implemented and pushed in
ce3e4a9.The TUI now provides complete keyboard-only forms for decrypted grep, copy, move or rename, and recursive removal. Direct hotkeys and equivalent colon commands feed the same typed storage requests. Copy and move expose overwrite handling and existing-directory semantics as explicit choices. Removal retains the two-key d d binding and also requires an explicit permanent-removal confirmation inside the form.
Name find results use the storage-provided filtered tree. Decrypted grep uses storage-owned decryption and matching, renders typed matched entries and lines, supports result cycling and opening the originating entry, and clears plaintext result state on close, refresh, authentication, or lock.
Storage now owns automatic Git selection for tree transactions and returns typed post-transfer selection targets after destination-container rules are applied. The TUI invokes TreeMutator only through this API; it never reads ciphertext, searches plaintext itself, or mutates repository paths. Successful copy, move, and remove operations refresh the storage tree and commit once. Typed failures retain every form choice for retry.
Coverage proves search cancellation, no matches, decryption failure, name and grep navigation, explicit form options, collision rollback, nested-recipient reencryption, destination-directory behavior, move, recursive removal, refresh selection, and isolated automatic Git commits. The README now documents debug and release builds for the workspace, CLI, Ratatui TUI, Iced desktop app, storage library, Apple Rust bridge, and Xcode simulator app.
Verification passed: