Sensitive values are never shown before authentication or after relock.
Copy and reveal require explicit user action and operate on storage-provided field values.
The viewer contains no password-store parser or domain normalization logic.
## Goal
Render password entries as structured, accessible desktop content rather than raw text.
## Scope
- Build the right-pane viewer from the typed structured entry document returned by `crates/storage`.
- Display the password, named fields, notes, OTP metadata, and unknown or repeated fields without losing information.
- Hide passwords and other sensitive values by default; provide explicit reveal/hide and copy actions with clear state.
- Support keyboard traversal, selection, scrolling, long/multiline values, and accessible labels.
- Render malformed or partially understood entries using storage-provided diagnostics and lossless fields, without reparsing source text in the GUI.
- Return to a masked/empty viewer when the authentication lease expires.
## Acceptance criteria
- Viewer fixtures cover ordinary, dynamic, repeated, multiline, OTP-bearing, and partially malformed entries.
- Sensitive values are never shown before authentication or after relock.
- Copy and reveal require explicit user action and operate on storage-provided field values.
- The viewer contains no password-store parser or domain normalization logic.
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
Render password entries as structured, accessible desktop content rather than raw text.
Scope
crates/storage.Acceptance criteria
Implemented in
f6e74cb. Added an authenticated structured viewer with an explicit view/edit split, masked-by-default sensitive fields, field-specific reveal/copy controls, keyboard selection and scroll tracking, distinct accessible labels for repeated fields, multiline note preservation, and storage-provided OTP metadata plus malformed-OTP/non-UTF-8 diagnostics. Relock and lease expiry clear all document and reveal state. Verified with cargo fmt --all -- --check, RUSTFLAGS="-D warnings" cargo check --workspace --all-targets, cargo clippy --workspace --all-targets -- -D warnings, cargo test --workspace, the mixed lossless viewer fixture, and a native desktop launch smoke test.