Staged TUI console wizard - #368
Merged
Merged
Conversation
Adds the cancellation mechanism contract, wide-CSV header entry requirements, P5-E warnings return shape for Slice 2, startup cancel-path cleanup in Slice 4, test-migration note for Slice 1 shims, and deliberately-deferred items (collector readiness command, START-HERE.md) to Open Follow-Up. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Staged TUI slices 1-3 from the 2026-07-06 spec: - New internal Private/ShareSurfer.Console.ps1: choice/text/boolean/ multi-select state machines, capability detection (with SHARESURFER_PLAIN_CONSOLE override), render-to-string screens with a single output sink, return-based cancellation (Action 'Cancelled'), zero-character key filtering, and compatibility shims for the #364 prompt names. - Ownership header interview is now a guided wizard: step counter, suggested header, numbered header list with /text filtering and free-typed entry, per-field explanations, and a return shape that carries interview warnings into the mapping profile (P5-E). - Source classification uses the console layer with return-based cancel; Join and mapping-profile entry points decide what cancel means and keep the existing operator-cancel messages. - Cancelled interviews write no partial mapping profile output. - Docs updated to describe the wizard screens and controls. Suite: 126/126 (6 new tests: key translation, multi-select, text prompt, wizard render/filter, classification cancel, profile warnings + cancel). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Staged TUI slice 4: - Read-ShareSurferAssistantText, Read-ShareSurferStartupChoice, and Read-ShareSurferStartupBoolean are thin wrappers over the console text/boolean machines with identical prompt consumption. - Forbidden-OU selection uses the multi-select engine (toggle by number/range, A/C, Enter keeps current selection, Q keeps existing values); OUs supplied via -ForbiddenOu that are not listed by the directory are preserved. - CSV picker screens render to strings through the console sink. - Startup interactive flow gains step breadcrumbs (1-4) and a selections summary before the assistant runs, marking missing optional inputs plainly. - A failed or cancelled guided ownership setup now blanks never-created output paths so saved startup configs stop naming files that do not exist (fifth-pass finding P5-F). - New lint-style test pins Read-Host usage to the console layer and the approved Join flow shells; new render test covers the startup selections screen. Suite: 128/128. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Staged TUI slice 5: - New exported Start-ShareSurfer command renders a start menu over the existing flows: preflight, ownership inputs, scan (guided startup or saved-config replay), validate export, package standalone dashboard, stop-gate review, and support bundle. - Each entry shows a readiness state derived from the files that already record progress (owner-mapping.csv, ownership-enrichment.csv, sharesurfer-startup.config.json, shares.csv, evidence_confidence.csv, collection_errors.csv, port_protocol_checks.csv). - Every selection previews the exact command before anything runs; runnable entries confirm with Y/N and call the real commands directly (no Invoke-Expression). Entries that need information the menu does not have (preflight targets, support bundle) stay preview-plus-guidance. - Menu state lives entirely in the existing JSON/CSV files; quitting loses nothing. - Entirely on the console layer: readiness and screen builders are pure functions with tests; no new Read-Host (lint test still pins usage to the console layer and approved shells). Suite: 130/130. Co-Authored-By: Claude Fable 5 <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.
Summary
Start-ShareSurfermenu by default while preserving-ConfigPathstartup replay.Validation
git diff --check=> passedpwsh -NoLogo -NoProfile -File tests/Invoke-ShareSurferTests.ps1=>131/131 tests passednpm --prefix interface/standalone-dashboard run test=>53/53 tests passednpm --prefix interface/standalone-dashboard run build=> passed