tui: dependency installer / first-run wizard #143

Closed
opened 2026-04-14 20:13:52 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As a first-time user starting loom-tui, I want a guided check that the required dependencies (Forge backend reachable, plugins discovered, picker initialised) are present, with a friendly install hint when they're not, so that I'm not staring at empty screens with no idea what to do.

Background

GTK has a multi-step onboarding flow at crates/loom-gtk/src/components/onboarding/ (welcome, backend, plugins, presets, downloads) plus crates/loom-gtk/src/dep_install.rs. The TUI just bootstraps and silently degrades if anything is missing. Users hit walls without explanation.

Acceptance criteria

First-run detection

  • On startup, check whether ~/.config/loom/settings.toml exists; absence triggers the wizard
  • Wizard is OverlayKind::Onboarding(OnboardingStep), blocks all other input until completed or dismissed (Esc skips with a notification "you can re-run via Settings")

Steps

  1. Welcome — short banner, Enter to begin
  2. Backend — text input for generation_backend URL (default http://127.0.0.1:7860), Enter runs bridge.health_check() and surfaces the result
  3. Plugins — list discovered plugins; the user toggles which to enable; Enter saves
  4. Done — summary of what was set, Enter saves settings and dismisses

Mid-app health hint

  • When the active backend health check fails, show a persistent banner above the status bar with a "(s)ettings" hint
  • Single-key hint dismissible with b

Re-run

  • Settings screen gets a "Re-run onboarding" entry that pushes the wizard

Tests

  • Unit: missing settings.toml triggers the wizard
  • Integration: completing all steps writes a valid settings file

Out of scope

  • Auto-installing the Forge backend (pointer to install instructions only)
  • Plugin downloads (handled by the model browser)

References

  • crates/loom-gtk/src/components/onboarding/ (GTK reference)
  • crates/loom-gtk/src/dep_install.rs
  • crates/loom-tui/src/main.rs (bootstrap_core)
## User story As a first-time user starting loom-tui, I want a guided check that the required dependencies (Forge backend reachable, plugins discovered, picker initialised) are present, with a friendly install hint when they're not, so that I'm not staring at empty screens with no idea what to do. ## Background GTK has a multi-step onboarding flow at `crates/loom-gtk/src/components/onboarding/` (welcome, backend, plugins, presets, downloads) plus `crates/loom-gtk/src/dep_install.rs`. The TUI just bootstraps and silently degrades if anything is missing. Users hit walls without explanation. ## Acceptance criteria ### First-run detection - [ ] On startup, check whether `~/.config/loom/settings.toml` exists; absence triggers the wizard - [ ] Wizard is `OverlayKind::Onboarding(OnboardingStep)`, blocks all other input until completed or dismissed (`Esc` skips with a notification "you can re-run via Settings") ### Steps 1. [ ] **Welcome** — short banner, `Enter` to begin 2. [ ] **Backend** — text input for `generation_backend` URL (default `http://127.0.0.1:7860`), `Enter` runs `bridge.health_check()` and surfaces the result 3. [ ] **Plugins** — list discovered plugins; the user toggles which to enable; `Enter` saves 4. [ ] **Done** — summary of what was set, `Enter` saves settings and dismisses ### Mid-app health hint - [ ] When the active backend health check fails, show a persistent banner above the status bar with a "(s)ettings" hint - [ ] Single-key hint dismissible with `b` ### Re-run - [ ] Settings screen gets a "Re-run onboarding" entry that pushes the wizard ### Tests - [ ] Unit: missing settings.toml triggers the wizard - [ ] Integration: completing all steps writes a valid settings file ## Out of scope - Auto-installing the Forge backend (pointer to install instructions only) - Plugin downloads (handled by the model browser) ## References - `crates/loom-gtk/src/components/onboarding/` (GTK reference) - `crates/loom-gtk/src/dep_install.rs` - `crates/loom-tui/src/main.rs` (bootstrap_core)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/loom#143
No description provided.