fix(streaming): respect auxiliary.title_generation config for session titles - #925
starship-s wants to merge 3 commits into
Conversation
- Respect auxiliary.title_generation model config for session titles,
preventing e.g. a Chinese chat model from producing Chinese-only titles.
- Fix aux→agent fallback tuple: change ('llm_error_aux', 'llm_error',
'llm_invalid') to ('llm_error_aux', 'llm_invalid_aux') so the agent
route is correctly invoked when the aux helper produces an invalid title.
- Tighten _aux_title_timeout to reject zero, negative, and non-numeric
values, falling back to default with a debug log.
- Add regression tests for fallback routing and timeout edge cases.
|
Triage review — fix(streaming): respect auxiliary.title_generation config for session titles This PR fixes a real config-vs-behavior mismatch: users who explicitly configure What's well done:
One question for maintainer: The No blocking issues found. Ready for maintainer review and merge. |
|
Triage review — branch rebased onto current master as PR #931 The implementation is correct and all 23 tests pass. Two improvements addressed over #925's branch state:
Please see PR #931 for the review and merge path. This PR can be closed once #931 merges. |
|
Merged to master as PR #931 (v0.50.182). Thank you @starship-s! |
Thinking Path
auxiliary.title_generation, that dedicated route should actually be honoredprovider/model/base_urlinto the auxiliary title helper._resolve_task_provider_model()treats those explicit args as priority 1 overconfig.yaml, soauxiliary.title_generationcould be configured in Hermes and still be silently ignored by WebUI title generation.auxiliary.title_generationis explicitly configured, let the aux resolver actually read that configllm_invalid_aux, so some invalid aux outputs skipped the intended agent fallback15.0sinstead of respecting the configured per-task timeoutWhat Changed
_aux_title_configured()inapi/streaming.pyto detect whetherauxiliary.title_generationis meaningfully configured.provideris set and notautomodelis setbase_urlis set_aux_title_timeout()so the aux title path readsauxiliary.title_generation.timeoutinstead of hardcoding15.0_aux_title_timeout()to reject:and fall back to the default with a debug log
_run_background_title_update():llm_error_auxandllm_invalid_auxtests/test_title_aux_routing.pyfor:llm_invalid_auxcorrectly triggering agent fallbackWhy It Matters
auxiliary.title_generationsettings now actually mean somethingVerification
Targeted verification run locally:
Result:
The new regression coverage specifically verifies:
providerconfigured with blankmodelis still treated as explicit title configbase_urlconfigured with blankmodelis still treated as explicit title configauxiliary.title_generation.timeoutis used instead of a hardcoded15.0llm_invalid_auxandllm_error_auxboth trigger agent fallbackRisks / Follow-ups
Model Used