Skip to content

feat(setup): add TUI picker non-interactive guard - #504

Merged
primetimetank21 merged 2 commits into
developfrom
squad/495-tui-tool-picker-slice-1
Aug 5, 2026
Merged

feat(setup): add TUI picker non-interactive guard#504
primetimetank21 merged 2 commits into
developfrom
squad/495-tui-tool-picker-slice-1

Conversation

@primetimetank21

@primetimetank21 primetimetank21 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • add Bash and PowerShell interactive/non-interactive flags and headless guards
  • add hidden selection-file seam while keeping hidden seams out of help
  • forward new flags through root entry points
  • add ordered-selection drift gates to CI for Bash and PowerShell 5.1

Part of #495.

Corrective revision

  • Rewrote 4 Bash skip-path unit tests to capture exact exit status 1 instead of ! is_interactive; added \T_menu_skip_guards_127\ mutation guard proving exit-127 is distinct from exit-1
  • Added --interactive + --selection-file\ bypass in \is_interactive\ (Bash) and \Test-ShouldShowMenu\ (PowerShell) so CI can exercise the menu path without a TTY; precedence chain preserved (non-interactive/only/skip still suppress first)
  • Added \T_menu_selection_file_ci_bypass\ (Bash) and \T_menu_selection_file_ci_bypass_ps\ (PS) proving bypass under headless/CI conditions
  • Removed duplicate PS selection-file resolution block; file is validated, names joined, then routed through the existing canonical -Only\ path

Deliberate exclusions

  • no checkbox menu, key handling, rendering, or console reads
  • no \Resolve-FinalToolset\ extraction yet
  • interactive mode without a selection file still runs current defaults

Validation

  • \�ash tests/test_setup_flags.sh\ - 50 passed (+2)
  • \powershell -File tests\test_setup_flags_pwsh.ps1\ - 50 passed (+1)
  • ShellCheck - passed
  • PSScriptAnalyzer for production setup scripts - passed (advisory warnings in test file are pre-existing)
  • PowerShell 5.1 parse and ASCII checks - passed

Compatibility and drift notes

  • default tool order remains fixture-gated; selection-file input is filtered through the existing ordered engine
  • repository .gitattributes\ currently enforces CRLF for .ps1; this PR keeps that current policy. Bash files remain LF; PowerShell files remain ASCII-only with final newlines.

Gates for later slices

  • keep all Bash and PowerShell flag compatibility suites green
  • use the hidden selection-file seam for menu integration tests
  • do not expose hidden seams in help
  • preserve no-flag CI/headless behavior and ordered dispatch

primetimetank21 and others added 2 commits August 4, 2026 23:25
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…PS duplication (#495)

- Rewrite 4 bash skip-path unit tests to capture exact exit status 1
  instead of using '! is_interactive'; add T_menu_skip_guards_127
  mutation guard proving exit-127 != exit-1 (guards against missing-
  function false-pass)
- Add --interactive + --selection-file bypass in is_interactive and
  Test-ShouldShowMenu so CI can test the menu path without a TTY;
  precedence: non-interactive/only/skip still suppress it first
- Add T_menu_selection_file_ci_bypass (Bash) and
  T_menu_selection_file_ci_bypass_ps (PS) proving bypass under CI
- Remove duplicate PS selection-file resolution block; validate file,
  join names, route through existing -Only path (Split-ToolList +
  order-preservation + opt-in alphabetic append)
- Bash 50 passed (+2), PS 50 passed (+1)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@primetimetank21
primetimetank21 marked this pull request as ready for review August 5, 2026 07:18
@primetimetank21
primetimetank21 merged commit fddbef5 into develop Aug 5, 2026
10 checks passed
@primetimetank21
primetimetank21 deleted the squad/495-tui-tool-picker-slice-1 branch August 5, 2026 07:19
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