Skip to content

Replace ConsoleUtility prompts with Spectre.Console (already a dependency) #353

Description

@ChrisonSimtian

Tier 1 — Replace. src/Fallout.Build/Utilities/ConsoleUtility.cs (~143 LOC) hand-reimplements interactive prompts — PromptForInput(), PromptForChoice() (arrow-key selection), ReadSecret() — with raw console state management.

Replace with

Spectre.Consolealready referenced in Directory.Packages.props (v0.49.1). Use TextPrompt, SelectionPrompt<T>, and secret-masked prompts.

Why this is the easiest win

Dependency already present, the code is internal, and ~80 LOC of manual console handling simply disappears with better cross-platform behaviour.

Non-breaking

Internal utility — swap implementation, keep callers working. Target 2026 directly.

Acceptance

  • PromptForInput / PromptForChoice / ReadSecret backed by Spectre.Console
  • Manual Console cursor/key handling removed
  • Setup/secrets CLI flows (Program.Setup.cs, Program.Secrets.cs) behave identically

From dependency-consolidation audit, 2026-06-02.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttarget/2026Targets the 2026 calendar-version line (current). See ADR-0004.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions