Repository navigation
feat(models): filter Hugging Face artifacts by filename or quantization - #4884
Merged
gabsprogrammer merged 1 commit intoSep 13, 2026
Conversation
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.
The Hugging Face artifact picker now filters its loaded snapshot by filename or quantization. A repository with many GGUF variants can be narrowed to
Q4_K_Mor a split-file name before importing the exact artifact ID.Why this matters
Models → Hugging Face → Choose file currently renders every qualified artifact with no way to narrow the list. Large quantization repositories require scanning many very similar rows. The new local filter shows the result count, distinguishes a filter with no matches from a repository with no qualified artifacts, and can be cleared immediately. Closing the picker or choosing another repository resets the query.
The invariant is that filtering changes visibility only: metadata qualification, split-file grouping, installed/runtime/busy guards, and the exact import payload remain owned by the existing flow. It makes no extra requests and does not persist preferences or mutate models. Reverting this PR restores the unfiltered picker without a migration.
Overlap check
Searched all open and closed upstream PRs for artifact/GGUF/Hugging Face filtering, searching, sorting and quantization selection, and changed files including
HuggingFaceModelBrowser.jsx. #1968 introduced the picker and #2119 its context selection. #2755 concerns close-button labeling; #3050 and #4339 stale requests; #4356 native modal behavior; #4622 malformed detail responses. None adds filtering of the qualified artifact snapshot. This PR retains the existing modal and request lifecycle.Regression and validation
npx vitest run src/pages/Models.test.jsx src/components/model-library/HuggingFaceArtifactFilter.test.jsx— focused model-page and picker suite.npm run lint— zero errors (559 existing warnings);npm run build— passed.git diff --checkrun before commit.Validation uses jsdom and mocked existing API contracts, not a live Hugging Face download or a native-browser visual check. The shared baseline gate has known WSL/root fixture failures recorded for this batch; these are not represented as passing runtime evidence.