Skip to content

Comments

feat(tui): add full terminal onboarding flow with modal provider setup#201

Open
penso wants to merge 3 commits intomainfrom
tui-interface
Open

feat(tui): add full terminal onboarding flow with modal provider setup#201
penso wants to merge 3 commits intomainfrom
tui-interface

Conversation

@penso
Copy link
Collaborator

@penso penso commented Feb 21, 2026

Summary

  • add a dedicated crates/tui crate and wire it into the CLI/workspace
  • implement blocking onboarding in TUI with modal UX, step navigation, and startup onboarding gate
  • add provider configuration flow with inline field editing and model selection support
  • make onboarding Esc behavior context-aware: close modal first, quit from top-level onboarding screen
  • add/expand TUI onboarding tests to cover rendering, key behavior, and provider/model flows

Validation

Completed

  • just format
  • cargo +nightly-2025-11-30 clippy -p moltis-tui --all-features --all-targets -- -D warnings
  • cargo test -p moltis-tui

Remaining

  • Manual end-to-end QA in terminal with real provider credentials

Manual QA

  1. MOLTIS_CONFIG_DIR=.moltis/config MOLTIS_DATA_DIR=.moltis/ cargo run --bin moltis -- tui
  2. Verify onboarding appears as modal overlay and blocks chat interaction.
  3. Verify OpenAI flow:
    • configured provider opens model selection directly
    • unconfigured provider asks for API key, then opens model selection
    • Esc closes provider/modal states, and from top-level onboarding exits app.

@codspeed-hq
Copy link
Contributor

codspeed-hq bot commented Feb 21, 2026

Merging this PR will not alter performance

✅ 39 untouched benchmarks
⏩ 5 skipped benchmarks1


Comparing tui-interface (f4cb461) with main (3c24dc3)

Open in CodSpeed

Footnotes

  1. 5 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Add a dedicated wide-mode layout for the onboarding Summary step,
matching the polished design of LLM/Voice/Channel/Identity screens.
The summary now auto-refreshes when navigating into it.

- Add draw_summary_screen with two-column layout (Setup Review + Get
  Started) using render_wide_header/render_wide_footer
- Add compact fallback via render_step_compact for small terminals
- Auto-refresh summary data when stepping into the Summary step
- Update test assertions for new layout content
Implement /clear, /compact, /context, /sh, and /help slash commands
with a prefix-matching autocomplete menu that appears above the input.
Shell mode (/sh) rewrites plain messages as shell commands. The /context
command fetches and displays session, project, tools, and token details.
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