feat(tui): wizard deep-polish — online search, preset & config-mode entry, summary#148
Open
fullstackjam wants to merge 4 commits into
Open
feat(tui): wizard deep-polish — online search, preset & config-mode entry, summary#148fullstackjam wants to merge 4 commits into
fullstackjam wants to merge 4 commits into
Conversation
Sequential npm installs now time each package and emit the duration as the StepOK detail, so the wizard log shows npm rows with the same timing brew rows get (npm batch installs have no per-package timing to report, so those rows stay clean rather than showing invented numbers).
… small terminals Closes the UX gaps found in the v0.63 comparison: - select screen regains online search (lost in the Redesign v5 rewrite): filtering fires a debounced openboot.dev lookup; hits are deduped against the catalog, badge-marked, and picks are homed in a synthetic 'online' sidebar category so they survive clearing the filter. PlanFromSelection gains an online parameter so their type info reaches categorization. - 'install -p <preset>' (and OPENBOOT_PRESET) on a TTY now enters the full wizard with the loadout preselected on the select screen, instead of the linear pre-flight + pipeline-screen stitch. Unknown presets keep the linear path and its clear error. - completion appends a summary to the log tail — counts plus the names of failed packages, which had scrolled away by the DONE screen. - elapsed times render as 3m24s instead of raw seconds everywhere. - terminals below 60x15 get a resize hint instead of a broken frame. - the hover background derives its escape from the active lipgloss colour profile, so it downsamples on 256/16-colour terminals and disappears cleanly without colour support.
…g mode) Remote-config installs on a TTY previously got a stitched experience: linear 3-way prompt + the old full-screen customizer, then a jump into the wizard's live install screen. They now enter the wizard proper via RunForConfig: boot probe → select (the config's own packages as sidebar categories, all preselected, installed tools marked) → review plan → live install. - installer.PlanForRemoteSelection builds the plan from the config filtered to the wizard selection, plus openboot.dev search picks; everything declarative (git, shell, dotfiles, prefs, dock, login items, post-install) flows through planFromRemoteConfig unchanged. - config mode never interposes the git screen — the git step already keeps an existing config and no-ops when absent, matching the old slug pipeline behavior; the review screen says so instead of rendering an empty identity. - post-install can't host its confirm inside the alt-screen: the review screen surfaces it as an informational row, the streamed apply strips it, and the CLI runs it after teardown from the returned plan (mirroring the pipeline path's R1 fix). - sync-source installs are unchanged (diff pre-flight + RunPipeline); --pick, --silent, --dry-run, --update and non-TTY keep their flows. - promptCustomizeAndApply + RunConfigCustomizer remain for the dry-run/update/non-TTY prompt paths and the sync customizer.
… gate The two online-search message cases pushed Update to complexity 22 (gate is 20). Moving the ctrl+c abort semantics into their own method reads better than a nolint and drops Update back under the gate.
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.
What does this PR do?
Closes the UX gaps found when comparing the Redesign v5 wizard against v0.63: restores online search on the select screen, routes
-p <preset>and slug/-u/--from/alias installs through the full wizard (config mode) instead of the linear-prompt + pipeline stitch, adds a completion summary with failed-package names, per-package npm timings, small-terminal handling, and colour-profile-aware hover.Why?
The v0.63 comparison showed the new wizard was better on the bare-install path but regressed in two places (online search gone, remote/preset installs got a stitched two-era UX) and had polish gaps (no failure recap on the DONE screen, raw truecolor hover escapes, broken frames under 60×15, npm rows without timing). Detail per change is in the three commit messages.
Testing
go vet ./...passesPlanForRemoteSelection, completion summary, small-terminal hint, hover degradation, CLI wizard routing$HOME, quitting before install):installbare,install -p developer,install --from <config.json>, online search against the live openboot.dev API, 50×10 terminalCross-repo checklist
openboot.dev? — possibly: install-page copy that describes the slug install flow (3-way prompt) is now the wizard on TTYNotes for reviewer
mainwhen the base branch is deleted.sync.Executeengine, and folding that into the config wizard changes semantics — left for its own PR.promptCustomizeAndApply+RunConfigCustomizerare still live for the dry-run/update/non-TTY paths and the sync customizer — not dead code.