Files
proxy/.scratch/proxyctl/issues/08-coordinate-target-panel.md
T

2.3 KiB

08 — Coordinate the Active Profile and complete the Target panel

What to build: The complete everyday TUI experience across all first-release Targets, including dynamic discovery, contextual help, coordinated Active Profile changes, immediate per-Target progress, and safe handling of Profile deletion.

Blocked by: 03 — Control the APT Target; 04 — Control the Docker containers/builds Target; 05 — Control the GNOME desktop proxy Target; 06 — Control the Docker daemon Target; 07 — Diagnose and reset managed Target state.

Status: done

  • The main panel lists only Available Targets and refreshes availability and state on demand.
  • The help page lists every built-in Target, including hidden Targets and the reason each was not detected.
  • The selected Target's summary explains effects, non-effects, configuration ownership, expected permissions, and relevant side effects.
  • Arrow keys and j/k navigate, Space toggles, p opens Profile management, r refreshes, ? opens help, and q/Escape returns or exits consistently.
  • The Active Profile is always visible on the main panel, including a clear absent state.
  • Attempting to enable any Target without an Active Profile fails immediately and points to Profile management; disabling remains possible.
  • Changing the Active Profile updates every Enabled Target one at a time and reflects progress and completion immediately on each row.
  • A cross-Target partial failure keeps successful updates, re-inspects failed Targets, marks Drifted where appropriate, and presents a redacted summary without attempting global rollback.
  • Deleting the final Proxy Profile requires confirmation, leaves existing managed configuration in place as Drifted, and prevents re-enabling until a new Active Profile exists.
  • External configuration can be temporarily overlaid by the Active Profile and is restored to External when the managed Target is disabled.
  • TUI tests cover key-to-intent mapping, page transitions, Active Profile rendering, all Target states, confirmation dialogs, progress, errors, and explanations without duplicating Application behavior tests.
  • Full Application integration tests exercise multiple fake and real hermetic Adapters through Active Profile switching and partial failure.