Repository navigation
Replies: 1 comment
|
Just to add real-world weight behind this: I enabled the official
What would make this land well for me:
Happy to test a patch or help refine the design if maintainers want a concrete proposal. Thanks for considering! |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Motivation
dsh-session-title-all-prompts-llm(cadenceall-prompts) starts a new title revision after every eligible human prompt: inSessionTitleService.onUserMessage,registration.provider.automatic === 'all-prompts'always schedules a revision. Each revision makes an auxiliary LLM call over the full (growing) message prefix.For long-lived sessions this has two practical costs:
first-promptavoids this but titles only once and never follows topic drift — so deployments are forced to choose between "never updates" and "updates every message", with no middle ground.Behavior
Let deployments bound how often automatic revisions run, via one or both optional settings:
minPromptsBetweenRevisions: N(default1= current behavior): skip automatic generation until at leastNadditional eligible user prompts arrived since the last started revision.debounceMs: M(default0= current): start the revision only after the user has been idle forMms, so a dense exchange settles on one title.Invariants: an explicit
ctx.sessionTitle.refresh()always bypasses the throttle (it is already the deliberate manual unpin); a userrename()still pins and is never auto-overridden;first-promptis unaffected. Defaults reproduce today exactly (backward compatible).Example:
Suggested implementation point (helpful, not required): add the fields to the shared
SessionTitleLlmConfigin@deepseek-ai/dsh-session-title-llm(both shipped providers already delegate to it), and gateshouldSchedulein theall-promptsbranch ofSessionTitleService.onUserMessageon the count / idle thresholds.Why the service layer, not a wrapper plugin
SessionTitleService, andSessionTitleAutomaticModeis a small closed union ('first-prompt' | 'all-prompts'). A config option on the shared title policy is the smallest coherent surface; a per-deploy fork would collide withregister()'s single-provider contract and fragment the ecosystem.first-promptkeeps its current behavior; only deployments that opt in via config change anything.Checklist (if accepted)
minPromptsBetweenRevisions/debounceMstoSessionTitleLlmConfig, defaults preserving current behaviorSessionTitleService.onUserMessagescheduling (count + idle thresholds)refresh()and user renames bypass the throttledsh-session-title-all-prompts-llmREADME + config catalogrefresh()bypassAll reactions