Skip to content

ui: apply ui_settings on first visit in router mode - #29668

Merged
allozaur merged 1 commit into
ggml-org:masterfrom
simonether:fix-ui-settings-router
Oct 8, 2026
Merged

allozaur merged 1 commit into
ggml-org:masterfrom
simonether:fix-ui-settings-router

Conversation

@simonether

Copy link
Copy Markdown
Contributor

Overview

In router mode, settings from --ui-config-file don't show up on the first visit to the web UI until you click "Reset to default". The router's main process returns empty default_generation_settings.params from /props, and syncWithServerDefaults() returned early on empty params, before it got to the block that applies ui_settings on first load. The function now returns early only if there are no params and no ui_settings to apply, so setting values don't change without a UI config or on later visits.

Fixes #28260

Additional information

I added a regression test to the existing ui-settings-sync.svelte.test.ts that covers the router case (/props with empty params plus ui_settings) and fails without the fix. Client and unit tests, svelte-check, prettier and eslint pass, but I haven't tried this on a live router with --ui-config-file.

Requirements

  • I have read and agree with the contributing guidelines
  • AI usage disclosure: YES - Claude Code found the cause and wrote the fix and the test (it also ran the checks), and I reviewed every line before committing and opening the PR myself.

@simonether
simonether requested a review from a team as a code owner September 29, 2026 16:50
@eapache

eapache commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Makes sense to me. Automated browser-use testing with Astra was able to confirm the bug on main and that this PR fixes it.

@ServeurpersoCom ServeurpersoCom left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, the router main instance answers /props with empty params so the first visit pass was never reached, this is the same root cause reported in #28077.

@ServeurpersoCom

Copy link
Copy Markdown
Contributor

This only fires on a fresh browser (no stored config), existing user settings are never overwritten and later visits keep the current behavior.

@allozaur
allozaur merged commit 4f92965 into ggml-org:master Oct 8, 2026
6 checks passed
feal87 added a commit to feal87/myllama.cpp that referenced this pull request Oct 8, 2026
Upstream brings CUDA top-k/argsort/mmq fixes (PR ggml-org#28713, ggml-org#29953, ggml-org#30147,
ggml-org#29453), a DFlash output-head fix (ggml-org#30111) and a UI fix (ggml-org#29668).

Conflicts and resolution:
- top-k.cu / argsort.cu: upstream reworked the top-k selection and the same
  radix path the fork added. Take upstream's shape-based dispatch and int64_t
  fixes, keep the fork workspace cap in the shared ggml_cuda_chunk_nrows
  (GGML_CUDA_ARGSORT_CHUNK_MB) and the fork benchmark-only GGML_CUDA_TOPK_IMPL
  selector used by bench-topk.py.
- mmq.cu: upstream PR ggml-org#29953 fixes the same mul_mat_id padding over-read the
  fork patched in 1386ec2, but sizes the padding from the chosen J tile in
  both branches. Take upstream's version.
- test-backend-ops.cpp: keep the fork GGML_TOPK_BENCH shapes and add upstream's
  chunk-spanning cases.

Assisted-by: pi (deepseek-flash)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Misc. bug: --ui-config-file requires to click "Reset to default" in settings to apply values

4 participants