Implement the structured entry viewer #33

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

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.
## 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
hugo added the enhancement label 2026-08-09 19:30:04 +00:00
Author
Owner

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.

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.
hugo closed this issue 2026-08-10 14:28:22 +00:00
Sign in to join this conversation.