feat(models): in-app model library with Discover browser and Staff Picks#237
Merged
Conversation
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…odel footer Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…nd Discover Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…notations Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…RAM-fit Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…d, and Load more Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…eader, footer Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…AM-fit label map Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…eal-in-Finder Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
… premium switch dialog Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…and search caching Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…, drop Active pill Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
… box Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…policy Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…dels Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…Settings webview Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…atus Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…-all Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…nd active-model preserved on install Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
… picker stay in sync Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…models Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
1543b70 to
9030528
Compare
… dropped Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…rever Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
… length Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Thuki ships and supervises its own llama.cpp engine, so model management belongs inside the app, not in a terminal. This PR builds out the Settings → Models experience end to end: find, download, and switch models without leaving Thuki, alongside the engine-residency and reasoning controls that make local inference feel responsive.
What's new
Models settings, redesigned. A left-sidebar layout with three segmented sections:
Discover.
Context window everywhere. Each model's trained context length is shown on Staff Picks, Browse-all repo rows, and Library, healed from the curated registry or sanitized GGUF metadata.
Engine residency (keep-warm). The built-in engine warm-loads on summon and on the first keystroke and stays resident according to a unified keep-warm inactivity setting; switching away from Ollama evicts its model from VRAM. At most one model is ever resident.
Reasoning control. Thinking is opt-in per request via
/think. Models that reason unconditionally are marked with an "Always thinks" pill, derived from a GGUF chat-template classifier; whatever reasoning a model emits is shown in the thinking block, never hidden.Download experience. Progress renders as an inline hairline with a single continuous bar across a model's weights and vision companion, clear per-kind failure states, and a path back to the picker. Engine load failures (including unsupported model architectures) are surfaced from
llama-serverrather than failing silently.How it works
tmp/<sha>.partialthen atomic rename toblobs/<sha>), resume via HTTP Range, and verify sha256 on completion as an integrity check; provenance comes from the pinned repo revisions.config/defaults.rs; new user-facing tunables and baked-in constants are documented indocs/configurations.md.Testing
cargo testwithllvm-covat 100% line coverage, covering GGUF parse bounds, download resume and verify, HF search parsing and pagination, manifest CRUD, and engine residency transitions.validate-build(ESLint,cargo clippy -D warnings, Prettier,tsc --noEmit, release build) passes clean.