fix(gallery): correct meta-backend definitions for platform auto-selection#10299
Conversation
|
Registry verification: queried quay.io/go-skynet/local-ai-backends for every image tag these restructured metas resolve to (all
|
3e2d580 to
4a348de
Compare
|
Update: The meta Image tags were grounded against the published quay.io tags, not assumed:
(Plus an Referential-integrity audit now reports zero missing capability targets across the whole index. |
Backends that ship per-platform images must be meta backends (a capabilities map and NO uri) so the right variant is auto-selected per platform - mirroring llama-cpp/whisper. Several entries were misdefined; fixed here: - Concrete base + metal sibling (could not select the Apple Silicon variant): silero-vad, piper, kitten-tts, local-store (+ their -development). Converted each anchor to a meta and added the cpu-<name> concrete. - mlx family (mlx, mlx-vlm, mlx-audio, mlx-distributed + -development): anchor had both a uri AND a capabilities map, so IsMeta() was false and the map was ignored (always resolved to the metal-darwin image); the metal-<name> target did not exist. Removed the uri and added the missing metal-<name> concretes. - Dangling capability targets: diffusers/kokoro nvidia-l4t-cuda-12 repointed to the existing nvidia-l4t-<name> concrete; coqui nvidia-cuda-13 key removed (no cuda13-coqui image). - locate-anything: the meta existed but its concrete entries were never added, so it was un-installable on every platform. Added the full concrete set plus the locate-anything-development meta, mirroring rfdetr-cpp. Image tags grounded against the published quay.io tags. - trl (cuda12/13): repointed the stale 'cublas-cuda12/13-trl' image tags to the actually-published 'gpu-nvidia-cuda-12/13-trl' tags (fixes #9236). Assisted-by: claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
4a348de to
a9c656b
Compare
Follows the same root cause as #10291 (opus): backends that ship per-platform images must be meta backends (a
capabilities:map and nouri) so the right variant is auto-selected per platform. An audit ofbackend/index.yamlfound several that were misdefined, so on the affected platform the wrong (or a non-existent) backend is selected.Fixes
Category 1 - base was a concrete with a
metal-sibling (identical to the opus bug)silero-vad,piper,kitten-tts,local-store(each +-development): the anchor carried auriand a separatemetal-<name>existed, so on macOSLoad("<name>")got the CPU build / failed. Converted each anchor to a meta ({default: cpu-<name>, metal: metal-<name>}), added thecpu-<name>concrete (keeping the original image tag), renamed<name>-development->cpu-<name>-development, and added the<name>-developmentmeta.Category 2 - mlx family had
uriANDcapabilities(capabilities silently ignored)mlx,mlx-vlm,mlx-audio,mlx-distributed(+-development): because the anchor had auri,IsMeta()was false and thecapabilitiesmap was ignored -Load("mlx")always got themetal-darwin-arm64image (broken on CUDA/Linux), and themetal-<name>capability target did not even exist. Removed theuri/mirrorsfrom each anchor (now real metas) and added the missingmetal-<name>/metal-<name>-developmentconcretes. Verified every other capability target exists.Category 3 - dangling capability targets (install fails on those platforms)
diffusersnvidia-l4t-cuda-12: repointednvidia-l4t-arm64-diffusers(missing) ->nvidia-l4t-diffusers(exists).kokoronvidia-l4t-cuda-12: repointednvidia-l4t-arm64-kokoro(missing) ->nvidia-l4t-kokoro(exists).coquinvidia-cuda-13: removed the key (cuda13-coquidoes not exist) so cuda13 falls back tonvidia/default.Left unchanged (flagged for maintainer)
locate-anything: its capabilities reference*-locate-anything-cppconcretes that do not exist anywhere (no images, no entries) - it appears to be a broken/unpublished WIP entry. Not touched; please confirm whether its concretes should be published or the entry removed.Verification
locate-anything, andopus/opus-developmentwhich are fixed in fix(gallery): make opus a meta backend for platform auto-selection (#9813) #10291 and absent from this branch).go test ./core/gallery/...green.backend/index.yamlparses; every meta capability target (except documentedlocate-anything) resolves to an existing concrete.Net change is
backend/index.yamlonly.Assisted-by: claude:claude-opus-4-8 [Claude Code]