feat(vault-config): ui.reduced_motion key (reserved groundwork)#19
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
ui.reduced_motion, completing the PRD §7.1 config registry(
clipboard.*,agent.*,sync.*, nowui.*). It's the accessibilitypreference 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 eventloop 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 (reusesparse_bool). It's aTUI-rendering preference, so it is not relayed via
agent_args(the agentnever renders), unlike the agent-side keys.
vault-tui:App.reduced_motion, populated fromconfig::load()inload_app. (A barepubfield — rustc doesn't flag it as dead, so noattribute needed; a future renderer reads it.)
Tests
vault-config:ui.reduced_motionround-trip (true/false), rejects anon-boolean, and is asserted never to appear as an agent flag.
Local CI-exact gates all green:
fmt, fresh isolatedclippy -D warnings,cargo test --workspace --all-targetsunderRUSTFLAGS=-D warnings,cargo deny check(no new deps), both headless builds.🤖 Generated with Claude Code