Townrain/dsh-session-title-interval-llm--packages-session-title-interval-llm1

@deepseek-ai/dsh-session-title-interval-llm

Every-N-prompts LLM provider plugin for DeepSeek Harness session titles

包名
@deepseek-ai/dsh-session-title-interval-llm
版本
0.3.0
许可证
MIT
最近更新
2026年8月16日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

@deepseek-ai/dsh-session-title-interval-llm

English | 中文

Optional ctx.sessionTitle provider that summarizes every eligible human message through ctx.llm, but starts a new revision only after every interval new human prompts — plus the first eligible prompt of a fresh non-fork session, so a short session still gains a model title over the fallback. It registers the interval cadence and uses seeded history as well as child-session prompts; the interval continues counting across a fork boundary. A newer revision aborts and supersedes older work; even a provider that ignores cancellation cannot commit stale output.

Modes

The optional mode field selects the integration path:

  • provider (default) registers the interval cadence on the session-title service. It needs a harness build whose service ships the interval cadence, and it integrates with every service-owned surface (automatic scheduling, explicit refresh, the web session-row Regenerate title action).
  • injected runs on a stock harness with zero core changes: the plugin listens to session/event, counts eligible human messages per session, and appends session/title events directly — the deterministic fallback, the title fold, and the manual-rename pin keep working because every surface reads the log. A /retitle slash command (registered when a commands service is composed) regenerates on demand and deliberately unpins a manual rename.

The plugin uses the complete required shared LLM configuration plus its own required interval; the optional shared enabled switch composes as on by default. Omit both provider and model to inherit the exact route from each current logged main request, or set both to route title generation independently. The composed policy also registers the shared title-policy settings section, so a deployment with a settings service can re-route title generation, change the interval, or switch automatic titles off from the Web settings page without editing cordis.yml. If the final framed aggregate prompt exceeds maxInputBytes, the request fails instead of truncating history; automatic use warns and keeps the prior title.

Model Experience

Interval title request

What the model sees

The title model receives the shared title instruction and a JSON array of all eligible human messages through the current revision, in log order with exact seqs. Seeded history is included. Each revision re-reads the complete history, so later titles track the whole conversation instead of its first prompt.

Token effect

At most one auxiliary request follows every interval new eligible prompts, bounded per request by maxInputBytes and maxOutputTokens; explicit refreshes may add calls. The main agent request gains zero tokens.

KV Cache effect

No main-request invalidation. The auxiliary input grows or changes at each revision, so provider-specific cache reuse ends at the first changed JSON token.

Known Limitations and Deferred Work

  • Input overflow retains the prior title; this provider has no summarization-of-summaries or retention policy for very long sessions.
  • It treats all eligible human messages equally and offers no weighting, filtering, or manual-title precedence.
  • Only eligible text prompts advance the interval; attachment-only or empty prompts schedule no revision.