Skip to content

feat(vault-config): ui.reduced_motion key (reserved groundwork)#19

Merged
UnbreakableMJ merged 1 commit into
mainfrom
ui-reduced-motion
Jun 15, 2026
Merged

feat(vault-config): ui.reduced_motion key (reserved groundwork)#19
UnbreakableMJ merged 1 commit into
mainfrom
ui-reduced-motion

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

What

Adds ui.reduced_motion, completing the PRD §7.1 config registry
(clipboard.*, agent.*, sync.*, now ui.*). It's the accessibility
preference to suppress animated TUI elements (spinner / lock-countdown).

Honest scope: it's reserved groundwork

Exploration confirmed the TUI has zero animation today — toasts are a static
Option<String> (no expiry timer), there are no blink modifiers, and the event
loop is purely event-driven (the only timer is the OSC52 clipboard-clear). So
the key has nothing to act on yet. Per the decision taken with the user, we
ship it inert now: record/validate the preference and plumb the flag, ready
for the future spinner / lock-countdown to honor without re-plumbing. No
visible effect today.

How

  • vault-config: [ui] table + ui.reduced_motion (bool) — get/set/
    unset + reduced_motion() accessor (reuses parse_bool). It's a
    TUI-rendering preference, so it is not relayed via agent_args (the agent
    never renders), unlike the agent-side keys.
  • vault-tui: App.reduced_motion, populated from config::load() in
    load_app. (A bare pub field — rustc doesn't flag it as dead, so no
    attribute needed; a future renderer reads it.)

Tests

  • vault-config: ui.reduced_motion round-trip (true/false), rejects a
    non-boolean, and is asserted never to appear as an agent flag.

Local CI-exact gates all green: fmt, fresh isolated clippy -D warnings,
cargo test --workspace --all-targets under RUSTFLAGS=-D warnings,
cargo deny check (no new deps), both headless builds.

🤖 Generated with Claude Code

Completes the PRD §7.1 config registry with the accessibility preference to
suppress animated TUI elements. The TUI is fully event-driven today (no
spinner, lock-countdown, or blink), so the key is inert groundwork:

- vault-config: [ui] table + ui.reduced_motion (bool) with get/set/unset +
  reduced_motion() accessor. TUI-rendering preference — NOT relayed via
  agent_args.
- vault-tui: App.reduced_motion flag, populated from config in load_app,
  reserved for a future spinner / lock-countdown to honor without re-plumbing
  (no visible effect yet).

Tested in vault-config (round-trip, rejects non-booleans, never an agent flag).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@UnbreakableMJ
UnbreakableMJ merged commit a212915 into main Jun 15, 2026
8 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the ui-reduced-motion branch June 15, 2026 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant