Add Help, Settings, and About screens #37

Closed
opened 2026-08-09 19:30:16 +00:00 by hugo · 1 comment
Owner

Goal

Implement the small set of standard informational and preference screens expected from a desktop app.

Scope

  • Add a Help screen reachable from the Help menu and standard Help shortcut, replacing the TUI ? overlay.
  • List current platform shortcuts and explain the two-pane navigation, reveal/copy behavior, locking, command palette, Git actions, and OTP actions.
  • Add Settings/Preferences UI for the shared config.toml values that make sense in the desktop app, especially vault path, default key, and authentication inactivity timeout; persist only through crates/storage.
  • Add a standard About surface with version and license information.
  • Keep help content and shortcut labels driven by the same action mapping where practical so they do not drift.

Acceptance criteria

  • Help is discoverable from the Help menu and accurately reflects macOS versus Linux/Windows shortcuts.
  • Settings validate and persist through the shared storage configuration API and report errors without corrupting configuration.
  • About shows the built application version and project/license attribution.
  • Screens are keyboard navigable, labelled for assistive technology, and do not expose secrets.
## Goal Implement the small set of standard informational and preference screens expected from a desktop app. ## Scope - Add a Help screen reachable from the Help menu and standard Help shortcut, replacing the TUI `?` overlay. - List current platform shortcuts and explain the two-pane navigation, reveal/copy behavior, locking, command palette, Git actions, and OTP actions. - Add Settings/Preferences UI for the shared `config.toml` values that make sense in the desktop app, especially vault path, default key, and authentication inactivity timeout; persist only through `crates/storage`. - Add a standard About surface with version and license information. - Keep help content and shortcut labels driven by the same action mapping where practical so they do not drift. ## Acceptance criteria - Help is discoverable from the Help menu and accurately reflects macOS versus Linux/Windows shortcuts. - Settings validate and persist through the shared storage configuration API and report errors without corrupting configuration. - About shows the built application version and project/license attribution. - Screens are keyboard navigable, labelled for assistive technology, and do not expose secrets.
hugo added this to the 03 - Cross-platform Iced desktop app milestone 2026-08-09 19:30:16 +00:00
hugo added the enhancement label 2026-08-09 19:30:16 +00:00
Author
Owner

Implemented in commit 2eef49c and pushed to origin/main.

Delivered:

  • Help screen from the Help menu and F1, with shortcut labels generated from the shared action registry and platform-correct Command/Ctrl presentation.
  • Keyboard-accessible explanations for two-pane navigation, sensitive reveal/copy/lock behavior, the command palette, embedded HTTPS Git actions, and OTP workflows.
  • Editable Settings for vault path, default OpenPGP key, and authentication inactivity timeout, plus the shared config/clipboard context.
  • Storage-owned validation, key/tree/authentication bootstrap, and atomic config persistence; rejected settings leave the existing configuration byte-exact.
  • About surface with the built Cargo version, pass/pass-otp compatibility, contributor attribution, and the repository current pending-license status.
  • macOS native About now opens the same application surface.

Review: every acceptance criterion was traced against the final diff; the presentation layer does not read or mutate the repository or duplicate validation rules, and no screen exposes secrets.

Verification:

  • cargo fmt --all -- --check
  • RUSTFLAGS="-D warnings" cargo check --workspace --all-targets
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • focused: cargo test -p ironstorage-desktop
  • focused: cargo test -p ironstorage --test config_contract

All passed.

Implemented in commit 2eef49c and pushed to origin/main. Delivered: - Help screen from the Help menu and F1, with shortcut labels generated from the shared action registry and platform-correct Command/Ctrl presentation. - Keyboard-accessible explanations for two-pane navigation, sensitive reveal/copy/lock behavior, the command palette, embedded HTTPS Git actions, and OTP workflows. - Editable Settings for vault path, default OpenPGP key, and authentication inactivity timeout, plus the shared config/clipboard context. - Storage-owned validation, key/tree/authentication bootstrap, and atomic config persistence; rejected settings leave the existing configuration byte-exact. - About surface with the built Cargo version, pass/pass-otp compatibility, contributor attribution, and the repository current pending-license status. - macOS native About now opens the same application surface. Review: every acceptance criterion was traced against the final diff; the presentation layer does not read or mutate the repository or duplicate validation rules, and no screen exposes secrets. Verification: - cargo fmt --all -- --check - RUSTFLAGS="-D warnings" cargo check --workspace --all-targets - cargo clippy --workspace --all-targets -- -D warnings - cargo test --workspace - focused: cargo test -p ironstorage-desktop - focused: cargo test -p ironstorage --test config_contract All passed.
hugo closed this issue 2026-08-10 16:10:49 +00:00
Sign in to join this conversation.