Connect desktop vault opening and lifecycle to the configuration shared with the CLI and TUI.
Scope
Implement Open Folder through the platform folder picker and the standard primary-modifier+O shortcut (Command-O on macOS, Ctrl-O elsewhere).
Pass the chosen folder to crates/storage for validation and opening; do not inspect the password-store structure in the GUI.
Load and update the same config.toml through storage-owned configuration APIs, including vault path, default key, editor setting, and authentication timeout.
Present startup behavior for configured, missing, moved, invalid, and inaccessible vault folders.
Coordinate opening another vault with the dirty-document confirmation flow; cancellation must leave the current vault unchanged.
Expose reload/refresh through UI actions without using filesystem watchers unless a demonstrated requirement later needs them.
Acceptance criteria
CLI, TUI, and GUI resolve and update the same configuration contract.
Open Folder validates through crates/storage and changes vault only after success.
Invalid or inaccessible folders produce actionable errors and do not replace the current session.
Opening another folder cannot silently lose unsaved changes.
## Goal
Connect desktop vault opening and lifecycle to the configuration shared with the CLI and TUI.
## Scope
- Implement Open Folder through the platform folder picker and the standard primary-modifier+O shortcut (`Command-O` on macOS, `Ctrl-O` elsewhere).
- Pass the chosen folder to `crates/storage` for validation and opening; do not inspect the password-store structure in the GUI.
- Load and update the same `config.toml` through storage-owned configuration APIs, including vault path, default key, editor setting, and authentication timeout.
- Present startup behavior for configured, missing, moved, invalid, and inaccessible vault folders.
- Coordinate opening another vault with the dirty-document confirmation flow; cancellation must leave the current vault unchanged.
- Expose reload/refresh through UI actions without using filesystem watchers unless a demonstrated requirement later needs them.
## Acceptance criteria
- CLI, TUI, and GUI resolve and update the same configuration contract.
- Open Folder validates through `crates/storage` and changes vault only after success.
- Invalid or inaccessible folders produce actionable errors and do not replace the current session.
- Opening another folder cannot silently lose unsaved changes.
hugo
added this to the 03 - Cross-platform Iced desktop app milestone 2026-08-09 19:30:04 +00:00
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
Connect desktop vault opening and lifecycle to the configuration shared with the CLI and TUI.
Scope
Command-Oon macOS,Ctrl-Oelsewhere).crates/storagefor validation and opening; do not inspect the password-store structure in the GUI.config.tomlthrough storage-owned configuration APIs, including vault path, default key, editor setting, and authentication timeout.Acceptance criteria
crates/storageand changes vault only after success.Implemented and pushed in commit
491d7b1. Added native macOS/Windows and XDG portal Linux folder selection with Cmd/Ctrl-O; storage-owned vault/config validation and atomic config.toml updates for vault, default key, editor, and authentication timeout; session replacement only after full repository/key/tree validation; actionable cancellation/failure states; shared dirty-document coordination; explicit refresh/reload actions; and in-flight switch lifecycle guards. Verification: cargo fmt --all -- --check; RUSTFLAGS="-D warnings" cargo check --workspace --all-targets; cargo clippy --workspace --all-targets -- -D warnings; cargo test --workspace. All passed. Focused configuration contract and desktop tests also passed, including failed/cancelled switches retaining config/session and dirty drafts.