Skip to content

feat(models): filter Hugging Face artifacts by filename or quantization - #4884

Merged
gabsprogrammer merged 1 commit into
Osmantic:public-betafrom
tang-vu:feat/beta-hub-artifact-filter-20260913
Sep 13, 2026
Merged

gabsprogrammer merged 1 commit into
Osmantic:public-betafrom
tang-vu:feat/beta-hub-artifact-filter-20260913

Conversation

@tang-vu

@tang-vu tang-vu commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

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_M or 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

  • Three new rendered dashboard tests failed before the implementation and pass after it: trimmed case-insensitive filename/quantization matching, split artifacts, counts/no matches/clear without refetching, exact filtered import payload, busy guard, and close/reopen reset.
  • 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.
  • Scoped pre-commit hooks and git diff --check run 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.

@gabsprogrammer
gabsprogrammer merged commit 9c95fd3 into Osmantic:public-beta Sep 13, 2026
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants