Pascal
d749821db3
webui: add custom CSS injection via config ( #23904 )
...
* webui: add custom CSS injection via config
register a customCSS setting in the Developer section under Custom JSON,
syncable so it rides the existing ui-config pass through. inject the value
into a single style element in the head, reactive on the setting. lets an
operator theme a prebuilt binary through --ui-config without rebuilding,
and lets a user set it from the settings panel.
* ui: address review from @niutech and @allozaur, rename custom JSON key and CSS field
* ui: address review from @allozaur, move custom CSS injection to a style tag in svelte:head
* ui: inject custom CSS through a svelte action instead of a bound element
move the textContent write into a use: action on the head style node.
the action is the idiomatic way to touch a node, so the no-dom-manipulating
lint rule is satisfied without a disable. value stays text through
textContent, never parsed as HTML.
* Update tools/ui/src/lib/constants/settings-keys.ts
Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com >
* ui: address review from @allozaur, rename custom config key to customJson with migration
rename the custom config key to customJson across the type, the chat
request builder, the settings save check and the custom tools reader,
keeping the custom API param name unchanged. add a non destructive
migration that copies the legacy custom key to customJson at startup.
only render the head style tag when custom CSS is set.
---------
Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com >
2026-05-30 23:49:31 +02:00
Pascal
d38d50e7ff
ui: exclude generated build dirs from prettier and eslint so lint errors stop being masked ( #23910 )
2026-05-30 16:50:54 +02:00
ValdikSS
22d66b567e
ui: handle audio/vnd.wave as audio WAV file ( #23754 )
...
Firefox on Linux uses this MIME type
2026-05-29 21:41:35 +02:00
ValdikSS
2f6c815dc4
ui: fix audio and video modality detection ( #23756 )
...
When model props are fetched asynchronously from the server,
modelPropsVersion is incremented to trigger reactivity, but
only the vision effect was listening to it.
2026-05-28 17:36:10 +02:00
Markus Tavenrath
d205df6812
server, ui : Add support for HTTP ETags in llama-server ( #23701 )
...
* allow caching of ui elements in llama-server
* use fnv_hash
* Update tools/server/server-http.cpp
etag has to be set always
Co-authored-by: Xuan-Son Nguyen <thichthat@gmail.com >
---------
Co-authored-by: Xuan-Son Nguyen <thichthat@gmail.com >
2026-05-28 12:21:24 +02:00
Pascal
5a4126adc1
ui: fix stop/continue during an agentic loop ( #23356 )
2026-05-25 14:18:59 +02:00
Saba Fallah
b96487645c
ui: media attachments before text ( #23467 )
...
* ui: media attachments before text
* fix prettier formatting
2026-05-25 08:50:41 +02:00
Aldehir Rojas
63248fc3e3
cmake : fix ui build ( #23592 )
...
* cmake/ui : add -fPIC to llama-ui static lib
* cmake : rename host compiled embed helper
2026-05-24 02:37:28 -05:00
Aldehir Rojas
b22ff4b7b4
cmake/ui : refactor the build ( #23352 )
2026-05-23 17:08:22 -04:00
Aleksander Grygier
5e932a1c8d
ui: Improve Git Hooks for UI development ( #23403 )
...
* refactor: Improve Git Hooks for UI development
* fix: Address review comments
* fix: Use absolute git path for `/hooks`
Co-authored-by: Pascal <admin@serveurperso.com >
---------
Co-authored-by: Pascal <admin@serveurperso.com >
2026-05-21 08:27:50 +02:00
stduhpf
3a479c9132
ui: Add max image size option ( #22849 )
...
* webui: Add max image size option
* remove magic numbers
* support all image formats
* use const
* Move regex to match b64 images to constants
* use SETTINGS_KEYS to get max image resolution setting
* Do not touch the image if already under the size threshold
2026-05-21 00:00:09 +02:00
Aleksander Grygier
6ce96713de
feat: Add WAV MIME type variants and improve audio format detection ( #23396 )
2026-05-20 16:55:24 +02:00
Aleksander Grygier
e6b4acfe86
refactor: Move text attachments up before the message content in chat completions payload ( #23406 )
2026-05-20 13:04:01 +02:00
Aleksander Grygier
5028447384
ui: Refactor isMobile as reactive value in viewport store ( #23330 )
...
* refactor: `isMobile` as reactive value in `viewport` store
* refactor: Use Svelte media query for the viewport store
2026-05-20 10:52:00 +02:00
Aleksander Grygier
585080d310
fix: Div wrapper no pointer events on hidden ( #23390 )
2026-05-20 09:46:31 +02:00
Aleksander Grygier
67ace021da
refactor: Chat Screen UI rendering ( #23333 )
2026-05-19 22:38:42 +02:00
Aleksander Grygier
6db130445d
ui: Bump packages + address build warnings ( #23300 )
...
* chore: Update vulnerable packages
* chore: Formatting
* refactor: Update Tailwind CSS imports
* ci: Use `ubuntu-latest` for Unit/E2E UI tests
* chore: Bump package
* fix: Add missing tag
* refactor: Enums files naming
2026-05-19 10:16:04 +02:00
Aleksander Grygier
3a9c1b854d
ui: Update KaTeX package and clean up logs from sass warnings ( #23275 )
...
* ui: migrate katex imports to @use to resolve SCSS deprecation warnings
* ci: Use `ubuntu-slim` for CI (UI) workflow
2026-05-18 16:26:01 +02:00
Aleksander Grygier
b9a2170fce
feat: add scroll-to-bottom button to chat + prevent forced scroll down ( #23270 )
2026-05-18 16:17:21 +02:00
Aleksander Grygier
1ff0fc1384
ui: Refactor models store, MCP service, and gate logs behind VITE_DEBUG ( #23236 )
...
* refactor: Scope console logs to `DEV` + `VITE_DEBUG` env vars
* refactor: skip MCP proxy probe when no server requires it
* refactor: suppress expected disconnect errors during MCP client shutdown
* refactor: Deduplicate requests
* refactor: deduplicate model fetching across ROUTER and MODEL modes
* refactor: Clean up models logic
* chore: Add `.env.example` file
* refactor: replace client-side CORS proxy probe with server status flag
* refactor: Post-review fixes
* test: add vitest client setup with API fetch mocks
2026-05-18 16:09:40 +02:00
Aleksander Grygier
a135ec0baa
ui: Centralize monospace font styles in app.css ( #23272 )
2026-05-18 15:10:14 +02:00
Martin Andersson
232f466583
webui: fix Tailwind v4 utility classes missing when built via cmake ( #23253 )
2026-05-18 14:08:02 +02:00
Aldehir Rojas
87589042ca
cmake : fix LLAMA_BUILD_UI logic ( #23190 )
2026-05-17 14:42:26 -04:00
Judd
4f13cb7424
webui: support video files as input ( #22830 )
2026-05-17 02:13:44 +02:00
Aleksander Grygier
0253fb21f5
ui: Add request timeout for MCP tool calls ( #23138 )
...
* feat: Add request timeout for MCP tool calls in llama-ui
* feat: MCP Settings tab with max timeout setting
2026-05-16 15:20:27 +02:00
Holger Voormann
25b1bc9c2f
ui: Correct links in tools/ui/README.md [no ci] ( #23139 )
...
In `tools/ui/README.md`, update the relative links, now that the `README.md` file has been moved from `tools/server/webui/` to `tools/ui/`.
See https://github.com/ggml-org/llama.cpp/commit/59778f0196a82db32580bb649d5d839355d6d7bf .
2026-05-16 14:42:38 +02:00
kubawoo
b81c2cdd74
ui: Fix handling of MCP resource template parameters ( #23117 )
...
* Fix handling of MCP resource template parameters
* Fix formatting for uri-template.test.ts
---------
Co-authored-by: kuba <kuba@laptop.local.net >
2026-05-16 13:25:41 +02:00
viggy
1428004808
webui : [ChatFormActionAdd][a11y] fix accessibility issues in add menu trigger and items ( #22736 )
...
* fix tab order on attach button, and dont focus on disabled mennu item
* add a11y tests
2026-05-16 12:00:46 +02:00
Pascal
366c5e2a3b
ui: untrack settings sync in props effect to prevent reactive loop ( #23127 )
2026-05-16 11:25:34 +02:00
Aleksander Grygier
59778f0196
ui: Restructure repo to use tools/ui folder and ui / UI / llama-ui / LLAMA_UI naming ( #23064 )
...
* webui: Move static build output from `tools/server/public` to `build/ui` directory
* refactor: Move to `tools/ui`
* refactor: rename CMake variables and preprocessor defines
- Rename LLAMA_BUILD_WEBUI -> LLAMA_BUILD_UI (old kept as deprecated)
- Rename LLAMA_USE_PREBUILT_WEBUI -> LLAMA_USE_PREBUILT_UI (old kept as deprecated)
- Backward compat: old vars auto-forward to new ones with DEPRECATION warning
- Rename internal vars: WEBUI_SOURCE -> UI_SOURCE, WEBUI_SOURCE_DIR -> UI_SOURCE_DIR, etc.
- Rename HF bucket: LLAMA_WEBUI_HF_BUCKET -> LLAMA_UI_HF_BUCKET
- Emit both LLAMA_BUILD_WEBUI and LLAMA_BUILD_UI preprocessor defines
- Emit both LLAMA_WEBUI_DEFAULT_ENABLED and LLAMA_UI_DEFAULT_ENABLED
* refactor: rename CLI flags (--webui -> --ui) with backward compat
- Add --ui/--no-ui (old --webui/--no-webui kept as deprecated aliases)
- Add --ui-config (old --webui-config kept as deprecated alias)
- Add --ui-config-file (old --webui-config-file kept as deprecated alias)
- Add --ui-mcp-proxy/--no-ui-mcp-proxy (old --webui-mcp-proxy kept as deprecated)
- Add new env vars: LLAMA_ARG_UI, LLAMA_ARG_UI_CONFIG, LLAMA_ARG_UI_CONFIG_FILE, LLAMA_ARG_UI_MCP_PROXY
- C++ struct fields: params.ui, params.ui_config_json, params.ui_mcp_proxy added alongside old fields
- Backward compat: old fields synced to new ones in g_params_to_internals
* refactor: update C++ server internals with backward compat
- Rename json_webui_settings -> json_ui_settings (both kept in server_context_meta)
- Rename params.webui usage -> params.ui (both synced, old still works)
- JSON API emits both "ui"/"ui_settings" and "webui"/"webui_settings" keys
- Server routes use params.ui_mcp_proxy || params.webui_mcp_proxy
- Preprocessor guards use #if defined(LLAMA_BUILD_UI) || defined(LLAMA_BUILD_WEBUI)
* refactor: rename CI/CD workflows, artifacts, and build script
- Rename webui-build.yml -> ui-build.yml; artifact webui-build -> ui-build
- Rename webui-publish.yml -> ui-publish.yml; var HF_BUCKET_WEBUI_STATIC_OUTPUT -> HF_BUCKET_UI_STATIC_OUTPUT
- Rename server-webui.yml -> server-ui.yml; job webui-build/checks -> ui-build/checks
- Update server.yml: job/artifact refs webui-build -> ui-build
- Update release.yml: all webui-build/publish refs -> ui-build/publish; HF_TOKEN_WEBUI_STATIC_OUTPUT -> HF_TOKEN_UI_STATIC_OUTPUT
- Update server-self-hosted.yml: webui-build -> ui-build
- Update build-self-hosted.yml: HF_WEBUI_VERSION -> HF_UI_VERSION
- Rename webui-download.cmake -> ui-download.cmake (internal refs updated)
- Update labeler.yml: server/webui -> server/ui path label
* docs: update CODEOWNERS and server README docs
- Update CODEOWNERS: team ggml-org/llama-webui -> ggml-org/llama-ui, path /tools/server/webui/ -> /tools/ui/
- Update server README.md: CLI tables show --ui flags with deprecated --webui aliases
- Update server README-dev.md: "WebUI" -> "UI", paths updated to tools/ui/
* fix: Small fixes for UI build
* fix: CMake.txt syntax
* chore: Formatting
* fix: `.editorconfig` for llama-ui
* chore: Formatting
* refactor: Use `APP_NAME` in Error route
* refactor: Cleanup
* refactor: Single migration service
* make llama-ui a linkable target
* fix: UI Build output
* fix: Missing change
* fix: separate llama-ui npm build output into build/tools/ui/dist subfolder + use cmake npm build instead of downloading ui-build.yml artifacts in CI
* refactor: UI workflows cleanup
---------
Co-authored-by: Xuan Son Nguyen <son@huggingface.co >
2026-05-16 02:02:40 +02:00