Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Library: SERVED BY / EST VRAM never populate when a llama-swap model ID differs from the GGUF file stem

Abierto
#197 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
57/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
go
Área
backend, search

Línea de trabajo

Read internal/engines/engines.go around llamaSwap and internal/harbor/web/library.js around matchScore to trace how running model data reaches library rows. Inspect the /running payload’s cmd field and the existing engine model representation; the issue proposes extracting the --model path and matching its file stem, with name matching as fallback. Done means resident models with IDs that differ from their GGUF stems show the correct SERVED BY and EST VRAM values.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Environment: v0.3.6 (origin/main @ 437ac1b), Windows 11, one llama-swap engine at http://127.0.0.1:1233, library root F:\AI\.lmstudio\models.

In the Harbor library, the SERVED BY and EST VRAM columns show - for every row, including rows for models an engine reports resident with a learned footprint. berth status on the same node, same moment:

ENGINE      TYPE        UP       MODELS                                                  ...   EST. VRAM
llama-swap  llama-swap  yes      qwen-3.8-27b,text-embedding-qwen3-embedding-0.6b        ...   14365 MiB

Root cause: the library joins engine models to library rows by substring name match. matchScore in internal/harbor/web/library.js scores 2 when the lowercased names are equal, 1 when either contains the other, 0 otherwise. A llama-swap model ID is whatever the operator named the model in llama-swap; the library name is the GGUF file stem. Two live examples from the same node:

engine model ID library row result
qwen-3.8-27b Qwen3.8-27B-UD-IQ4_XS score 0 — the ID's hyphen (qwen-3.8) breaks containment against the stem (qwen3.8)
text-embedding-qwen3-embedding-0.6b Qwen3-Embedding-0.6B-Q8_0 score 0 — neither name contains the other

Both rows render - in SERVED BY and EST VRAM while the models are loaded and serving (decode/prefill counters moving, tokens accruing).

Why substring is the wrong key: llama-swap's /running payload already carries the exact file path for each model in its cmd field — e.g. --model "F:\AI\.lmstudio\models\unsloth\Qwen3.8-27B-GGUF\Qwen3.8-27B-UD-IQ4_XS.gguf" — but Berth's reader picks up only model, state, and proxy (llamaSwap in internal/engines/engines.go, lines 575–586). Suggested direction: parse the --model path from /running (or have llama-swap expose it as an explicit field), carry it on the engine model, and join library rows on the file stem with the name match as fallback. An operator-maintained model→name alias map in the engine config would also work, but puts the bookkeeping on every user.

This affects any engine whose model names diverge from file stems; for llama-swap that is the common case, since the ID is operator-chosen and is usually shorter than the stem. Workaround until fixed: name the llama-swap model IDs identically to the GGUF stems (which changes the model IDs in API traffic).

Note: the CACHED column on Windows is a separate, by-design gap (internal/pagecache/other.go returns ErrUnsupported off-Linux), not part of this defect.

Lenguaje dominante
Go
Estrellas
226
Forks
20
Merge medio
43 min
PR fusionados (30 d)
192

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de T-Crypt/berth

Todos los issues de T-Crypt/berth

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.