Commit Graph
8776 Commits
Author SHA1 Message Date
Ettore Di Giacinto 4b4c96852f ci(addons): allow the shared quay credentials in the add-on workflow
The workflow policy forbade the quay credential names in the add-on package
workflow, so the login that now uses them failed the policy test on master.
The add-on pipeline logs in with the same registry credentials as the
backend builds, so those names are allowed. The test that rejected them is
removed.

Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-26 08:41:37 +00:00
Ettore Di Giacinto 09a8bcd3d0 ci(addons): log in to quay.io with the existing registry credentials
The add-on publish read ADDON_OCI_USERNAME and ADDON_OCI_PASSWORD, which are
not set, so the publish failed at login with 'Username and password
required'. Point it at the quayUsername and quayPassword secrets the backend
and image workflows already use.

Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-26 07:56:27 +00:00
localai-org-maint-botandmudler 48caa12333 chore: ⬆️ Update OpenNMT/CTranslate2 ROCm wheel to v4.8.4 (#12903)
⬆️ Update OpenNMT/CTranslate2 ROCm wheel

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
2026-10-26 08:51:42 +01:00
localai-org-maint-botandmudler f9c85a2dc3 chore(website): refresh the counters (#12915)
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
2026-10-26 08:51:25 +01:00
localai-org-maint-botandmudler d36f2a82c8 chore: ⬆️ Update ikawrakow/ik_llama.cpp to e34d163ad004f0830013240f8c750574425afc71 (#12905)
⬆️ Update ikawrakow/ik_llama.cpp

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
2026-10-26 08:50:31 +01:00
localai-org-maint-botandmudler 9f33c9a9db chore(model-gallery): ⬆️ update checksum (#12911)
⬆️ Checksum updates in the model library

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
2026-10-26 08:43:07 +01:00
localai-org-maint-botandmudler d1b23a6cb1 chore: ⬆️ Update CrispStrobe/CrispASR to 119c4031795a005eea4f9a9339351d4d77b5dc95 (#12910)
⬆️ Update CrispStrobe/CrispASR

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
2026-10-26 08:42:54 +01:00
mudler-agentandEttore Di Giacinto f1d36a0e25 test(ui): derive the settings field count from the schema (#12901)
The settings page spec hard-coded 58 fields. Each new setting broke it,
most recently max_concurrent_backend_operations, which made the page
list 59. Compare the grouped keys with the schema keys instead, so a
failure names the field that is in no group or shown twice. Add the
new setting to the mocked settings payload.

Assisted-by: Claude:claude-sonnet-5-5

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 21:29:36 +01:00
64912200a7 chore: ⬆️ Update leejet/stable-diffusion.cpp to a85db96aa5ce2c72bd5aec326f6c5c857839a50a (#12845)
* ⬆️ Update leejet/stable-diffusion.cpp

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(sd): adopt owning generation results

The sd.cpp bump replaces raw image and video outputs with owning results.
Adapt image generation, video generation and upscaling to the new API.
Use upstream destructors to release all pixels, audio and metadata.

Add model-free native checks for result ownership and failure paths.

Assisted-by: nib:gpt-6.1-sol
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 21:23:13 +01:00
mudler-agentandEttore Di Giacinto f7011f1870 fix(ui): keep the Models page fixed and give its tabs and filters room (#12899)
The document scrolled again on the gallery. The screen-reader spans in
the table rows are position: absolute, and nothing above them was
positioned, so they resolved against the viewport, escaped the table
scroller and the pinned shell, and stretched the document to about twice
the window height. Make the table scroller and the full-height page the
containing block, so the spans are clipped with the rows.

The tabs and filters were also packed tight. Raise the view tabs to 40px
with an accent underline on the current one, space the facet chips and
toggles apart, give toggles, chips, density and state segments a hit area
of at least 36px (40 to 44px on phones), and leave more air between the
filter rows. Existing --dk-* tokens only.

Add a spec that checks the document height equals the window height
while the table still overflows.

Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 19:13:41 +01:00
mudler-agentandEttore Di Giacinto 6e3222922e feat(addons): show the tool count of each add-on before install (#12898)
The add-on cards, the Find add-ons tab and the install dialog said
"Adds a page" for a library entry but nothing about chat tools, so the
tools only showed once the add-on was installed.

The library index now carries toolCount and tools on each entry, with
the same names as the installed view. They come from capabilities.tools
of the manifest; admin tools are not chat tools and are not counted.
Tools is capped at 32 names and toolCount stays the full number. The
catalog reader validates the hint and refuses it on a backend entry.
addonpkg catalog writes the fields. The new catalog-tools subcommand adds
them to an existing index from addons/<id>/manifest.json, and leaves
every digest and artifact as it was.

The UI reads the fields through the same helper as the installed view and
shows "Adds N tools" when N is above zero.

Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 19:13:30 +01:00
localai-org-maint-botandmudler 9dc8386801 chore: ⬆️ Update TheTom/llama-cpp-turboquant to 643956891dfdf51aecdbd05ca508dd21e21e8195 (#12840)
⬆️ Update TheTom/llama-cpp-turboquant

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
2026-10-25 18:28:39 +01:00
mudler-agentandEttore Di Giacinto ecfb591751 feat(gallery): add Phonon-2.5 parakeet-cpp models (#12896)
* chore(parakeet-cpp): bump parakeet.cpp to load Phonon-2.5 models

Move the pin to the current parakeet.cpp master. It includes the
dense and packed CPU paths for the Phonon-2.5 checkpoints, which the
previous pin cannot load.

After the bump, run `make purge` in backend/go/parakeet-cpp so the
next build clones the new revision.

Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]

* feat(gallery): add Phonon-2.5 parakeet-cpp models

Add the multilingual Phonon-2.5 (25 European languages) and the
English-only Phonon-2.5-English checkpoints as parakeet-cpp entries.
Each comes in four builds: F16, Q8_0, Q4_K and packed. The packed
build runs on the CPU only. The files are in
mudler/parakeet-cpp-gguf, pinned by SHA-256. The weights are
CC-BY-4.0.

The entries need the parakeet.cpp pin from the previous commit.

Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]

---------

Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 12:05:33 +01:00
dependabot[bot] 10adfa9055 chore(deps): bump docker/login-action from 3 to 4 (#12836)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  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-10-25 11:36:43 +01:00
dependabot[bot] 6149cf25ad chore(deps): bump actions/setup-node from 6 to 7 (#12837)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  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-10-25 11:36:32 +01:00
Ettore Di Giacinto 9530d6d994 fix(gallery): pin LFM2.5 dynamic builds to an existing revision
The two UD-Q4_K_XL and UD-Q6_K_XL download URLs added for the LFM2.5
dynamic variants pointed at a repository revision that does not exist,
so both returned 404. Pin them to the current repository revision. The
files at that revision carry the sha256 values already in the entries.

Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot ba882a0425 feat(gallery): add official Flint INT4 variant
Offer the publisher Q4_1 export alongside the existing Flint builds.
Pin the weights and document explicit variant installation.

Assisted-by: Codex:gpt-6

(cherry picked from commit 819e49482e, mudler/LocalAI#12862)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot 5fbaaaea2a feat(gallery): add Flash Next Turbo Brilliance
Add the IQ3_S GGUF build with both shards and its vision projector.
Pin all downloads and document the installation command.

Assisted-by: Codex:GPT-6

(cherry picked from commit 15ed1cb4e1, mudler/LocalAI#12860)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot 7ee537fffc feat(gallery): add Jumbo Fusion 27B variants
Add pinned Q4_K_M and Q8_0 builds with linked variants and install docs.
Regenerate the gallery from the model library and fix its stale header.

Assisted-by: Codex:gpt-6

(cherry picked from commit 6b2e8ea09c, mudler/LocalAI#12857)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot d747cf0798 feat(gallery): add Hy-Memory 30B A3B variants
Add official Q4_K_M and Q8_0 builds for memory-writing workflows.
Use the embedded template with no-think mode and pinned downloads.
Document installation and variant selection.

Assisted-by: Codex:gpt-6

(cherry picked from commit a1259642c5, mudler/LocalAI#12851)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot c08e37f55d feat(gallery): add Sage-A1.5 GGUF variants
Offer the official Q4_K_M and Q8_0 builds with their vision projector.
Pin artifact revisions and document installation and variant selection.

Assisted-by: Codex:gpt-6

(cherry picked from commit 9f98baa8e5, mudler/LocalAI#12833)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot d06c255797 feat(gallery): add LFM Turbo Brilliance variants
Add IQ4_XS and Q8_0 MAX builds with pinned downloads and linked variants.
Use the embedded chat template and document installation.

Assisted-by: Codex:gpt-6

(cherry picked from commit 94b54e009a, mudler/LocalAI#12831)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot d27a2eeeb9 feat(gallery): add Tess 4.5 27B variants
Add three GGUF quantizations with a shared vision projector and pinned
artifact URLs. Document installation and the default context size.

Assisted-by: Codex:gpt-6

(cherry picked from commit c8df4d6fef, mudler/LocalAI#12823)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:40 +00:00
localai-org-maint-bot 8b0d6c0b4d feat(gallery): add Spark-X2.6 4B variants
Add the publisher Q4_K_M and Q8_0 builds with pinned downloads and
verified SHA256 hashes. Document installation and variant selection.

Assisted-by: Codex:gpt-6

(cherry picked from commit 64d0b3b094, mudler/LocalAI#12821)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot baba351517 fix(gallery): correct Qwen3.8 projector URLs
Use the published mmproj filename for both uncensored Q4 and Q8 entries.
The old filename returns 404, preventing model installation.
Preserve the local projector path and existing checksum.

Assisted-by: Codex:gpt-6
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

(cherry picked from commit 80b0708da4, mudler/LocalAI#12820)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 5d5df48169 feat(gallery): add Defiance 27B variants
Add IQ4_XS and Q6_K_P builds with pinned weights and linked variants.
Document installation and the text-only, ordinary-decoding defaults.

Assisted-by: Codex:gpt-6

(cherry picked from commit 1c5eea9580, mudler/LocalAI#12819)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot e2925e20ef feat(gallery): add Ornith 1.5 122B variants
Add pinned UD-Q4_K_XL and Q8_0 builds with the vision projector and installation documentation.

Assisted-by: Codex:gpt-6

(cherry picked from commit 31978a28ef, mudler/LocalAI#12809)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
mudler db9e20967c chore(model gallery): 🤖 add new models via gallery agent
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

(cherry picked from commit 355e99face, mudler/LocalAI#12804)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 89d4b66069 feat(gallery): add Humanizer 12B BF16 variant
Offer the unquantized GGUF alongside the existing Humanizer builds.
Document variant selection and the required completion prompt.

Assisted-by: Codex:gpt-6

(cherry picked from commit 3fc4ea5eca, mudler/LocalAI#12803)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot a0b4af9369 feat(gallery): add LFM2.5 dynamic variants
Offer Unsloth dynamic Q4 and Q6 builds alongside the official GGUFs.
Pin their revisions and verify hashes through two Hugging Face sources.

Assisted-by: Codex:gpt-6

(cherry picked from commit ab8d685f01, mudler/LocalAI#12774)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot f73e30effa feat(gallery): add Ternary Bonsai 2 2B variants
Add PQ2_0, PTQ1_0, and Q2_0 builds with the Q8_0 vision projector.
Pin files to the publisher revision and document variant selection.

Assisted-by: Codex:gpt-6

(cherry picked from commit 7270bdc508, mudler/LocalAI#12773)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot d6e81e4ba0 feat(gallery): add Ternary Bonsai 2 9B variants
Add three GGUF packings with the Q8_0 vision projector and document
installation. Pin asset revisions and verify hashes against HF metadata
and download headers.

Assisted-by: Codex:gpt-6

(cherry picked from commit 77f1ab29c8, mudler/LocalAI#12771)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot bf32819177 feat(gallery): add Qwen3.8 iMatrix NVFP4 variant
Fix the existing NVFP4 variant to use its downloaded BF16 projector.

Assisted-by: Codex:GPT-6 [shell]

(cherry picked from commit 3bfed3b8a0, mudler/LocalAI#12769)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 2010325ec0 feat(gallery): add BGE large English variants
Offer three GGUF builds and a safetensors build for English retrieval.
Pin model files and document the retrieval query prefix.

Assisted-by: Codex:gpt-6

(cherry picked from commit 02413e8190, mudler/LocalAI#12722)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 6386c2f8aa feat(gallery): add BGE base English variants
Add F16, Q8_0 and Q4_K_M builds with CLS pooling and retrieval usage documentation. Pin the GGUF revision and verify SHA256 values against Hugging Face metadata and download headers.

Assisted-by: Codex:gpt-6

(cherry picked from commit e61c44f317, mudler/LocalAI#12717)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 95fbf05ace feat(gallery): add BGE small English variants
Add F16, Q8_0 and Q4_K_M builds for English retrieval. Pin the source
revision and verify each SHA256 against HF metadata and download headers.
Document query prefixes and the 512-token context.

Assisted-by: Codex:gpt-6

(cherry picked from commit b99b669cef, mudler/LocalAI#12713)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 754800bbf3 feat(gallery): add Qwen3.5 Artemis 0.8B variants
Add text-only Q4 and Q5 builds for llama.cpp with pinned downloads.
Group the builds as variants and document their supported capabilities.

Assisted-by: Codex:gpt-6

(cherry picked from commit c7cbe18a62, mudler/LocalAI#12707)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot ba23729358 feat(gallery): add Diplodocus preview variants
Add Q4_K_M, Q6_K, and Q8_0 builds for llama.cpp with pinned assets.
Group the builds and document installation, reasoning, and tool setup.

Assisted-by: Codex:gpt-6

(cherry picked from commit f9e7f0bfbe, mudler/LocalAI#12706)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 1a6759a873 feat(gallery): add Atomic LFM2.5 24B variants
Add AtomicChat's LFM2.5-24B-A2B derivative with Q4, Q6, and Q8
GGUF builds for llama-cpp. Pin downloads and document installation.

Assisted-by: Codex:gpt-6
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

(cherry picked from commit f38d175875, mudler/LocalAI#12696)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot d92c5f9646 feat(gallery): add MiniCPM-V uncensored variants
Add AtomicChat MiniCPM-V 4.7 35B-A3B Q4 and Q6 builds for llama.cpp.
Include every weight shard and the F16 vision projector.

Assisted-by: Codex:gpt-6
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

(cherry picked from commit eff464d58a, mudler/LocalAI#12690)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot d62ea54aa3 feat(gallery): add Saluki abliterated variants
Add Kujira's mixed IQ2 Saluki fine-tune for llama.cpp with plain and MTP
decoding. Pin the weights and document the text-only entries.

Assisted-by: Codex:gpt-6
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

(cherry picked from commit 24f23a66aa, mudler/LocalAI#12688)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:39 +00:00
localai-org-maint-bot 1ae638dee2 chore(gallery): add Huihui Flash Next v2 variants
Add Q4 and IQ4 GGUF builds with a BF16 vision projector and pinned
Hugging Face downloads. Keep the original release available.

Assisted-by: Codex:gpt-6
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

(cherry picked from commit 9c9e18450e, mudler/LocalAI#12670)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:38 +00:00
localai-org-maint-bot b164fdcf2e chore(gallery): add GLM Flash Maya variants
Offer Maya S, S24, M, and L builds through the existing GLM group.
Pin all weight shards and the vision projector to an HF revision.
Document the standard llama.cpp configuration and its limits.

Assisted-by: Codex:gpt-6
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

(cherry picked from commit 4aab47ba66, mudler/LocalAI#12666)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:38 +00:00
localai-org-maint-bot 31d2673b5a chore(gallery): add Saluki 27B MTP variant
Offer the Saluki IQ2 weights with an MTP head for llama.cpp. Pin both
assets and document how to select the variant.

Assisted-by: Codex:GPT-6
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

(cherry picked from commit c745b96781, mudler/LocalAI#12662)
Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 09:55:38 +00:00
2200489044 chore: ⬆️ Update ggml-org/llama.cpp to 78a8ae14be559b45f5f13ddee82c188b683d5d8d (#12741)
* ⬆️ Update ggml-org/llama.cpp

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(llama-cpp): adapt to the multimodal rerank signature

Upstream llama.cpp added query_files and doc_files parameters to
format_prompt_rerank() (ggml-org/llama.cpp#29625). The gRPC rerank
call passed the init options in their place, so grpc-server.cpp no
longer compiled against the new pin.

prepare.sh now probes server-common.h for query_files and writes
LOCALAI_HAS_RERANK_FILES into llama_compat.h. When it is set, the
rerank call passes two empty media lists. The rerank API is text
only, so behaviour is unchanged. Forks that still use the old
signature (turboquant, bonsai) compile as before.

Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com>
Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 10:54:23 +01:00
Stefan Walcz 49f0a30df2 fix(ui): keep focus in settings sheets when the page re-renders
The chat settings sheet, the Talk session sheet and the agent and task
preview sheets set up their focus handling in an effect that depended on
onClose. Every parent passes onClose as an inline arrow, so each re-render
of the page gave it a new identity: the effect cleanup sent focus back to
the opener and the effect ran again and focused the Close button.

Any edit in a sheet re-renders the page, so focus left the control being
used. In the chat sheet, typing in the system prompt moved focus to Close
after the first key, and a following space activated Close and dismissed
the sheet; an open native dropdown in the sheet closed by itself.

Keep the latest onClose in a ref and run the focus effect once per open.
Escape still calls the current onClose; initial focus on Close, the Tab
trap and restoring focus to the opener are unchanged.

The e2e specs type key by key (or switch preview tabs) and assert that
focus stays put; they fail without this change.

Docs-Not-Needed: bug fix, no user-facing behaviour change beyond the fix
Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Stefan Walcz <stefan.walcz@walcz.de>
(cherry picked from commit 773cae7259)
2026-10-25 09:21:58 +00:00
Stefan Walcz 6d7e8171be feat(agents): per-model output cap for agent job completions
Agent jobs (/api/agent/jobs, local and on distributed agent workers) run
cogito against a LocalAI client that sends no max_tokens of its own, so
every completion gets the client's fixed default of 16384. max_iterations
bounds the number of turns and loop_detection repeated tool calls, but
neither stops one completion that keeps generating, and 16384 is the same
for a small tool-picking model and a reasoning model that thinks at length.

Add agent.max_generation_tokens to the model config. When set, both job
paths apply it to the client with SetMaxTokens; requests that carry their
own cap still win, so cogito's length retry can raise it. Unset keeps
today's behaviour.

The specs run each job path against an MCP fixture and a recording LLM
endpoint and check the max_tokens the completions carry; they fail when
either call site drops the cap.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Stefan Walcz <stefan.walcz@walcz.de>
(cherry picked from commit 5600a1cabe)
2026-10-25 09:21:58 +00:00
Ettore Di Giacinto 3302c76964 docs(vllm,sglang): note that omitted max_tokens is not capped
The vLLM and SGLang backends no longer stop at 200 tokens when a request
has no max_tokens. Generation is now bounded by the context window.

Assisted-by: Claude:claude-sonnet-5-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-10-25 08:50:18 +00:00
pos-ei-don ac5a0f3947 test: cover config-level disable for xhigh/max and the effort-only load warning
- ApplyReasoningEffort keeps an operator's reasoning.disable for high, xhigh and max
- sglang: _configured_budget() feeds the strict-thinking warning; tested with
  effort_budgets alone

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>
(cherry picked from commit 45a960ca1f)
2026-10-25 08:50:08 +00:00
pos-ei-don 1c125a8897 fix(sglang): review follow-ups for effort_budgets
- warn on an effort_budgets entry without a token count (high=)
- update comments: enable_thinking=false still wins over a listed level
- document that precedence in text-generation.md
- cover xhigh/max and the empty-entry warning in the tests

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>
(cherry picked from commit 0bd723a652)
2026-10-25 08:50:08 +00:00