Present search and entry mutation workflows for the complete base pass feature set.
Scope
Add entry-name search and decrypted-content search using storage-provided query/result models, with authentication only when the requested search needs plaintext.
Present search results with stable entry identities and navigate to the selected result.
Add copy, move/rename, and delete actions with destination selection, validation feedback, and appropriate confirmations.
Keep traversal, matching semantics, collision handling, encryption, filesystem mutation, and commits in crates/storage.
Integrate actions into menus, context menus, keyboard shortcuts where conventional, and the command palette.
Acceptance criteria
Name and content search match the storage crate/CLI semantics without GUI-side repository scans.
Results remain associated with storage-provided identities rather than display strings.
Move/copy/delete cannot bypass conflicts, authentication, or destructive confirmation.
Cancellation or storage failure leaves the sidebar, selection, and dirty document in a coherent state.
## Goal
Present search and entry mutation workflows for the complete base pass feature set.
## Scope
- Add entry-name search and decrypted-content search using storage-provided query/result models, with authentication only when the requested search needs plaintext.
- Present search results with stable entry identities and navigate to the selected result.
- Add copy, move/rename, and delete actions with destination selection, validation feedback, and appropriate confirmations.
- Keep traversal, matching semantics, collision handling, encryption, filesystem mutation, and commits in `crates/storage`.
- Integrate actions into menus, context menus, keyboard shortcuts where conventional, and the command palette.
## Acceptance criteria
- Name and content search match the storage crate/CLI semantics without GUI-side repository scans.
- Results remain associated with storage-provided identities rather than display strings.
- Move/copy/delete cannot bypass conflicts, authentication, or destructive confirmation.
- Cancellation or storage failure leaves the sidebar, selection, and dirty document in a coherent state.
hugo
added this to the 03 - Cross-platform Iced desktop app milestone 2026-08-09 19:30:17 +00:00
Added storage-backed name search using FindRequest/FindResults with exact multi-term OR semantics and no authentication, plus authenticated decrypted regex/fixed-string search using GrepRequest/GrepResults and all existing grep flags.
Name matches now carry storage-owned TreeNodeId values; decrypted matches retain typed EntryPath identities. Selecting a result expands the typed navigation lineage and opens entries through the normal authentication/dirty-draft guard.
Added authenticated copy, move/rename, and recursive entry/folder deletion through DesktopMutationRequest and TreeMutator. crates/storage remains responsible for traversal, collision detection, recipient-aware re-encryption, rollback-safe filesystem changes, and embedded Git commits.
Added typed destination selection, explicit overwrite and permanent-removal confirmations, storage validation feedback, post-mutation typed reselection, and right-click context actions. All actions are in the shared native/in-window menu and command-palette registry; Cmd/Ctrl-F searches names and Shift-Cmd/Ctrl-F searches decrypted contents.
Cancellation and injected storage failures retain the sidebar selection and dirty editor. Authentication loss removes decrypted search results.
All gates passed. The full suite includes 24 desktop tests and 94 TUI tests; the isolated desktop regression verifies search semantics, typed identities, collision refusal, copy/move/delete contents, clean embedded-Git state, and one automatic commit per mutation. No Apple project files changed.
Implemented and pushed as commit de5dea2.
Implementation review:
- Added storage-backed name search using FindRequest/FindResults with exact multi-term OR semantics and no authentication, plus authenticated decrypted regex/fixed-string search using GrepRequest/GrepResults and all existing grep flags.
- Name matches now carry storage-owned TreeNodeId values; decrypted matches retain typed EntryPath identities. Selecting a result expands the typed navigation lineage and opens entries through the normal authentication/dirty-draft guard.
- Added authenticated copy, move/rename, and recursive entry/folder deletion through DesktopMutationRequest and TreeMutator. crates/storage remains responsible for traversal, collision detection, recipient-aware re-encryption, rollback-safe filesystem changes, and embedded Git commits.
- Added typed destination selection, explicit overwrite and permanent-removal confirmations, storage validation feedback, post-mutation typed reselection, and right-click context actions. All actions are in the shared native/in-window menu and command-palette registry; Cmd/Ctrl-F searches names and Shift-Cmd/Ctrl-F searches decrypted contents.
- Cancellation and injected storage failures retain the sidebar selection and dirty editor. Authentication loss removes decrypted search results.
Verification completed from the repository root:
- cargo fmt --all -- --check
- RUSTFLAGS="-D warnings" cargo check --workspace --all-targets
- cargo clippy --workspace --all-targets -- -D warnings
- cargo test --workspace
All gates passed. The full suite includes 24 desktop tests and 94 TUI tests; the isolated desktop regression verifies search semantics, typed identities, collision refusal, copy/move/delete contents, clean embedded-Git state, and one automatic commit per mutation. No Apple project files changed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal
Present search and entry mutation workflows for the complete base pass feature set.
Scope
crates/storage.Acceptance criteria
Implemented and pushed as commit
de5dea2.Implementation review:
Verification completed from the repository root:
All gates passed. The full suite includes 24 desktop tests and 94 TUI tests; the isolated desktop regression verifies search semantics, typed identities, collision refusal, copy/move/delete contents, clean embedded-Git state, and one automatic commit per mutation. No Apple project files changed.