]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
2 months agosycl : fix the failed UT cases of conv_3d (#24900)
Neo Zhang [Thu, 25 Jun 2026 05:27:58 +0000 (13:27 +0800)]
sycl : fix the failed UT cases of conv_3d (#24900)

2 months agoopencl: support non-contig rows in norm (#24965)
lhez [Thu, 25 Jun 2026 02:21:25 +0000 (19:21 -0700)]
opencl: support non-contig rows in norm (#24965)

2 months agochat: harden caps check (#24973)
Piotr Wilkin (ilintar) [Thu, 25 Jun 2026 00:49:22 +0000 (02:49 +0200)]
chat: harden caps check (#24973)

2 months agohexagon: MUL_MAT and MUL_MAT_ID rework : 32x32 tiled weight repack, kernel-params...
Max Krasnyansky [Wed, 24 Jun 2026 19:14:25 +0000 (12:14 -0700)]
hexagon: MUL_MAT and MUL_MAT_ID rework : 32x32 tiled weight repack, kernel-params, cached graphs (#24954)

* hex-mm: new weight layout and fusion updates

* hvx-mm: unroll the new tiled vec_dots to optimize hvx register util

* hex-mm: optimize dyn.quant format for q8_0 and q8_1 to reduce overhead in vec_dots.

* hvx-mm: parallel quantizer per block for large rows

* hvx-mm: simplify and futher optimize dyn.quant and vec_dots

* hvx-mm: keep intermediate per tile accumulators in fp16

* hmx-mm: optimize weight dequant by aligning the repacked tiles with the DMA

* hmx-mm: remove qweight scratch and just use vtcm_weight

* hmx-mm: remove all unused and obsolete code

* hmx-mm: the new tiled repack format is here to stay -- rename all x4x2 to _tiled

* hmx-mm: improve activation processing with dma prefetch

* hex-mm: fix hmx/hvx fallback logic and MUL_MAT_ID allocation (unbreaks OLMoE)

* hex-mm: align the weight tiles with dma just like we did in hmx-mm

* hex-mm: factor out common mm bits into htp/matmul-ops.h

* hex-mm: start moving mm kernel selection to the host

* hex-mm: move all of the matmul param compute into the host

* hmx-mm: restore pipelined mode

* hmx-mm: unroll the dequant functions to optimize register usage

* hmx-mm: further improve activation process

* hex-mm: use vtcm_seq_alloc for all vtcm allocations and define more common functions

* hex-mm: improve mm optimizer to acount for number of activation threads

* hex-mm: fix matmul-id kernel params selection (unbreaks OLMoE and LFM)

* hexagon: remove support for arch < v73 since HMX is now required for most use-cases

* hex-mm: cleanup naming for consistency

* hex-mm: make sure matmul fusion accounts for vtcm allocation

* hex-mm: minor cleanup for kernel_params definition

* hex-mm: replace hardcoded limits with proper checks for vtcm requirements

* hex-mm: add support for non-tiled mm as a fallback option and factor out hvx kernels into separate header

* hex-mm: remove unused functions

* hex-mm: add shorthand for MM_SELECT in run-tool script

* hvx-mm: factor out hvx/hmx microkernels and unify matmul entry and dispatch

* hex-mm: further cleanup matmul fallback path

* hex-mm: refactor matmul entry point and dispatch a bit further

* hexagon: update cmake build to enable hmx for everything

* hex-ops: optimize kernel_param updates and include summary in the logs

* hex-mm: add support for GGML_HEXAGON_MM_SELECT

* hex-mm: add hex-common header

* hex-mm: pass correct number of tasks to workpool

* hex-mm: add proper checks for no-work in dyn.quant tasks

* hex-mm: convert all quantizers into a macro

* hex-mm: fix hvx-flat fallback to pass all MUL_MAT tests

* hex-mm: vectorize q8_1 quantizer

* hex-mm: improve fused ffn mm stride handling

* hex-mm: consistent use of n_threads and pipeline in kernel_params

* hexagon: minor formatting

* hex-mm: update MUL_MAT_ID kernel_param handling to make sure host/npu are in sync

* hvx-mm: go back to accumulating in fp32 in tiled hvx kernels, more accurate and same perf

* hvx-mm: unroll the loops and remove masking that is not needed for tiled accums

* hmx-mm: optimize activation processing (slit loops, some unrolling, etc)

* hmx-mm: minor optimization for output processing

* hex-mm: consistent use of uint32_t and size_t in mm kernels

* hex-mm: remove legacy restrictions for rows to be multiple of 256

* hexagon: replace sprintf with snprintf

* hex-mm: relax hardcoded nrows checks and rely on VTCM size requirements

* hexagon: minor alignment fix

* hexagon: fix trailing spaces

* hex-mm: relax padding from 256 to 128 (leftovers)

* hex-mm: remove redundant checks for weight align to 128

we always use 2D dma for the weights and align them properly

* hmx-mm: MUL_MAT_ID better work distribution between hvx threads and hmx tracing

* hex-mm: specialize per-token mmid activation handling

* hex-profile: update python scripts to handle kernel-params section in the logging output

* hex-mm: move n_prefetch (aka dma_depth) into kernel params and remove unused fields

* hex-trace: use easier to parse format, simply and fix post-proc scripts

* hmx-mm: relax 32 row limit for output processing which helps utilization

* hmx-mm: use start-chunk idx for tracing info

* hmx-mm: parameterize activation dma pipeline

* hexagon: add support for simple graph caching to avoid recomputing kernel-params

* hex-mm: remove left-over repack functions

* hex-mm: tighten n_prefetch asserts

* hex-mm: remove duplicate round/align_up helper

* hexagon: cleanup common header used in host/npu

* hexagon: update early wakeup threshold

* hmx-mm: define cost constants and update solver to assume that repacked ne[1] is padded to 32

* hmx-mm: make precompute_matmul a bit more readable (split into smaller functions, etc)

* hex-mm: remove n_threads constraint

* hex-mm: minor formatting updates

* hex-mm: remove obsolete profiling logs

* hex-mm: restore hardcode gate to refuse lm-head to avoid repacking that tensor

2 months agomtmd: model: unlimited-ocr: converter + parity test (#24969)
Saba Fallah [Wed, 24 Jun 2026 16:20:22 +0000 (18:20 +0200)]
mtmd: model: unlimited-ocr: converter + parity test (#24969)

2 months agocommon: remove unused json-partial (#24968)
Xuan-Son Nguyen [Wed, 24 Jun 2026 16:12:16 +0000 (18:12 +0200)]
common: remove unused json-partial (#24968)

2 months agovulkan: allow reducing the graph submission batches to avoid timeouts (#24872)
Wagner Bruna [Wed, 24 Jun 2026 14:29:24 +0000 (11:29 -0300)]
vulkan: allow reducing the graph submission batches to avoid timeouts (#24872)

2 months agovulkan: fail the build when a shader fails to compile (#24450)
liminfei-amd [Wed, 24 Jun 2026 09:42:03 +0000 (17:42 +0800)]
vulkan: fail the build when a shader fails to compile (#24450)

* vulkan-shaders-gen: fail the build when a shader fails to compile

vulkan-shaders-gen did not detect shader-compile subprocess failures, so a
broken libggml-vulkan could be produced while the build reported success and
the breakage only surfaced at run time. execute_command() discarded the child
exit code (POSIX waitpid passed nullptr for status; the Windows branch never
called GetExitCodeProcess) and string_to_spv decided success only from whether
stderr was empty, so a non-zero exit with empty stderr, or a subprocess that
failed to launch, was treated as success.

Return the child exit code from execute_command() (WEXITSTATUS on POSIX,
GetExitCodeProcess on Windows), treat a non-zero exit or non-empty stderr or a
launch exception as a failure, and record it in an atomic flag. main() checks
the flag after process_shaders() and returns EXIT_FAILURE before writing the
output files, so the build stops instead of emitting a broken backend.

Fixes #24393

Signed-off-by: liminfei-amd <redacted>
* vulkan-shaders-gen: simplify compile_failed access and drop unreachable return

Address review feedback on #24450:
- Access the std::atomic<bool> compile_failed directly (= / implicit bool)
  instead of .store()/.load(); the flag stays atomic because the worker
  threads in process_shaders() set it concurrently.
- Remove the unreachable trailing return -1 in execute_command(): on POSIX the
  child _exit()s after execvp and the parent returns (fork()<0 throws); on
  Windows the block returns the exit code.

Signed-off-by: liminfei-amd <redacted>
---------

Signed-off-by: liminfei-amd <redacted>
2 months agoui: loading bar below the model picker (#24931)
Pascal [Wed, 24 Jun 2026 08:50:44 +0000 (10:50 +0200)]
ui: loading bar below the model picker (#24931)

* ui: show model load progress on the selector trigger

Mirror the in-dropdown stage progress as a thin bar on the selector
trigger, so the active model's load percent stays visible when the menu
is closed. Same status gating and composite fraction as the dropdown
row, so both bars track the selected model in sync.

Suggested-by: Julien Chaumond <@julien-c>
* ui: show model load progress bar on the in-conversation model selector

* ui: tune model load indicator to a pulsing highlight (suggested by @ngxson)

Also wire the indicator onto the mobile sheet trigger, which was missing
it since mobile uses the sheet instead of the dropdown.

* ui: thin (@allozaur) pulsating (@ngxson) model load bar

2 months agoui: New Logo + Navigation cleanup & Mobile UI/UX improvements (#24897)
Aleksander Grygier [Wed, 24 Jun 2026 08:21:33 +0000 (10:21 +0200)]
ui: New Logo + Navigation cleanup & Mobile UI/UX improvements (#24897)

* chore: `npm audit fix --force`

* feat: Update sidebar toggle to use Logo

* refactor: Clean up favicon SVG

* feat: Refactor logo component and implement theme-aware favicon generation

* feat: Add configurable padding to generated PWA assets

* test: Add unit tests for writeThemeFavicons

* refactor: Componentization

* feat: WIP

* feat: WIP

* feat: WIP

* feat: Mobile UI

* feat: add SEARCH route constant

* feat: create SidebarNavigationSearchResults component

* refactor: use SidebarNavigationSearchResults in conversation list

* feat: enable mobile search navigation in sidebar actions

* feat: add mobile search route and page

* fix: prevent sidebar overflow on mobile viewports

* fix: Mobile sidebar

* feat: Mobile Search WIP

* feat: Mobile WIP

* feat: Add PWA standalone detection and refine mobile UI

* feat: Improve mobile layout, sidebar handling, and chat scrolling

* feat: Improve mobile sidebar visibility and iOS Safari chat spacing

* fix: Disable auto-scroll on mobile

* chore: Linting

* fix: Wrong condition

* feat: Mobile chat scroll

* refactor: WIP

* fix: Desktop initial scroll always working again

* fix: Partial fix for mobile auto-scroll / initial scroll

* fix: Desktop auto-scroll on initial load and during streaming

* fix: Mobile scrolling logic

* refactor: Clean up

* feat: Improve start UI

* feat: Add `delay` to `fadeInView`

* feat: Auto-scroll button

* refactor: Cleanup

* refactor: Extract chat dialogs and alerts into dedicated component

* refactor: Reorganize ChatScreen component structure and initialization

* feat: Improve auto-scroll after sending message

* feat: UI improvements

* fix: Settings link

* feat: UI improvements

* fix: better UI spacing

* fix: Remove unneeded logic

* fix: Chat Processing Info UI rendering

* feat: Improve mobile UI

* feat: UI improvement

* fix: Conditional transition delay for Chat Messages based on route from

* fix: Delay mobile sidebar collapse for smoother transitions

* fix: Mobile scroll down button + sidebar pointer events

* fix: Mobile UI

* fix: Auto scrolling

* fix: Implement dynamic height calculations for chat auto-scroll positioning and UI elements

* fix: Retrieve `autofocus` for Chat Form textarea

* fix: Use proper class

Co-authored-by: Copilot Autofix powered by AI <redacted>
* refactor: extract scroll-to-bottom logic and fix message send flow

* fix: update viewport store usage and remove conflicting autofocus

* feat: add accessibility labels to scroll down button

* fix: correct HTML structure in sidebar empty states

* fix: dynamically toggle processing info visibility

* chore: remove commented exports and fix formatting

* fix

* fix: Mobile Chat Form Add Action Sheet interactions

---------

Co-authored-by: Copilot Autofix powered by AI <redacted>
2 months agomodel : Add LFM2.5-ColBERT-350M and LFM2.5-Embedding-350M (#24913)
Tarek Dakhran [Wed, 24 Jun 2026 06:49:46 +0000 (08:49 +0200)]
model : Add LFM2.5-ColBERT-350M and LFM2.5-Embedding-350M (#24913)

* model : Add LFM2.5-ColBERT-350M and LFM2.5-Embedding-350M

* Restore LFM2 models in README.md

2 months agovulkan: Apply bias before softmax in FA, to avoid overflow (#24909)
Jeff Bolz [Wed, 24 Jun 2026 03:34:00 +0000 (22:34 -0500)]
vulkan: Apply bias before softmax in FA, to avoid overflow (#24909)

2 months agoserver : check draft context creation error (#24922)
kononnable [Tue, 23 Jun 2026 14:56:50 +0000 (16:56 +0200)]
server : check draft context creation error (#24922)

2 months agovulkan: support all backend tests for SQR/SQRT/SIN/COS/CLAMP/LEAKY_RELU/NORM (#24582)
Jeff Bolz [Tue, 23 Jun 2026 14:48:24 +0000 (09:48 -0500)]
vulkan: support all backend tests for SQR/SQRT/SIN/COS/CLAMP/LEAKY_RELU/NORM (#24582)

* vulkan: make SQR/SQRT/SIN/COS/CLAMP/LEAKY_RELU use unary.comp

* vulkan: make NORM support noncontig

* add noncontiguous row test cases for norm/l2_norm, handle this in the CPU backend and l2_norm.comp

* fix supports_op for cuda and webgpu

2 months agovulkan: Support GET_ROWS_BACK (#24883)
Jeff Bolz [Tue, 23 Jun 2026 13:39:37 +0000 (08:39 -0500)]
vulkan: Support GET_ROWS_BACK (#24883)

2 months agovulkan: support CONV_3D (#24612)
Jeff Bolz [Tue, 23 Jun 2026 13:39:20 +0000 (08:39 -0500)]
vulkan: support CONV_3D (#24612)

* vulkan: support CONV_3D

This is a pretty direct port of conv2d_mm.comp to CONV_3D, done by codex
and cleaned up by me.

* disable slower perf tests

2 months agovulkan: make mul_mm ALIGNED a spec constant (#24689)
Jeff Bolz [Tue, 23 Jun 2026 12:26:17 +0000 (07:26 -0500)]
vulkan: make mul_mm ALIGNED a spec constant (#24689)

This trims down some of the shader variant explosion and reduces binary size.

2 months agoserver: fix remote preset handling, add test (#24938)
Xuan-Son Nguyen [Tue, 23 Jun 2026 11:28:34 +0000 (13:28 +0200)]
server: fix remote preset handling, add test (#24938)

* server: add test for remote preset

* fix remote preset handling

* fix

* fix test

2 months agovulkan: link ggml-cpu when GGML_VULKAN_CHECK_RESULTS / RUN_TESTS are enabled (#24444)
Wyatt Caldwell [Tue, 23 Jun 2026 10:55:46 +0000 (03:55 -0700)]
vulkan: link ggml-cpu when GGML_VULKAN_CHECK_RESULTS / RUN_TESTS are enabled (#24444)

The result-checking and test debug paths in ggml-vulkan.cpp call ggml_graph_compute_with_ctx() to compute a CPU reference graph, but that symbol is defined in ggml-cpu, which ggml-vulkan does not link. Enabling -DGGML_VULKAN_CHECK_RESULTS=ON (or -DGGML_VULKAN_RUN_TESTS=ON) therefore fails to link with an unresolved external (e.g. LNK2019 on MSVC, undefined reference on GCC/Clang). This regressed after ggml-cpu was split into its own library. Link ggml-cpu under those two options so the debug builds link again.

Signed-off-by: Wyatt Caldwell <redacted>
2 months agomodel: Granite Speech Plus (#24818)
Gabe Goodhart [Tue, 23 Jun 2026 10:03:31 +0000 (04:03 -0600)]
model: Granite Speech Plus (#24818)

* feat: Add conversion support for Granite Speech Plus

Branch: GraniteSpeechPlus
AI-usage: full (Bob, OpenCode + Qwen3.6-35b)
Signed-off-by: Gabe Goodhart <redacted>
* feat: Extend granite_speech to support plus multi-layer concatenation

Branch: GraniteSpeechPlus
AI-usage: draft (Bob, OpenCode + Qwen3.6-35b)
Signed-off-by: Gabe Goodhart <redacted>
* fix(conversion): Fix plural naming for feature_layers for audio

Branch: GraniteSpeechPlus
AI-usage: none
Signed-off-by: Gabe Goodhart <redacted>
* fix(mtmd): Align feature_layer usage and naming everywhere

Branch: GraniteSpeechPlus
AI-usage: none
Signed-off-by: Gabe Goodhart <redacted>
* style: Use fstring for log

Signed-off-by: Gabe Goodhart <redacted>
Co-authored-by: Xuan-Son Nguyen <redacted>
---------

Co-authored-by: Xuan-Son Nguyen <redacted>
2 months agoggml-webgpu: improve MTP inference by using mat-vec path for small batches (#24811)
Masashi Yoshimura [Tue, 23 Jun 2026 08:13:55 +0000 (17:13 +0900)]
ggml-webgpu: improve MTP inference by using mat-vec path for small batches (#24811)

* ggml-webgpu: improve small batches decoding

* Add barrier to the NUM_COLS loop in mul-mat-vec

2 months agocodeowners: add yomaytk to ggml-webgpu (#24930)
Masashi Yoshimura [Tue, 23 Jun 2026 06:19:34 +0000 (15:19 +0900)]
codeowners: add yomaytk to ggml-webgpu (#24930)

2 months agoserver: improve user message detection and create checkpoints at every user message...
Aldehir Rojas [Tue, 23 Jun 2026 05:27:28 +0000 (00:27 -0500)]
server: improve user message detection and create checkpoints at every user message (#24176)

* server : improve message span logic

* cont : cast size_t to int32_t in comparisons

* server : create checkpoints before every user msg

* chat : remove \n in gemma4 delimiters

* chat : merge msg delimiter structs into one

* cont : reword comment

* cont : initialize tokens in delimiter

* cont : add server_tokens::get_raw_tokens() for mtmd

* cont : move message finding to server_tokens and skip mtmd tokens

* cont : update cohere2moe parser

* cont : increase min-step to 8192 and always produce a chkpt for last user message

2 months agoopencl: q8_0 gemv precision improvement (#24923)
Shawn Gu [Tue, 23 Jun 2026 05:25:21 +0000 (22:25 -0700)]
opencl: q8_0 gemv precision improvement (#24923)

2 months agoserver : Add id to tool call responses api (#24882)
Matt Thompson [Mon, 22 Jun 2026 21:03:12 +0000 (14:03 -0700)]
server : Add id to tool call responses api (#24882)

2 months agoui: Prioritize favorite models in model selection (#24766)
Mahdiou Diallo [Mon, 22 Jun 2026 19:00:21 +0000 (21:00 +0200)]
ui: Prioritize favorite models in model selection (#24766)

Updated model selection prioritization to include favorite models.

2 months agoserver: (router) move model downloading to dedicated process (#24834)
Xuan-Son Nguyen [Mon, 22 Jun 2026 16:24:04 +0000 (18:24 +0200)]
server: (router) move model downloading to dedicated process (#24834)

* server: real-time model load progress tracking via /models/sse

* update docs

* server: move model download to child process

* rm unused

* fix most problems

* clean up

* nit fixes

* fix test case

* do not detact() thread

* shorter MODEL_DOWNLOAD_TIMEOUT in test

* throttle

2 months agoserver: refactor/generalize input file schema (#24299)
Xuan-Son Nguyen [Mon, 22 Jun 2026 14:42:47 +0000 (16:42 +0200)]
server: refactor/generalize input file schema (#24299)

* server: refactor/generalize input file schema

* wire up input_video, accept raw base64

* nits

* nits (2)

* fix windows

2 months agoui: model status and load progress via /models/sse feed (#24878)
Pascal [Mon, 22 Jun 2026 13:55:30 +0000 (15:55 +0200)]
ui: model status and load progress via /models/sse feed (#24878)

* ui: model status and load progress via /models/sse feed

* ui: centralize SSE wire-format delimiters into shared constants for the chat and /models/sse parsers

* ui: type /models/sse event names as a ServerModelsSseEventType enum

Address review from allozaur

2 months ago[SYCL] support bf16 on bin_bcast OP and unary OPs (#24838)
Neo Zhang [Mon, 22 Jun 2026 11:09:02 +0000 (19:09 +0800)]
[SYCL] support bf16 on bin_bcast OP and unary OPs (#24838)

* support bf16 on bin_bcast OP and unary OPs

* support the older Intel compiler than 2026.0

2 months agosampling : remove unconditional softmax+sort in top-n-sigma sampler (#22645)
Tim Neumann [Mon, 22 Jun 2026 11:08:32 +0000 (13:08 +0200)]
sampling : remove unconditional softmax+sort in top-n-sigma sampler (#22645)

2 months agoserver: fix edit_file crash on append at end of file (line_start -1) (#24893)
Pascal [Mon, 22 Jun 2026 08:55:28 +0000 (10:55 +0200)]
server: fix edit_file crash on append at end of file (line_start -1) (#24893)

line_start -1 normalized to n+1, so append inserted at lines.begin() + n + 1,
one past end() -> heap-buffer-overflow in vector::_M_range_insert.

Normalize -1 to n (insert at end()), restrict -1 to append mode and reject it
for replace/delete instead of silently clobbering the last line. Parenthesize
the insert offset so empty-file append computes the position as int first,
avoiding a transient begin() - 1 on a null vector data pointer.

2 months agodocs/android.md: Add dependency `libandroid-spawn` for building in termux (#21812)
aafsmarak [Mon, 22 Jun 2026 03:48:31 +0000 (09:18 +0530)]
docs/android.md: Add dependency `libandroid-spawn` for building in termux (#21812)

Fixes https://github.com/ggml-org/llama.cpp/issues/18615

2 months agocommon/peg : implement ac parser for stricter grammar generation (#24869)
Aldehir Rojas [Sun, 21 Jun 2026 21:20:58 +0000 (16:20 -0500)]
common/peg : implement ac parser for stricter grammar generation (#24869)

* common/peg : implement ac parser

* cont : extract functions

* cont : tidy up

* cont : remove a test

* cont : move ac() def

2 months agoserver: fix report progress for loading spec models, add "stages" list (#24870)
Xuan-Son Nguyen [Sun, 21 Jun 2026 15:36:52 +0000 (17:36 +0200)]
server: fix report progress for loading spec models, add "stages" list (#24870)

* server: fix report progress for loading spec models, add "stages" list

* improve

* nits

* nits 2

2 months agoserver: refactor batch construction (#24843)
Xuan-Son Nguyen [Sun, 21 Jun 2026 12:16:11 +0000 (14:16 +0200)]
server: refactor batch construction (#24843)

* server: refactor batch construction

* wip

* wip 2

* wip 3

* wip 4

* add abort_all_slots

* handle batch full more carefully

* fix assert

* rm debug log

* small nits

* (debug) add timings

* debug: force llama_synchronize for accurate timings

* address comments

* disable DEBUG_TIMINGS

2 months agomtmd: fix mtmd_get_memory_usage (#24867)
Xuan-Son Nguyen [Sun, 21 Jun 2026 12:12:15 +0000 (14:12 +0200)]
mtmd: fix mtmd_get_memory_usage (#24867)

2 months agojinja : implement call statement (#24847)
Sigbjørn Skjæret [Sun, 21 Jun 2026 12:04:52 +0000 (14:04 +0200)]
jinja : implement call statement (#24847)

* implement call statement

* undo unintended change

* de-lambda

* simplify

* move caller context inside function handler

2 months agomtmd: add load progress callback (#24865)
Xuan-Son Nguyen [Sun, 21 Jun 2026 11:40:52 +0000 (13:40 +0200)]
mtmd: add load progress callback (#24865)

2 months agoserver: add "verbose" field to schema (#24864)
Xuan-Son Nguyen [Sun, 21 Jun 2026 11:03:14 +0000 (13:03 +0200)]
server: add "verbose" field to schema (#24864)

2 months agoserver: real-time model load progress tracking via /models/sse (#24828)
Xuan-Son Nguyen [Sun, 21 Jun 2026 09:58:14 +0000 (11:58 +0200)]
server: real-time model load progress tracking via /models/sse (#24828)

* server: real-time model load progress tracking via /models/sse

* update docs

* add mutex for notify_to_router

* correct docs

2 months agominor : clean-up whitespaces (#24862)
Georgi Gerganov [Sun, 21 Jun 2026 08:37:12 +0000 (11:37 +0300)]
minor : clean-up whitespaces (#24862)

[no ci]

2 months agospec : Support Step3.5/3.7 flash mtp3 (#24340)
YiChen Lv [Sun, 21 Jun 2026 08:33:18 +0000 (16:33 +0800)]
spec : Support Step3.5/3.7 flash mtp3 (#24340)

* add mtp_layer_offset + include nextn flags in graph reuse

* add llama_set_mtp_layer_offset + llama_model_n_nextn_layer API

* offset head select + require all MTP blocks

* speculative multi-head process()

* speculative multi-head draft()

* gather outputs via inp_out_ids

* cleanup

* fix core

* minor cleanup

* merged draft_multi_head into draft()

* mtp rename nextn

* Apply suggestions from code review

Co-authored-by: Aman Gupta <redacted>
* clean-up comments

* fix for multi seq

* apply suggestions && chain-heads comment

* add a reference for chain_heads discussion

---------

Co-authored-by: Aman Gupta <redacted>
2 months agocommon/peg : refactor until gbnf grammar generation (#24839)
Aldehir Rojas [Sun, 21 Jun 2026 02:15:06 +0000 (21:15 -0500)]
common/peg : refactor until gbnf grammar generation (#24839)

* common/peg : refactor until gbnf grammar into an ac automaton

* cont : add a test with multiple strings

* cont : pad state with 0s so rules line up

* cont : clean up comments

* cont : use set everywhere

* cont : inline state num string padding

* cont : add a ref to PR

* cont : fix regression in server-tools.cpp

2 months agocommon/json-schema-to-grammar : align spacing rules with parsers (#24835)
Aldehir Rojas [Sat, 20 Jun 2026 22:43:04 +0000 (17:43 -0500)]
common/json-schema-to-grammar : align spacing rules with parsers (#24835)

2 months agofix(hexagon): use padded stride for ssm-conv weights (#24470)
Guanhuai Zhang [Sat, 20 Jun 2026 21:58:49 +0000 (05:58 +0800)]
fix(hexagon): use padded stride for ssm-conv weights (#24470)

2 months agollama : use LLM_KV for quantization_version & file_type (#24802)
Adrien Gallouët [Sat, 20 Jun 2026 18:07:01 +0000 (20:07 +0200)]
llama : use LLM_KV for quantization_version & file_type (#24802)

Signed-off-by: Adrien Gallouët <redacted>
2 months agoarg: try fixing test-args-parser randomly fails (#24826)
Xuan-Son Nguyen [Sat, 20 Jun 2026 17:45:27 +0000 (19:45 +0200)]
arg: try fixing test-args-parser randomly fails (#24826)

* arg: try fixing test-args-parser randomly fails

* return ref

* try triggering the workflow

* exception wrapper

* wip

* test

* test 2

* arg: guard win32 utf8 argv override

make_utf8_argv rebuilds argv from GetCommandLineW to fix utf8 handling of
non ascii arguments on windows. the override runs unconditionally inside
common_params_parse, so it also clobbers a programmatic argv passed by a
caller. test-arg-parser builds a synthetic argv but then sees the real
process command line instead, the model argument is never parsed, and the
assert that expects success aborts via fastfail (0xC0000409). this shows up
as a random failure in the openvino windows workflow.

only override argv when its length matches the caller argc, so the utf8
repair still applies to real binaries while a programmatic argv stays intact.

---------

Co-authored-by: Pascal <redacted>
2 months agorelease: add missing link for win opencl adreno arm64 (#24809)
Muhammad Salem [Sat, 20 Jun 2026 15:08:59 +0000 (18:08 +0300)]
release: add missing link for win opencl adreno arm64 (#24809)

2 months agoserver: avoid forwarding auth headers in CORS proxy (#24373)
Matti4 [Sat, 20 Jun 2026 13:34:47 +0000 (15:34 +0200)]
server: avoid forwarding auth headers in CORS proxy (#24373)

* server: avoid forwarding auth headers in CORS proxy

* format

* fix test

* fix e2e test

---------

Co-authored-by: Xuan Son Nguyen <redacted>
2 months agodocker : prebuild web UI for s390x build [no release] (#24829)
Aldehir Rojas [Sat, 20 Jun 2026 10:54:42 +0000 (05:54 -0500)]
docker : prebuild web UI for s390x build [no release] (#24829)

2 months agomodel : glm-dsa load DSA indexer tensors as optional (#24770)
davidrhodus [Sat, 20 Jun 2026 10:48:24 +0000 (03:48 -0700)]
model : glm-dsa load DSA indexer tensors as optional (#24770)

GLM-5.2 ships the DSA "lightning indexer" on only a subset of layers (the
"full" layers; others omit it), but the GLM_DSA loader created the five
indexer tensors on every layer as required, so loading any GLM-5.2 GGUF
failed with e.g. `missing tensor 'blk.3.indexer.k_norm.weight'`.

GLM_DSA's graph is llama_model_deepseek2::graph (plain MLA) and does not use
the indexer tensors (indexer runtime not yet implemented), so they are
loaded-but-unused. Marking them TENSOR_NOT_REQUIRED lets layers without an
indexer load as nullptr and the model runs as full MLA attention.

DeepSeek-V3.2 (uniform indexer on all layers) is unaffected.

2 months agoggml : optimize AMX (#24806)
Adrien Gallouët [Sat, 20 Jun 2026 10:43:06 +0000 (12:43 +0200)]
ggml : optimize AMX (#24806)

Flatten the partition over n_batch * M so every thread participates in
the quantization

    | CPU                             | Model                         | Test   |   t/s OLD |   t/s NEW |   Speedup |
    |:--------------------------------|:------------------------------|:-------|----------:|----------:|----------:|
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B IQ4_NL - 4.5 bpw  | pp512  |    730.71 |    779.86 |      1.07 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B IQ4_NL - 4.5 bpw  | tg128  |     87.88 |     86.79 |      0.99 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B IQ4_XS - 4.25 bpw | pp512  |    725.09 |   1023.31 |      1.41 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B IQ4_XS - 4.25 bpw | tg128  |     83.64 |     83.62 |      1.00 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_0              | pp512  |    820.51 |    924.05 |      1.13 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_0              | tg128  |     90.59 |     92.46 |      1.02 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_1              | pp512  |    776.88 |    872.79 |      1.12 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_1              | tg128  |     89.39 |     90.94 |      1.02 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_K_M            | pp512  |    719.28 |   1009.27 |      1.40 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_K_M            | tg128  |     80.62 |     80.86 |      1.00 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_K_S            | pp512  |    732.29 |   1077.29 |      1.47 |
    | Intel(R) Xeon(R) Platinum 8488C | qwen35 0.8B Q4_K_S            | tg128  |     86.42 |     83.53 |      0.97 |

Signed-off-by: Adrien Gallouët <redacted>
2 months agoconvert : more consistent handling of rope_parameters (#24833)
Sigbjørn Skjæret [Sat, 20 Jun 2026 10:42:36 +0000 (12:42 +0200)]
convert : more consistent handling of rope_parameters (#24833)

2 months agoggml-webgpu: add adapter toggles for F16 on Vulkan + NVIDIA
Masashi Yoshimura [Fri, 19 Jun 2026 23:12:32 +0000 (08:12 +0900)]
ggml-webgpu: add adapter toggles for F16 on Vulkan + NVIDIA

2 months agoserver: refactor child --> router communication (#24821)
Xuan-Son Nguyen [Fri, 19 Jun 2026 23:02:26 +0000 (01:02 +0200)]
server: refactor child --> router communication (#24821)

* server: refactor child --> router communication

* fix wakeup case

* add docs

* improve update_status()

* nits

2 months agoserver : optimize get_token_probabilities (#24796)
Adrien Gallouët [Fri, 19 Jun 2026 21:26:54 +0000 (23:26 +0200)]
server : optimize get_token_probabilities (#24796)

Use std::partial_sort to order only the requested top-n tokens instead
of the full vocabulary

    logprobs sort: vocab=128000 n_top=0 iters=100
    full    sort:   8555.6 us/op
    partial sort:    704.3 us/op

Signed-off-by: Adrien Gallouët <redacted>
2 months agomtmd, arg: fix utf8 handling on windows (#24779)
Xuan-Son Nguyen [Fri, 19 Jun 2026 20:28:38 +0000 (22:28 +0200)]
mtmd, arg: fix utf8 handling on windows (#24779)

* mtmd, arg: fix utf8 handling on windows

* also fix ggml_fopen

* fix build fail

* also fix CLI

2 months agoserver: remove all internal mentions about "webui" (#24817)
Xuan-Son Nguyen [Fri, 19 Jun 2026 20:12:46 +0000 (22:12 +0200)]
server: remove all internal mentions about "webui" (#24817)

2 months agoarg: Add comment line support to --api-key-file (#23168)
Mikolaj Kucharski [Fri, 19 Jun 2026 15:33:54 +0000 (15:33 +0000)]
arg: Add comment line support to --api-key-file (#23168)

2 months agovendor : update cpp-httplib to 0.48.0 (#24787)
Alessandro de Oliveira Faria (A.K.A.CABELO) [Fri, 19 Jun 2026 14:16:35 +0000 (11:16 -0300)]
vendor : update cpp-httplib to 0.48.0 (#24787)

2 months agoserver: add --agent arg, remove redundant webui naming compat (#24801)
Xuan-Son Nguyen [Fri, 19 Jun 2026 14:06:13 +0000 (16:06 +0200)]
server: add --agent arg, remove redundant webui naming compat (#24801)

* server: add --agent arg, remove redundant webui naming compat

* corrent env

* fix the test

* llama-gen-docs

* nits: wordings

2 months agodocker : build the UI (#24794)
Aldehir Rojas [Fri, 19 Jun 2026 13:32:31 +0000 (08:32 -0500)]
docker : build the UI (#24794)

* docker : build the UI

* cont : use existing APP_VERSION

2 months agomtmd: several bug fixes (#24784)
Xuan-Son Nguyen [Fri, 19 Jun 2026 10:18:36 +0000 (12:18 +0200)]
mtmd: several bug fixes (#24784)

* mtmd: several bug fixes

* fix build

* fix gemma4ua

* add sanity check in get_u32()

* fix build (2)

* area() avoid overflow

2 months agospec: support eagle3 for qwen3.5 & 3.6 (#24593)
Ruixiang Wang [Fri, 19 Jun 2026 10:08:50 +0000 (12:08 +0200)]
spec: support eagle3 for qwen3.5 & 3.6 (#24593)

* spec: support qwen3.5 & 3.6 eagle3 draft

* eagle3: Add deferred boundary checkpoints restore support for hybrid models

* apply suggestions

Co-authored-by: Georgi Gerganov <redacted>
* spec: adapt to API change

* spec: fix naming

* cont : add TODO

---------

Co-authored-by: Georgi Gerganov <redacted>
2 months agoserver: fix non-bound n_discard value (ctx shifting) (#24786)
Xuan-Son Nguyen [Fri, 19 Jun 2026 08:53:44 +0000 (10:53 +0200)]
server: fix non-bound n_discard value (ctx shifting) (#24786)

* server: fix non-bound n_discard value

* Update tools/server/server-context.cpp

Co-authored-by: Georgi Gerganov <redacted>
---------

Co-authored-by: Georgi Gerganov <redacted>
2 months agosync : ggml
Georgi Gerganov [Fri, 19 Jun 2026 07:18:14 +0000 (10:18 +0300)]
sync : ggml

2 months agoggml : bump version to 0.15.2 (ggml/1548)
Georgi Gerganov [Fri, 19 Jun 2026 07:14:26 +0000 (10:14 +0300)]
ggml : bump version to 0.15.2 (ggml/1548)

2 months agopi : remove docs from system prompt (#24791)
Georgi Gerganov [Fri, 19 Jun 2026 06:34:00 +0000 (09:34 +0300)]
pi : remove docs from system prompt (#24791)

2 months agoserver : consolidate slot selection into get_available_slot (#24755)
Georgi Gerganov [Fri, 19 Jun 2026 06:22:34 +0000 (09:22 +0300)]
server : consolidate slot selection into get_available_slot (#24755)

Absorb get_slot_by_id logic into get_available_slot so slot selection
is handled by a single function call. When a specific slot id is
requested, the LCP similarity check still runs to enable proper
prompt cache updates.

Assisted-by: pi:llama.cpp/Qwen3.6-27B
2 months agoggml-cpu: support K tails in power10 Q8/Q4 MMA matmul (#24753)
shalinib-ibm [Fri, 19 Jun 2026 05:55:38 +0000 (11:25 +0530)]
ggml-cpu: support K tails in power10 Q8/Q4 MMA matmul (#24753)

* ggml-cpu: support K tails in Power10 MMA Q8/Q4 matmul

This patch removes the requirement that K be divisible by kc in the tinyBlas_Q0_PPC tiled matmul path. Process the final K panel using its actual depth and pass the reduced panel size through packing and kernel execution.  This allows more workloads to use the MMA kernel and reduces fallback to mnpack.

* Apply suggestion from @taronaeo

Co-authored-by: Aaron Teo <redacted>
---------

Co-authored-by: Aaron Teo <redacted>
2 months agomtmd: add batching support for internvl (#24775)
Xuan-Son Nguyen [Thu, 18 Jun 2026 23:16:16 +0000 (01:16 +0200)]
mtmd: add batching support for internvl (#24775)

2 months agoGgml/cuda col2im 1d (#24417)
Pascal [Thu, 18 Jun 2026 20:23:01 +0000 (22:23 +0200)]
Ggml/cuda col2im 1d (#24417)

* cuda: add GGML_OP_COL2IM_1D, follow-up to the CPU op

* cuda: col2im_1d use fast_div_modulo for the index decomposition

* cuda: col2im_1d tighten supports_op, type match and contiguous dst

2 months agoserver: add "X-Accel-Buffering": "no" header to streaming endpoints (#24774)
Reguna [Thu, 18 Jun 2026 20:01:24 +0000 (04:01 +0800)]
server: add "X-Accel-Buffering": "no" header to streaming endpoints (#24774)

* server: add "X-Accel-Buffering": "no" header to streaming endpoints

This header tells Nginx (as a reverse proxy) to NOT buffer responses. (only affects streaming endpoints)
Without it, Nginx will break streaming with certain applications (notably the Pi coding harness).

2 months agomtmd: add batching for mtmd-cli, add video tests (#24778)
Xuan-Son Nguyen [Thu, 18 Jun 2026 19:55:04 +0000 (21:55 +0200)]
mtmd: add batching for mtmd-cli, add video tests (#24778)

2 months agocmake : fix ui build with read-only source (#24752)
o7si [Thu, 18 Jun 2026 16:59:18 +0000 (00:59 +0800)]
cmake : fix ui build with read-only source (#24752)

2 months agomtmd: refactor llava-uhd overview image handling (always use ov_img_first) (#24769)
Xuan-Son Nguyen [Thu, 18 Jun 2026 16:53:49 +0000 (18:53 +0200)]
mtmd: refactor llava-uhd overview image handling (always use ov_img_first) (#24769)

* add dedicated "overview" for mtmd_image_preproc_out

* corrections

* correct (again)

* nits

* nits (2)

2 months agohexagon: support for op-trace (fine-grain tracing of HVX/HMX/DMA events) (#24592)
Max Krasnyansky [Thu, 18 Jun 2026 15:35:02 +0000 (08:35 -0700)]
hexagon: support for  op-trace (fine-grain tracing of HVX/HMX/DMA events) (#24592)

* hex-optrace: add support for optrace and instrument matmul and flash-atten code

* hex-trace: improve trace event and prefetto generator

* hex-trace: add new script dedicated to handling traces, specifically perfetto traces

* hex-trace: add --head/--tail options to profile and trace tools

* hex-trace: fix whitespaces

* hex-trace: fix flake8 warnings

* hex-trace: fix flake8 warnings

* hmx-fa: restore q_tiles clearing

* hex-profile: remove circular dep in includes

* hex-trace: simplify trace sizing check

* hex-profile: sort events in the summary by name

2 months agodocs: fix export-lora --lora-scaled syntax [no release] (#24703)
Kangjia Gao [Thu, 18 Jun 2026 14:46:17 +0000 (22:46 +0800)]
docs: fix export-lora --lora-scaled syntax [no release] (#24703)

Assisted-by: Codex
2 months agoserver: (router) fix stopping_thread potentially hang (#24728)
Xuan-Son Nguyen [Thu, 18 Jun 2026 13:41:09 +0000 (15:41 +0200)]
server: (router) fix stopping_thread potentially hang (#24728)

* server: (router) fix stopping_thread potentially hang

* fix windows build

2 months agoserver: add "schema" and validation (#24150)
Xuan-Son Nguyen [Thu, 18 Jun 2026 13:40:58 +0000 (15:40 +0200)]
server: add "schema" and validation (#24150)

* wip

* working

* correct some limits

* add field name to error message

2 months agoserver : add last-5-seconds generation speed display (#24291)
Aarni Koskela [Thu, 18 Jun 2026 12:02:20 +0000 (15:02 +0300)]
server : add last-5-seconds generation speed display (#24291)

* server : add last-5-seconds generation speed display

* cont : clean-up

---------

Co-authored-by: Georgi Gerganov <redacted>
2 months agoui: provide touch accessible model selection UI (#24604)
Amos Wong [Thu, 18 Jun 2026 11:14:20 +0000 (19:14 +0800)]
ui: provide touch accessible model selection UI (#24604)

* ui : add model selector storybook stories

Covers list, favorites, single-model, all status states
(loading/loaded/sleeping/failed/idle), and selection states.

* ui : improve model selector mobile UX with hover media queries

Use @media (hover:none) to show action buttons directly on touch
devices and color-code them by model status (amber=sleeping,
green=loaded, muted=idle). Status dots hidden on touch. Desktop
hover behavior unchanged.

2 months agoserver : return HTTP 400 on invalid grammar (#24144) (#24154)
Anuj Attri [Thu, 18 Jun 2026 10:49:14 +0000 (06:49 -0400)]
server : return HTTP 400 on invalid grammar (#24144) (#24154)

Throw on grammar parse failure so the server returns HTTP 400
instead of silently dropping the constraint.
Add a regression test for the invalid-grammar response.

Fixes #24144

2 months agoserver: (router) rework -hf preset repo (#24739)
Xuan-Son Nguyen [Thu, 18 Jun 2026 10:45:23 +0000 (12:45 +0200)]
server: (router) rework -hf preset repo (#24739)

* server: temporary remove HF remote preset

* rework remove preset.ini support

* rm unused get_remote_preset_whitelist()

* print warning

* add docs

* rm stray file

2 months agoserver: fix router args not being forwarded to child instances (#24760)
Xuan-Son Nguyen [Thu, 18 Jun 2026 10:15:46 +0000 (12:15 +0200)]
server: fix router args not being forwarded to child instances (#24760)

2 months agomtmd: refactor preprocessor, add mtmd_image_preproc_out (#24736)
Xuan-Son Nguyen [Thu, 18 Jun 2026 10:04:39 +0000 (12:04 +0200)]
mtmd: refactor preprocessor, add mtmd_image_preproc_out (#24736)

* add mtmd_image_preproc_out

* add dev docs

* remove unused clip API

* rm unused clip_image_f32_batch::grid

* change preprocess() call signature

2 months ago[SYCL] rename GGML_SYCL_SUPPORT_LEVEL_ZERO (#24719)
Neo Zhang [Thu, 18 Jun 2026 08:18:26 +0000 (16:18 +0800)]
[SYCL] rename GGML_SYCL_SUPPORT_LEVEL_ZERO (#24719)

* rename GGML_SYCL_SUPPORT_LEVEL_ZERO to GGML_SYCL_SUPPORT_LEVEL_ZERO_API, and GGML_SYCL_ENABLE_LEVEL_ZERO to  GGML_SYCL_USE_LEVEL_ZERO_API

* fix code format

* fix error when rebase

2 months agosycl : support MUL_MAT and OUT_PROD with Q1_0 (#24721)
Neo Zhang [Thu, 18 Jun 2026 08:17:37 +0000 (16:17 +0800)]
sycl : support MUL_MAT and OUT_PROD with Q1_0 (#24721)

2 months agoapp : enable self-update only when built with llama-install.sh (#24754)
Adrien Gallouët [Thu, 18 Jun 2026 07:57:59 +0000 (09:57 +0200)]
app : enable self-update only when built with llama-install.sh (#24754)

Signed-off-by: Adrien Gallouët <redacted>
2 months agoci : fix check-release message parsing (#24751)
Sigbjørn Skjæret [Thu, 18 Jun 2026 07:32:56 +0000 (09:32 +0200)]
ci : fix check-release message parsing (#24751)

2 months ago[SYCL] support OPs: conv_2d, conv_2d_dw, conv2d_transpose (#24600)
Neo Zhang [Thu, 18 Jun 2026 06:40:03 +0000 (14:40 +0800)]
[SYCL] support OPs: conv_2d, conv_2d_dw, conv2d_transpose (#24600)

* fix conflict

* fix format issue, rename

* rm debug code

* correct the file name

2 months agoui: Update code formatting command in pre-commit hook (#24685)
Aleksander Grygier [Thu, 18 Jun 2026 06:33:50 +0000 (08:33 +0200)]
ui: Update code formatting command in pre-commit hook (#24685)

2 months agoci : fix Windows x64 (OpenVINO) release link (#24731)
Ravi Panchumarthy [Thu, 18 Jun 2026 06:30:08 +0000 (23:30 -0700)]
ci : fix Windows x64 (OpenVINO) release link (#24731)

2 months agometal : check for BF16 support in concat kernel (#24747)
Georgi Gerganov [Thu, 18 Jun 2026 06:16:06 +0000 (09:16 +0300)]
metal : check for BF16 support in concat kernel (#24747)

2 months agomtmd: llava_uhd should no longer use batch dim (#24732)
Xuan-Son Nguyen [Wed, 17 Jun 2026 20:40:50 +0000 (22:40 +0200)]
mtmd: llava_uhd should no longer use batch dim (#24732)

2 months agoggml-cpu: Conditionally enable power11 backend based on compiler support (#24687)
shalinib-ibm [Wed, 17 Jun 2026 18:45:19 +0000 (00:15 +0530)]
ggml-cpu: Conditionally enable power11 backend based on compiler support (#24687)

* ggml: Conditionally enable power11 backend based on compiler support

Guard POWER11 backend creation behind a compiler flag check for -mcpu=power11. This avoids build failures on current GCC/Clang toolchains while preserving forward compatibility once POWER11 support becomes available.

* Update CMakeLists.txt

ggml-cpu: Use -mcpu=power10 for P10 and P11

2 months agometal : implement rope_back operator (#24725)
Georgi Gerganov [Wed, 17 Jun 2026 17:36:05 +0000 (20:36 +0300)]
metal : implement rope_back operator (#24725)

Reuse existing rope kernels with a function constant to toggle forward/backward
rotation, avoiding duplicate kernel code.

Assisted-by: pi:llama.cpp/Qwen3.6-27B
2 months agometal : add f16 and bf16 support for concat operator (#24724)
Georgi Gerganov [Wed, 17 Jun 2026 16:38:55 +0000 (19:38 +0300)]
metal : add f16 and bf16 support for concat operator (#24724)

* metal : add f16 and bf16 support for concat operator

Extend the Metal backend concat operator to support f16 and bf16 tensor
types in addition to the existing f32 and i32 support.

- Template kernel_concat on type T with specializations for float, half,
  bfloat, and int
- Add type-specific pipeline getter ggml_metal_library_get_pipeline_concat()
- Update device support check to allow f16 unconditionally and bf16 when
  device supports bfloat16
- Update dispatch to select the correct kernel specialization by type

Assisted-by: pi:llama.cpp/Qwen3.6-27B
* metal : extend concat operator to support f16, bf16, i8, i16 and i64

Assisted-by: pi:llama.cpp/Qwen3.6-27B
2 months agoserver: (router) add model management API (#23976)
Xuan-Son Nguyen [Wed, 17 Jun 2026 16:04:58 +0000 (18:04 +0200)]
server: (router) add model management API (#23976)

* wip

* server: (router) add SSE realtime updates API

* nits

* wip

* add download API

* add download api

* update docs

* add delete endpoint

* fix std::terminate

* fix crash

* fix 2

* add tests

* nits