Commit Graph
11048 Commits
Author SHA1 Message Date
Aleksander Grygier 7739bd7301 ui : stop opening the model info dialog on selector open
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 18464c32bb ui : show the assistant model selector for external backends
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier a1df2dd804 ui : stop refetching model props after a failure
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier a035f923c9 ui : persist the active backend and guard server props fetches
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 8ddeed94ad ui : scope the model list to the selected backend tab
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 10d730ab6d ui : cache the local backend's model list
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 051c0a9bff ui : keep models of every enabled backend selectable
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier d83c9f54c3 ui : resolve a conversation's backend before sending
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 4761edc102 ui : scope the model list to the active backend tab
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier ee41ebc15d ui : account for cache tokens on external backends
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 69870519b7 ui : route chat requests through protocol adapters
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 946b08a99c ui : report token stats for external backends
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier a4d6bf249f ui : aggregate models across backends
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier ad967c6165 ui : load backend model lists in the background
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 23a19a7952 ui : only show the server error when no backend is available
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 088030d384 ui : prefetch backend model lists on first selector open
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 5beb29294b ui : send the model on external backend requests
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier e5eaad780f ui : ignore favorites that belong to another backend
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 4e9de83333 ui : target the selected model on external backends
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 2cb944149b ui : skip llama.cpp-only requests and fields on external backends
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 0a390a5b27 ui : honor per-backend chat and models paths
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 9dd4acb71d ui : switch backends from the models selector
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier a68b59e853 ui : gate llama.cpp-only features by backend capabilities
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 5d08b6d65a ui : stop settings save from clobbering backend config
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 12ca72a4d9 ui : list models from a backend
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier a0b5102d91 ui : allow excluding the local backend
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier ca02ab35a1 ui : add backend management settings UI
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 8d6bc71ebd ui : add backend presets, CRUD and connection test
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 0ce4a9cef9 ui : resolve API requests against the active backend
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 31031a0cd2 ui : add backend store and API base resolution
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 1d2cc0daae ui : add backend types and constants
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:22:47 +02:00
Aleksander Grygier 21aecafc8c ui : sort reasoning panel attributes
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:18:32 +02:00
Aleksander Grygier e0a8649e52 ui : lighten the model selector rows
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:08:40 +02:00
Aleksander Grygier 8c2a222edb ui : cache hugging face hub model data per session
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:07:37 +02:00
Aleksander Grygier 445ec8f13d ui : group the model selector components
Move the four selector surfaces into models/ModelsSelector with their own
barrel, extract the shared reasoning panel and download row, group the option
list helpers under navigation/utils, and add the models selector hook wiring
(in-flight downloads and reasoning menu included).

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 19:07:37 +02:00
Aleksander Grygier 375a5b08e9 ui : models discover dialog
Add the Models Discover explorer behind a new sidebar action and full-screen
dialog: a searchable HuggingFace GGUF list (org avatars, capability icons,
catalog size ranges) and a detail pane with header, metadata chips, the
sanitized model-card readme and the download area - per-quant action chips
grouped by bit depth, sidecar queuing and a scrollable serve-command preview
with dynamic quant selects. Searchable dropdowns gain sticky headers/footers.

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 19:07:37 +02:00
Aleksander Grygier 27a11a0f6b ui : render shared model row hints as native titles
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 19:07:15 +02:00
Aleksander Grygier 3712caa69f ui : remember hub avatars that failed to load
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 13:53:34 +02:00
Aleksander Grygier ba804dd783 ui : shared model display primitives
Extract ModelCapabilityIcons (canonical Tools/Reasoning/Vision/Video/Audio
order) out of ModelId and reuse it there, add the shared DialogConfirmDownload
for destructive download actions, the discover org avatar with dark-mode
inversion and the thin download progress bar, and rework ModelId badges to take
thinking/tool-use support directly.

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 13:53:34 +02:00
Aleksander Grygier 6a4dc7da8e ui : optional sanitized raw HTML in markdown
Add an allowHtml prop to MarkdownContent: raw HTML found in the markdown is
rendered after DOMPurify sanitization instead of being escaped as literal
text. Default stays escaped.

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 13:53:34 +02:00
Aleksander Grygier 0172e83237 ui : model download pipeline
Track HuggingFace downloads end to end: the server download/cancel endpoints,
a status manager fed by the /models/sse download progress events, and a
models-discover store holding the catalog and detail state for the discover
view. Downloaded and in-flight entries are excluded from the loadable model
list.

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 13:53:34 +02:00
Aleksander Grygier 3e43ff1b33 ui : model memory-fit estimation
Replace the raw runtime-memory estimate with the app's compatibility check:
the smallest real Mac memory tier that fits a model file, budgeted as
RAM x 0.75 minus fixed overhead with headroom on the file size. The constants
move to lib; the unused runtime-memory estimate is dropped. browser-info's
OS detection is exported for reuse.

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 13:53:33 +02:00
Aleksander Grygier c9462ce786 ui : strip provider tilde prefix from hub avatar urls
Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
2026-09-16 13:44:40 +02:00
Aleksander Grygier f9f41f6480 ui : Hugging Face Hub data layer
Add HuggingFaceService and its constants/enums/types: GGUF repo search, file
tree and model detail fetching, quant/sidecar filename analysis, shard-set
collapsing and the llama.app catalog feed, plus an orgOf() helper on the model
name utils.

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 13:12:04 +02:00
Aleksander Grygier 0bdbf547f1 ui : model id grammar for sidecars, quants and capability parsing
Extend the shared model id parser with sidecar tokens (draft variants and
auxiliary imatrix/mmproj files), weight-file and custom-quant regexes, and add
the tools capability to ModelCapabilities; the selector option row picks it up
from the model's declared capabilities.

Assisted-by: pi:GLM-5.3-Flash
2026-09-16 13:12:04 +02:00
Aleksander Grygier e5278550ff ui : type-safe API types, fetch helpers and download-ready models store plumbing
Assisted-by: pi:GLM-5.3-Flash
2026-09-16 13:12:04 +02:00
Aleksander Grygier 5963c000ef server : fix deadlock when removing a finished download
The download monitor thread acquires the mutex on its way out, so joining
it while holding the lock in server_models::remove deadlocks once the
status has flipped to DOWNLOADED. Join outside the lock, same pattern as
load_models().

Assisted-by: pi:zai-org/GLM-5.3
2026-09-16 13:12:04 +02:00
Aleksander Grygier 0949acee48 common : resolve <quant>-<sidecar> download tags and list cached sidecars
A Q4_0-mtp style tag now resolves the sidecar file when no model file matches it, so a solo draft or mmproj download actually pulls the file. Cached sidecar files list as their own entries so the state survives a restart, and removing such a tag deletes only the sidecar.

Assisted-by: pi:zai-org/GLM-5.3
2026-09-16 13:12:04 +02:00
y198 60199339bc rpc : invalidate cached compute graph when a referenced buffer is freed (#24292)
The server caches the most recent compute graph per device so that
GRAPH_RECOMPUTE can re-execute it without resending tensor data. The
cached graph nodes hold direct pointers to backend buffers that were
live at graph_compute() time. If any of those buffers is later
released via FREE_BUFFER, the next GRAPH_RECOMPUTE re-executes the
cached graph through the dangling pointers (use-after-free).

The bug is reachable by an unauthenticated remote client. The
dangling pointers point into chunks an attacker can reshape via
subsequent ALLOC_BUFFER/SET_TENSOR commands, and the resulting
read/write through the cached graph is sufficient to leak libc
addresses and hijack the buffer iface vtable used by BUFFER_CLEAR,
yielding remote code execution.

Discard all cached graphs in free_buffer(). The existing null-check
in graph_recompute() then rejects the request and the client falls
back to GRAPH_COMPUTE on the next call.

No protocol or API change.
b11000
2026-09-16 14:03:11 +03:00
Gaurav Garg b04d4e567c Change max context length for auto-fitting with unified KV (#28849) b10999 2026-09-16 16:08:50 +05:30