fix: name a local GGUF with --model instead of trying to resolve it - #1269
Conversation
`serve --gguf <path> --model <alias>` treated the alias as a second model and failed eager startup resolution against Hugging Face and the catalog. Bind a single plain alias to a single local GGUF instead. Co-authored-by: Michael Neale <14976+michaelneale@users.noreply.github.com> Signed-off-by: Michael Neale <14976+michaelneale@users.noreply.github.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe runtime now accepts ChangesLocal GGUF alias handling
Estimated code review effort: 3 (Moderate) | ~20 minutes Mergeability Score: ⚪ Minimal · up to The change gives an explicitly named local GGUF a stable served model name while preserving existing multi-model resolution behavior; no actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant CLI
participant StartupModelBuilder
participant GGUFResolver
CLI->>StartupModelBuilder: provide --gguf path and --model alias
StartupModelBuilder->>GGUFResolver: resolve local GGUF path
GGUFResolver-->>StartupModelBuilder: return local model identity
StartupModelBuilder-->>CLI: expose one startup model with declared alias
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
You can now give a local GGUF a friendly name:
deepseek-v4-flashbecomes the served model name — in/v1/models, in the console, and in"model": "deepseek-v4-flash"request bodies — rather than being looked up on Hugging Face and failing startup:Fixes #1254. Reported by @hola-there, who also identified the correct behaviour and the
--model-less workaround.Scope
The alias binding only applies to the unambiguous naming form: exactly one
--ggufand exactly one--modelwhose value is a plain name — no/,\,:, or@, and not an existing path. Anything that could resolve on its own (unsloth/Qwen3-8B-GGUF:Q4_K_M, a second local path, a URL) still starts as its own model, so multi-model serve is unchanged.Validation
cargo test -p mesh-llm-host-runtime --lib— 2454 passed, 0 failedcargo clippy -p mesh-llm-host-runtime --all-targets -- -D warnings— cleancargo clippy -p mesh-llm --all-targets -- -D warnings— cleancargo fmt --all --check— cleanThree new tests in
runtime/tests/startup_models.rscover the alias binding, the HF-ref case that must stay two models, and end-to-end resolution proving the alias no longer reaches the catalog.Summary by CodeRabbit
New Features
Bug Fixes