Problem Statement
Users can finish the full wizard and only discover on the first agent turn that Ollama is not running, the base URL is wrong, or defaults.litellm_model (e.g. ollama/gemma4:e2b) does not match any tag from ollama list.
Settings (#28) expose the model in YAML but nothing validates it before play. Failures show up as generic [Error: ...] lines in the conversation, which feels broken and wastes setup time.
Proposed Solution
- After loading settings (and before or immediately after agent selection), run an optional preflight:
- Check
ollama.base_url / OLLAMA_API_BASE is reachable.
- Verify the configured LiteLLM model tag exists (e.g. Ollama
/api/tags or a small helper).
- Print a Rich panel with actionable fixes: start
ollama serve, ollama pull <tag>, edit rooms.settings.yaml, or run python cli.py config init.
- Add
--skip-preflight for automation/CI; mock HTTP in tests (no real Ollama in CI).
- Document in
docs/EXAMPLES.md or ARCHITECTURE.
Alternatives Considered
Priority
High 🔴
Additional Context
Not a duplicate of #30 (auto-select), #29 (presets in wizard), #32 (config path naming), or #8 (retry loop). Pairs well with a future CLI error UX issue and with #29 once presets land.
Problem Statement
Users can finish the full wizard and only discover on the first agent turn that Ollama is not running, the base URL is wrong, or
defaults.litellm_model(e.g.ollama/gemma4:e2b) does not match any tag fromollama list.Settings (#28) expose the model in YAML but nothing validates it before play. Failures show up as generic
[Error: ...]lines in the conversation, which feels broken and wastes setup time.Proposed Solution
ollama.base_url/OLLAMA_API_BASEis reachable./api/tagsor a small helper).ollama serve,ollama pull <tag>, editrooms.settings.yaml, or runpython cli.py config init.--skip-preflightfor automation/CI; mock HTTP in tests (no real Ollama in CI).docs/EXAMPLES.mdor ARCHITECTURE.Alternatives Considered
auto_select_first— rejected; auto-select picks a tag; preflight validates the user's configured choice.Priority
High 🔴
Additional Context
Not a duplicate of #30 (auto-select), #29 (presets in wizard), #32 (config path naming), or #8 (retry loop). Pairs well with a future CLI error UX issue and with #29 once presets land.