2001Y/dsh-session-title-idle-refresh ↗★ 0

dsh-session-title-idle-refresh

基于全量消息及空闲触发的会话重命名插件 适合希望会话标题能根据后续对话内容自动更新、不再局限于首条消息的用户。

包名
dsh-session-title-idle-refresh
兼容性
待验证
Harness 依赖范围
^0.2.1-rc.2
Cordis 依赖范围
^4.0.1
版本
0.1.0
许可证
MIT
最近更新
2026年10月26日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:2001Y/dsh-session-title-idle-refresh

dsh-session-title-idle-refresh

DSH (DeepSeek Harness 0.2.1) session-title plugin built for Yoshiki Tamura.

  • Registers the session-title provider with automatic: "first-prompt" — the initial title is generated exactly once, as with the stock provider — but generation reads all human messages (stock all-prompts policy, including its keep-an-adequate-title stability rules, with the input trimmed to the byte budget).
  • A timer scans live sessions every scanMs. A session is refreshed once via ctx.sessionTitle.refresh() when all hold:
    • its title does not yet cover the latest human message,
    • the last event and the last human message are older than idleMs (default 30 min),
    • it has at least minMessages human messages (default 2),
    • it is not a subagent child session,
    • its title is not user-pinned (rename). Attempts per uncovered tail are recorded in memory; a refresh is never retried for the same tail before max(idleMs, 30min) passes.

Install (web profile)

dsh plugin --profile web add dsh-session-title-idle-refresh
# then restart dsh web

The package ships a bundle patch (cordis.patch.yml) that inserts the provider row with the defaults below and disables the stock session-title-llm row — only one title provider may be registered, and this plugin replaces it (the same swap pattern the official session-titles bundle uses for its all-prompts provider). To tune, restate the row in your profile's cordis.patch.yml:

- id: session-title-idle-refresh
  config:
    idleMs: 1800000
    scanMs: 60000

Config defaults

idleMs 1800000 · scanMs 60000 · minMessages 2 · maxPerScan 3 · targetWords 5 · targetCjkCharacters 10 · maxInputBytes 16384 · maxOutputTokens 4096 · timeoutMs 60000. No provider/model is pinned: titles use each session's own logged route, like the stock provider.

Upstream

An in-tree version of this behavior (a third automatic mode, idle, for the session-title service) was prototyped against deepseek-ai/deepseek-harness and is kept here as upstream-idle-mode.patch. It is shelved for now: the upstream repository does not accept external PRs, and the maintainer prefers the plugin form.