feat: fresh install starts with an empty model pool

- config.rs: validate() no longer errors on zero models — an empty pool is
  allowed (warns instead), so the admin console comes up on a fresh install and
  the user adds models in /admin -> Models (or points [cmf] at a local .cmf).
- gateway.example.toml: ships an EMPTY pool (no seed cmf-local/local-embed, empty
  routing), so `cp example -> gateway.toml && run` shows an empty list — what a
  new user expects.
This commit is contained in:
infosave2007
2026-07-08 17:39:43 +03:00
parent f05d26bfbb
commit d48349a144
2 changed files with 23 additions and 29 deletions
+6 -1
View File
@@ -599,7 +599,12 @@ impl Config {
// is what lets the gateway run on local models alone (no cloud, no router).
let has_local = self.cmf.manage_server && !self.cmf.local_model.trim().is_empty();
if self.models.is_empty() && !has_local {
anyhow::bail!("config: at least one [[models]] entry (or a managed local CMF model) is required");
// Fresh install: start with an EMPTY model pool so the admin console
// comes up — the user adds models in /admin → Models (or points [cmf]
// at a local .cmf). Routing simply has nothing to select until then.
tracing::warn!(
"no models configured — starting with an empty pool; add one in /admin → Models"
);
}
// uniqueness of model ids
let mut seen = std::collections::HashSet::new();