Repository source: docs/plans/backlog/v3_terminal_operator_ui_step2_feature_description.md
Problem
The growing ./v3 command surface makes routine status checks and safe private-configuration changes hard to discover, while configuration source and secret handling must remain clear and trustworthy.
User Stories
As an operator, I want a terminal dashboard for current status and effective private configuration so that I can identify the next safe action without remembering command syntax.
As an operator, I want to see private-setting sources and redacted effective values so that I can identify configuration constraints before acting.
As an automation author, I want existing
./v3commands to remain authoritative and scriptable so that the TUI does not change established automation.
Core Requirements
Provide
./v3 tuias a config-first status/config dashboard and command launcher, usingwhiptailwhen available and a concise CLI fallback otherwise.Define one shared configuration contract for defaults, validation, redaction, precedence, and supported setting metadata; use it for the dashboard and private-config flow.
Delegate command execution and validation to existing commands; keep non-interactive command behavior intact and do not recreate site feature-flag management.
Keep the TUI read-only for private configuration; defer the private-config editor, including presets, secret entry, save diffs, and atomic writes, to a follow-up feature.
Exclude guided destructive workflows from this feature; environment-origin settings are visibly read-only.
Delivery Scope
Work type: application change.
Completion boundary: an operator starts
./v3 tuifrom an interactive terminal, views redacted status/configuration with source information, and launches supported existing commands. Cancellation, unavailablewhiptail, and non-TTY use produce a usable CLI recovery path without state changes. The release condition is automated coverage of the shared configuration behavior, dashboard/launcher paths, and fallback behavior.
Risks
Secret exposure — impact: credential disclosure; earliest validation: exercise display, review, errors, and launched commands with test secrets; mitigation: redact by default and prohibit secrets in arguments, output, and saved previews.
Configuration drift — impact: the UI reports or writes semantics different from runtime; earliest validation: compare effective sources and validation outcomes across supported settings; mitigation: make the shared contract the canonical source for both paths.
Terminal incompatibility — impact: operators cannot use the interface in deployment environments; earliest validation: run with and without
whiptailand with non-TTY input; mitigation: dependency detection and documented CLI fallback.Accidental state changes — impact: a launcher performs work unexpectedly; earliest validation: exercise each supported action and cancellation path; mitigation: limit this slice to explicitly selected existing commands and leave destructive workflows out of scope.
Shared Component Inventory
./v3 status: canonical operational-status renderer; reuse as the dashboard's status source rather than reimplementing status collection../v3 private-config: canonical private-config read/write surface; reuse its read-only configuration semantics through the shared contract and retain it as the recovery path./tools/feature-flags/: canonical web surface for site-managed feature flags; do not extend or duplicate it in the TUI, beyond directing operators to it when relevant.
User Flow
Operator runs
./v3 tuifrom an interactive terminal.The interface shows redacted effective configuration, its source, and current operator status.
The operator selects a supported existing command to launch or exits without changing configuration.
The interface reports the result and the equivalent CLI recovery path when interactive use is unavailable.
Success Criteria
An interactive operator can complete the normal status/configuration flow without manually assembling command arguments.
Supported settings display one consistent effective value, source, validation result, and redaction policy across the dashboard and private-config command.
The dashboard and command launcher do not change private configuration or duplicate feature-flag management.
Existing CLI commands and the web feature-flags workflow remain available and unchanged for their established uses.
Missing
whiptailor non-interactive input yields a clear, actionable CLI fallback without partial work.