Skip to content

feat(ui): interactive model picker + Supported Models docs - #12

Merged
SegovChik merged 2 commits into
mainfrom
docs/readme-update
May 22, 2026
Merged

SegovChik merged 2 commits into
mainfrom
docs/readme-update

Conversation

@SegovChik

Copy link
Copy Markdown
Member

Summary

  • feat: Wire the interactive model picker into setup phase 02. M11
    Slice 3 shipped BuildModelMenuOptions(arch) + tests but never connected
    the helper to a real prompt; this commit adds the ui.Select after GPU
    detection so operators can override the auto-recommended model from a
    list filtered by GPU architecture (Kimi-K2.6 hidden on A100/H100/H200,
    visible on Blackwell). Picking a non-default re-runs recommendConfig
    so TP/PP/memory settings match.
  • ui helper: new ui.SelectWithDefault(message, options, defaultVal)
    — preselects an entry while keeping override + non-interactive contracts.
  • docs: new "Supported Models" section in README + "Picking a model"
    section in docs/nop-guide.md covering both the picker (interactive) and
    the --model flag (non-interactive) paths.

Behavior

  • Skipped when --yes (non-interactive) or --model flag was passed.
  • Skipped when arch-filtered option set has <2 entries.
  • Default = whatever recommendConfig auto-picks.

Test plan

  • go test ./... green
  • go vet ./... clean
  • golangci-lint run 0 new issues
  • Live-verified on v0.2.3-rc1 (this branch's HEAD) on mainnet-2 today

SegovChik added 2 commits May 22, 2026 13:57
- README: new "Supported Models" section between Setup Flags and Manual vs
  Automated. Lists all 4 governance-approved models (Qwen3-235B,
  Qwen3-32B-FP8, QwQ-32B, Kimi-K2.6) with min VRAM, GPU arch, and image
  variant. Adds `--model` row to the Setup Flags table.
- docs/nop-guide.md: new "Picking a model" top-level section + hardware ↔
  model decision matrix + cross-ref to the per-model governance opt-in
  flow for models the operator cannot run locally.

Picking a hardware-incompatible model (e.g. Kimi on A100) is a hard error
at setup time — flag rejects mismatches before any files are written.
M11 Slice 3 shipped BuildModelMenuOptions(arch) + tests but never
wired the helper into a prompt — interactive setup auto-recommended a
model and gave the operator no way to override without restarting with
--model. This connects the existing menu filter to a real UI.

Behavior:
- Phase 02 (GPU detection) calls recommendConfig as before to compute
  the auto-default.
- If --model was NOT passed and we are in interactive mode AND the
  arch-filtered option set has ≥2 entries, present ui.SelectWithDefault
  with the auto-recommended model preselected.
- Picking a non-default re-runs recommendConfig so TP/PP/memory and
  image-variant selection match the operator's choice. The arch gate
  in recommendConfig still fast-fails on incompatible picks (defense
  in depth — BuildModelMenuOptions already filtered them out).
- Non-interactive (--yes) and --model paths are unchanged.

New ui helper:
- ui.SelectWithDefault(message, options, defaultVal): like Select() but
  with a preselected entry. Override + non-interactive paths honor the
  default when it is in the option set.

Docs:
- README "Supported Models" section now describes the interactive
  picker behavior alongside the non-interactive --model override.
- docs/nop-guide.md "Picking a model" section splits the interactive
  vs --yes paths explicitly.

Tests:
- Existing phases + ui package tests stay green (the new code path is
  guarded by IsNonInteractive() which existing tests already exercise).
- Manual smoke validation pending: needs a fresh setup wizard run.
@SegovChik
SegovChik merged commit 60b4145 into main May 22, 2026
7 of 8 checks passed
@SegovChik
SegovChik deleted the docs/readme-update branch May 22, 2026 16:29
@codecov

codecov Bot commented May 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 46 lines in your changes missing coverage. Please review.
✅ Project coverage is 41.43%. Comparing base (eb8bbcb) to head (2c6c401).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
internal/ui/prompt.go 0.00% 30 Missing ⚠️
internal/phases/02_gpu_detection.go 0.00% 15 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #12      +/-   ##
==========================================
- Coverage   41.67%   41.43%   -0.25%     
==========================================
  Files          59       59              
  Lines        7868     7914      +46     
==========================================
  Hits         3279     3279              
- Misses       4410     4455      +45     
- Partials      179      180       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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