1102 Commits

Author SHA1 Message Date
saime428 53951c3f89 test(hardware): add Windows GPU parser fixtures (#912) 2026-08-20 14:42:26 +01:00
Aditya Pagaria 70fea7d2eb data: community benchmark (nvidia-geforce-rtx-3090) (#908) 2026-08-19 14:42:35 +01:00
Bailly fabb63bb11 fix(ollama): stop a size-less family tag claiming a much larger model (#899)
#863 made size the discriminator when the *installed tag* carried one, so
qwen3:8b no longer marks a whole family installed. The mirror case is still
open: when the *catalog name* has no size, the candidate is family-level and
matches any tag in that family.

deepseek-ai/DeepSeek-R1 maps to the bare tag `deepseek-r1`, which is also the
family prefix of the Qwen distill. An install of deepseek-r1:14b therefore
marks the 684.5B original installed, a 397 GB model reported as present on a
24 GB card.

Family matching is still needed (phi-4 -> phi4:14b), so the fix keeps it and
adds a size check: reject when the catalog parameter count and the tag size
differ by more than 2x. The threshold is deliberately loose because tags
round, and an unknown size on either side keeps the previous permissive
behaviour rather than dropping a real install.

Uses a new known_params_b() that returns None when the size is unrecorded,
since params_b() falls back to 7.0 and a guessed size must never be grounds
for rejecting a match.
2026-08-18 18:32:42 +01:00
Akciali 5f0f242928 bench: add NVIDIA GB10 (DGX Spark class) with 122 models (#872)
* bench(nvidia-gb10): add 1786611367-03c54b31-1.json

* bench(nvidia-gb10): add 1786611367-06d57be3-2.json

* fix(nvidia-gb10): restore .gguf extension on Step-3.7-Flash

The sharded quant lives in a subfolder whose key carries no extension, so
the model tag could not normalize to its catalog identifier and the
measurement would have been dropped during lookup.
2026-08-18 11:34:33 +01:00
Bailly e1379a96df fix(fit): stop flagging pre-quantized models that fit as insufficient (#898)
best_quant_for_runtime_budget returned None for vLLM because a
pre-quantized model cannot be re-quantized, but callers read None as
"does not fit". Every AWQ/GPTQ/AutoRound model on a GPU therefore fell
into the failure branch and picked up an "Insufficient VRAM and system
RAM" note, while the same branch returned memory figures that scored
the model Perfect.

The vLLM branch now reports the model's own fixed footprint when it fits
the budget and still returns None when it does not. Fixed in the
function rather than the call site, since the same ambiguity is
reachable from the CPU path.

On a 24 GB card this drops contradictory notes from 319 to 0 across the
catalog. Seven models change fit level, all vLLM, all Too Tight to
Marginal.
2026-08-18 10:53:26 +01:00
Andrey Khranovsky a889dc1b92 data: community benchmark (apple-m4-pro) (#903) 2026-08-18 10:34:08 +01:00
luo jiyin bf2647999c test(hardware): add mixed GPU fixtures (#882)
* test(hardware): add mixed GPU fixtures

* test(hardware): exercise mixed GPU deduplication
2026-08-18 10:32:52 +01:00
Alex Jones 2042c3a9da fix(providers): match every K-quant and I-quant GGUF variant (#873)
`strip_gguf_quant_suffix` enumerated published quant variants one by one,
so anything outside that list never reduced to the catalog id and the file
read as neither installed nor served. The gaps were whole publishers:
bartowski `_L` files (`-q3_k_l`, `-q4_k_l`, `-q5_k_l`) and Unsloth Dynamic
`_XL`/`IQ4_NL` files.

Match on the quant family stem instead — `-qN_k` for K-quants, `-iqN_` for
I-quants — so `_S`/`_M`/`_L`/`_XL` and `_NL`/`_XS`/`_XXS` all reduce the
same way and the next published variant needs no code change. `-q6_k` and
`-q2_k` already worked this way; the other families now follow.

Three entries in the NVIDIA GB10 community submission (#872) were being
silently dropped during lookup on this bug:

  Step-3.7-Flash-UD-IQ4_NL.gguf            21.41 tok/s
  Qwen-AgentWorld-35B-A3B-UD-Q4_K_XL.gguf  64.17 tok/s
  LFM2.5-8B-A1B-UD-Q4_K_XL.gguf           151.04 tok/s

The same function backs local install detection, so users with an Unsloth
UD-XL or bartowski _L GGUF on disk were shown the model as not installed.
2026-08-18 10:32:23 +01:00
maxsagt 71df9efa1c data: community benchmark (apple-m1-max) (#896)
Add an Ollama throughput result for qwen3.6:27b on Apple M1 Max (32 GB unified memory).

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: maxsagt <maxsagt@users.noreply.github.com>
2026-08-18 10:31:56 +01:00
Alex Jones 0a1d5e3035 chore(deps): group dependabot minor and patch updates (#894)
Semver-compatible bumps now collapse into a single weekly PR per
ecosystem (cargo, github-actions) instead of one PR per dependency.

Major bumps are deliberately left ungrouped so they still arrive as
individual PRs and get individual review.

Existing cooldown settings are unchanged, so grouping composes with the
current 'let releases settle' policy.
2026-08-18 10:18:22 +01:00
dependabot[bot] acc7e40c3a chore(deps): bump actions/setup-python from 6 to 7 (#824)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:35:50 +01:00
dependabot[bot] 16dcef5099 chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 (#799)
Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v7...v7.0.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:34:06 +01:00
dependabot[bot] 6eba90a791 chore(deps): bump softprops/action-gh-release from 3.0.1 to 3.0.2 (#843)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/718ea10b132b3b2eba29c1007bb80653f286566b...3d0d9888cb7fd7b750713d6e236d1fcb99157228)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:32:49 +01:00
dependabot[bot] fe1fa910df chore(deps): bump docker/login-action from 4.5.1 to 4.6.0 (#848)
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.5.1 to 4.6.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/abd2ef45e78c5afb21d64d4ca52ee8550d9572c7...dbcb813823bdd20940b903addbd779551569679f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:32:42 +01:00
dependabot[bot] 4aea983a93 chore(deps): bump dorny/paths-filter from 4.0.2 to 4.0.3 (#890)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/7b450fff21473bca461d4b92ce414b9d0420d706...ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d)

---
updated-dependencies:
- dependency-name: dorny/paths-filter
  dependency-version: 4.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:32:35 +01:00
dependabot[bot] 72cba250e8 chore(deps): bump serde from 1.0.228 to 1.0.229 (#844)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.228 to 1.0.229.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.228...v1.0.229)

---
updated-dependencies:
- dependency-name: serde
  dependency-version: 1.0.229
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:32:19 +01:00
dependabot[bot] 7bba7ef459 chore(deps): bump tokio from 1.52.3 to 1.53.1 (#847)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.52.3 to 1.53.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.52.3...tokio-1.53.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-version: 1.53.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:32:12 +01:00
dependabot[bot] 18420a2d67 chore(deps): bump regex from 1.12.4 to 1.13.1 (#850)
Bumps [regex](https://github.com/rust-lang/regex) from 1.12.4 to 1.13.1.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.12.4...1.13.1)

---
updated-dependencies:
- dependency-name: regex
  dependency-version: 1.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:32:05 +01:00
dependabot[bot] df124eba8d chore(deps): bump http from 1.4.2 to 1.5.0 (#888)
Bumps [http](https://github.com/hyperium/http) from 1.4.2 to 1.5.0.
- [Release notes](https://github.com/hyperium/http/releases)
- [Changelog](https://github.com/hyperium/http/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/http/compare/v1.4.2...v1.5.0)

---
updated-dependencies:
- dependency-name: http
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:31:58 +01:00
Alex Jones b0875c237b chore(main): release 1.1.10 (#864)
* chore(main): release 1.1.10

* chore: update Cargo.lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v1.1.10
2026-08-17 08:11:53 +01:00
Akciali 9c6b8eb956 bench: Qwen3.8-27B on amd-radeon-rx-7900-xt (#884) 2026-08-17 08:10:49 +01:00
luo jiyin b9d5f578f6 feat(mcp): add RamaLama runtime discovery (#875)
* feat(mcp): add RamaLama runtime discovery

* fix(mcp): preserve local RamaLama models

* test(mcp): cover local RamaLama discovery

* fix(providers): drain RamaLama store output
2026-08-17 08:08:05 +01:00
dependabot[bot] aca40d1e95 chore(deps): bump serde_json from 1.0.150 to 1.0.151 (#889)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.150 to 1.0.151.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.150...v1.0.151)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-version: 1.0.151
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 08:07:00 +01:00
github-actions[bot] d961ece6d5 chore(models): Weekly model data refresh (#892)
Co-authored-by: AlexsJones <1235925+AlexsJones@users.noreply.github.com>
2026-08-17 08:06:46 +01:00
Alex Jones 6e024b2e51 feat(models): add the Qwen3.8 family and fix Qwen generation parsing (#893)
Pin all four official Qwen3.8 repos in the curated catalog:

  Qwen/Qwen3.8-27B             27.78B dense, 64 layers (16 full / 48 linear)
  Qwen/Qwen3.8-27B-FP8         same weights, FP8 checkpoint
  Qwen/Qwen3.8-2.4T-A95B       2.446T total / 95B active, 512 experts (10 active),
                               92 layers (23 full / 69 linear)
  Qwen/Qwen3.8-2.4T-A95B-FP8   same, FP8 checkpoint

The automated weekly refresh in #892 picked up three of these via trending
discovery, but none were in TARGET_MODELS, so they could drop out of any
later scrape; the non-FP8 2.4T-A95B was missing entirely. Catalog entries
were merged in surgically (four entries) rather than by a full re-scrape so
this diff stays reviewable alongside #892.

infer_attention_layout_from_name now matches qwen3.8- and handles the new
-a95b 92-layer shape, and OLLAMA_MAPPINGS gains qwen3.8-27b -> qwen3.8:27b
(Ollama publishes only the 27B; the 2.4T has no library entry).

Also fixes a generation-scoring bug this surfaced. parse_generation
consulted the architecture string before the model name, but Qwen3.6 and
Qwen3.8 both ship as model_type "qwen3_5" -- so every Qwen3.6 model in the
catalog scored as generation 3.5, and the name-based 3.6 branch added in
5397a8a was dead code for anything with an architecture set. The existing
test passed None for architecture, so it never caught this.

qwen_minor_generation_from_name is now consulted first inside the Qwen arch
branch. It matches only explicit minor versions and returns None for a bare
"Qwen3", so qwen3_next still resolves from the architecture string instead
of regressing to 3.0. scripts/validate_generation_scoring.py, which
documents itself as a mirror of the Rust logic, is updated to match.

Quality bonus is (generation - 1) * 3 clamped to 9, so Qwen3.6 models gain
+0.3 and Qwen3.8 lands at +8.4.
2026-08-17 07:57:27 +01:00
dependabot[bot] a9ac7ed91c chore(deps): bump async-nats from 0.49.1 to 0.50.0 (#849)
Bumps [async-nats](https://github.com/nats-io/nats.rs) from 0.49.1 to 0.50.0.
- [Release notes](https://github.com/nats-io/nats.rs/releases)
- [Commits](https://github.com/nats-io/nats.rs/compare/async-nats/v0.49.1...async-nats/v0.50.0)

---
updated-dependencies:
- dependency-name: async-nats
  dependency-version: 0.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-14 08:34:23 +01:00
kopop2000 a599e5e177 data: community benchmark (nvidia-geforce-gtx-1070) (#871) 2026-08-13 11:31:38 +01:00
Akciali b79f2dfd2e fix(providers): resolve MLX community tags to catalog ids (#854) (#860) 2026-08-13 08:01:19 +01:00
Akciali c25754ac02 bench: Muse-Glimmer-30B on amd-radeon-rx-7900-xt and apple-m4-pro (#870)
* bench: Muse-Glimmer-30B on amd-radeon-rx-7900-xt and apple-m4-pro

Two llama.cpp results for Meta's Muse-Glimmer-30B (released 2026-08-10), one per
existing hardware slug, measured with llmfit v1.1.9 and llama.cpp built at 84e908c
(Vulkan) and release b10375 (Metal).

Both runs are fully GPU-resident (53/53 layers offloaded) at ctx 4096, 3 runs each,
after a 5-minute machine preheat.

* Update llmfit-core/data/community/amd-radeon-rx-7900-xt/1786562074-7e61b3fb.json

fix(bench): align 7900 XT hardwareName with the existing slug entries

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-08-13 08:00:30 +01:00
thelooter 0cbc4f5a21 bench: community results for radeon-840m-860m-graphics (#855)
* data: community benchmark (radeon-840m-860m-graphics)

* data: community benchmark (radeon-840m-860m-graphics)
2026-08-12 11:13:18 +01:00
Andrew Collier e62bd20625 bench: community results for intel-alder-lake-p-gt2-iris-xe-graphics-integrated (#868)
* data: community benchmark (intel-alder-lake-p-gt2-iris-xe-graphics-integrated)

* data: community benchmark (intel-alder-lake-p-gt2-iris-xe-graphics-integrated)

* data: community benchmark (intel-alder-lake-p-gt2-iris-xe-graphics-integrated)

* data: community benchmark (intel-alder-lake-p-gt2-iris-xe-graphics-integrated)
2026-08-12 11:13:01 +01:00
luo jiyin 4b44daf23f docs: update AGENTS.md architecture and testing guidance (#857)
* docs(AGENTS): update architecture and testing guidance

* docs(AGENTS): document all source modules

* docs(AGENTS): update runtime and dependency guidance
2026-08-12 10:15:31 +01:00
Octopus 4801d4a75b fix: expose MiniMax M3 vision capability (#793)
* fix: expose MiniMax M3 vision capability

* fix: preserve MiniMax M3 model details

* fix: correct MiniMax M3 catalog descriptions

---------

Co-authored-by: octo-patch <266937838+octo-patch@users.noreply.github.com>
2026-08-11 19:23:35 +01:00
Alex Jones c9a567883e fix(ollama): stop one sized install marking a whole model family installed (#863)
* fix(ollama): stop one sized install marking a whole model family installed

`build_installed_set` inserted the bare family stem alongside every tag, and
the heuristic half of `hf_name_to_ollama_candidates` offered that same bare
stem as a candidate for any model with no `OLLAMA_MAPPINGS` entry. The two met
in the middle: a single `qwen3:8b` marked 238 of the 9,250 catalog entries
installed — `Qwen3-235B-A22B` and hundreds of community fine-tunes among them.
Because "installed" gates the download action, those models became
undownloadable in the TUI (discussion #861).

Size is now the discriminator:

- A sized install contributes its tag and nothing else. `qwen3:8b` says exactly
  which weights are on disk.
- Only an untagged / `:latest` install contributes a family stem, plus the
  sized alias implied by the parameter count Ollama already reports in
  `/api/tags` (`qwen3:latest` → "8.2B" → `qwen3:8b`), so it still resolves to
  one model rather than a family.
- A candidate derived from a sized HF name no longer includes the bare family.
- Size-less candidates — `OLLAMA_MAPPINGS` tags like `phi-4` → `phi4`, or HF
  names with no size to parse — now match any tag of that family, which is what
  keeps `phi4:14b` detecting `microsoft/phi-4`.

The bare-family candidate came in with #492 (fixing #481, "installed flag
always false for models without explicit mapping"); this keeps that fix and
drops its blast radius. Same over-match seen from another angle in #619.

Regression cover: every one of the 134 `OLLAMA_MAPPINGS` entries is still
detected from its own tag, and the reported scenario asserts its siblings stay
uninstalled.

* fix(ollama): also alias the verbatim parameter size for `:latest` installs

`qwen2.5:14b` reports "14.8B", so a `:latest` install has to be aliased to the
truncated marketing size. But some families are tagged with the decimal itself
— `solar:10.7b`, `qwen3:1.7b`, `lfm2:1.2b`, 20 entries in `OLLAMA_MAPPINGS` —
and for those the truncated alias alone reports the model as absent.

Emit both forms. They stay inside the family that is genuinely installed, so
the extra alias cannot resurrect the cross-family match this branch removes;
one of the two is simply dead weight per install.

* fix(python): read the package readme through the metadata hook

`readme = "../README.md"` is rejected by current hatchling ("Readme path must
be within the project directory"), which fails `uv sync` and takes the Test
Suite job down on all three platforms — including on main, independently of
this branch.

The README belongs at the repository root and should not be duplicated or
symlinked into `llmfit-python` (a symlink would checkout as a text stub on
Windows runners). Hatchling accepts readme *contents* without a path
constraint, so the existing custom metadata hook now supplies them: `readme`
joins `version` and `license-expression` as dynamic metadata.

Verified the built metadata is unchanged in substance — `Description-Content-Type:
text/markdown` with the full README body.
2026-08-11 13:18:38 +01:00
luo jiyin e2abaf0ca0 chore(cargo,quality): replace deprecated serde_yml (#859) 2026-08-11 08:46:47 +01:00
dependabot[bot] e829ce9bf0 chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 (#846)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.4.0 to 7.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6.4.0...v7.0.0)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-10 20:47:48 +01:00
dependabot[bot] 9eebd1dc14 chore(deps): bump rmcp from 1.8.0 to 2.2.0 (#845)
Bumps [rmcp](https://github.com/modelcontextprotocol/rust-sdk) from 1.8.0 to 2.2.0.
- [Release notes](https://github.com/modelcontextprotocol/rust-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/rust-sdk/blob/main/release-plz.toml)
- [Commits](https://github.com/modelcontextprotocol/rust-sdk/compare/rmcp-v1.8.0...rmcp-v2.2.0)

---
updated-dependencies:
- dependency-name: rmcp
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-10 20:28:10 +01:00
github-actions[bot] 29d76017e2 chore(models): Weekly model data refresh (#852)
Co-authored-by: AlexsJones <1235925+AlexsJones@users.noreply.github.com>
2026-08-10 20:21:55 +01:00
github-actions[bot] 67f40d468d chore(data): Weekly benchmark cache refresh (#851)
Co-authored-by: AlexsJones <1235925+AlexsJones@users.noreply.github.com>
2026-08-10 20:21:40 +01:00
Akciali 92bd6ca11b bench(apple-m4-pro): add 32 MLX results (llmfit v1.1.8, mlx 0.32.0) (#853) 2026-08-10 20:16:25 +01:00
Alex Jones a02e13f101 chore(main): release 1.1.9 (#832)
* chore(main): release 1.1.9

* chore: update Cargo.lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v1.1.9
2026-08-09 18:07:44 +01:00
dependabot[bot] 3c6d58caee chore(deps): bump which from 8.0.4 to 8.0.5 (#798)
Bumps [which](https://github.com/harryfei/which-rs) from 8.0.4 to 8.0.5.
- [Release notes](https://github.com/harryfei/which-rs/releases)
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/harryfei/which-rs/compare/8.0.4...8.0.5)

---
updated-dependencies:
- dependency-name: which
  dependency-version: 8.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-09 15:19:08 +01:00
Jiaxiu Liu f2f0313280 bench: community results for nvidia-rtx-5880-ada-generation (#796)
* data: community benchmark (nvidia-rtx-5880-ada-generation)

* data: community benchmark (nvidia-rtx-5880-ada-generation)

* data: community benchmark (nvidia-rtx-5880-ada-generation)

* data: community benchmark (nvidia-rtx-5880-ada-generation)
2026-08-09 15:18:48 +01:00
dependabot[bot] c77e24eb4e chore(deps): bump sysinfo from 0.39.3 to 0.39.6 (#764)
---
updated-dependencies:
- dependency-name: sysinfo
  dependency-version: 0.39.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-09 15:18:02 +01:00
DaggyBaggy ab88bde87e bench: community results for nvidia-geforce-rtx-5070 (#794)
* data: community benchmark (nvidia-geforce-rtx-5070)

* data: community benchmark (nvidia-geforce-rtx-5070)

* data: community benchmark (nvidia-geforce-rtx-5070)

* data: community benchmark (nvidia-geforce-rtx-5070)
2026-08-09 15:17:45 +01:00
Akciali 777f2c48a7 fix(share): strip absolute GGUF paths from the pending store model field (#820)
* fix(share): strip absolute GGUF paths from the pending store model field

llama-server reports the value of its -m/--model argument, usually an
absolute filesystem path, as the model id in /v1/models. That path was
stored verbatim in the model field of every pending submission payload,
forcing contributors to hand-edit each stored file before opening a
community-benchmarks PR, and quietly publishing machine-specific paths
(often a username) when they did not.

Keep only the GGUF file name at the two store boundaries:

- build_submission: new payloads are written with the bare file name
- read_store: payloads written by older binaries are scrubbed at load
  time, so the share listing, the dry-run preview and the upload agree

Ids that are not paths to a .gguf file (Ollama tags, HF-style org/model
ids from vLLM or MLX) pass through unchanged. Detection, the TUI and the
model field sent in benchmark requests are deliberately untouched.

Closes #819

* fix(share): only strip model ids that are absolute paths

Hub-style references such as hf.co/org/repo/file.gguf contain
separators and end in .gguf but carry nothing machine-specific;
stripping them would discard the org and repo context. Restrict the
strip to ids with a leading slash, backslash or Windows drive letter,
which is the only shape llama-server reports for a locally loaded GGUF.

* fix(share): use get_mut to avoid panicking on non-object pending payloads

Indexing through Value's IndexMut panics when a stored pending file's
top level is not a JSON object, and silently inserts `"results": null`
into object payloads that lack the key. Switch sanitize_stored_payload
to `get_mut("results").and_then(Value::as_array_mut)` so a stray
hand-edited file in pending/ cannot panic `llmfit share`.

Three tests added: absolute paths are still scrubbed, non-object top
levels are left untouched without panicking, and objects without a
`results` key are not polluted.
2026-08-09 15:17:27 +01:00
dependabot[bot] dc67dfb3b8 chore(deps): bump docker/setup-buildx-action from 4.1.0 to 4.2.0 (#765)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-09 15:16:55 +01:00
Alex Jones e638ced525 fix(cli): don't auto-spawn dashboard for read-only subcommands (#838)
plan (and other read-only subcommands) auto-started a detached background
'serve' server because auto_dashboard treated every non-serve command as
interactive. On plan's error path, std::process::exit(1) skips the
DashboardGuard destructor, so the orphaned server survives, keeps listening
on 127.0.0.1:8787, and contradicts the documented 'SIDE EFFECTS: None' plan
contract. Exclude read-only informational subcommands from auto_dashboard so
no server is spawned at all. Fixes #837.
2026-08-09 15:16:23 +01:00
dependabot[bot] 58f3148455 chore(deps): bump jsonschema from 0.46.5 to 0.47.0 (#801)
Bumps [jsonschema](https://github.com/Stranger6667/jsonschema) from 0.46.5 to 0.47.0.
- [Release notes](https://github.com/Stranger6667/jsonschema/releases)
- [Changelog](https://github.com/Stranger6667/jsonschema/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stranger6667/jsonschema/compare/cli-v0.46.5...ruby-v0.47.0)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-version: 0.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-09 15:16:05 +01:00
dependabot[bot] ad69f2d95d chore(deps): bump http-body-util from 0.1.3 to 0.1.4 (#802)
Bumps [http-body-util](https://github.com/hyperium/http-body) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/hyperium/http-body/releases)
- [Commits](https://github.com/hyperium/http-body/compare/http-body-util-v0.1.3...http-body-util-v0.1.4)

---
updated-dependencies:
- dependency-name: http-body-util
  dependency-version: 0.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-09 15:15:51 +01:00