xuedipiaofei/dsh-session-title-stamp ↗★ 1
dsh-session-title-stamp
DSH session titles in a DATE | CATEGORY | NAME template, with turn-aware auto-generation, a Generate title button, and hover cost/duration.
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xuedipiaofei/dsh-session-title-stampConfiguration
Override the row in the profile's cordis.patch.yml:
- id: session-title-stamp
config:
refreshOnTurnEnd: true
refreshMinIntervalMs: 120000
refreshMaxTurns: 100
categoryPreset: zh
template: '{date} | {type} | {topic}'
timeZone: Asia/Shanghai
maxNameChars: 20
| Field | Default | Meaning |
|---|---|---|
refreshOnTurnEnd | true | Refresh after a completed turn; false falls back to retitleEvery |
refreshMinIntervalMs | 120000 | Minimum gap between automatic refreshes; 0 disables the cooldown |
refreshMaxTurns | 100 | Stop automatic refresh after this many user messages; 0 = no freeze |
retitleEvery | 10 | Legacy message-count cadence, used only when refreshOnTurnEnd: false |
backfillOnStart | false | On startup, refresh live sessions whose title is still the fallback |
backfillMaxSessions | 30 | Maximum sessions in one backfill pass |
backfillIntervalMs | 2000 | Delay between backfill refreshes |
template | {date} | {type} | {topic} | Title template; see the placeholders below |
dateFormat | MMDD | Used by {date}: MMDD (1028), YYMM (2610), or YYYYMMDD |
timeZone | host local | IANA zone used for date/time placeholders |
categoryPreset | zh | Built-in category language: zh or en |
categories | preset | Explicit category list; overrides categoryPreset |
maxNameChars | 20 | Character cap before the byte cap applies |
maxTitleBytes | service cap (80) | Effective cap is the smaller of this and session-title's cap |
recentMessages | 8 | First message plus this many recent messages are sent |
maxInputBytes | 4096 | Input budget for one title request |
maxOutputTokens | 4096 | Output cap, including reasoning tokens |
timeoutMs | 90000 | End-to-end title-request deadline |
provider / model | session route | Optional pair to route title generation independently |
Template placeholders
| Placeholder | Meaning |
|---|---|
{date} | Date in dateFormat (1028, 2610, 20261028) |
{YYYY} {YY} {MM} {DD} {HH} {mm} {ss} | Date/time parts; concatenate freely ({YYYYMMDD}, {HHmm}) |
{type} | Category; an empty value removes the segment and its separator |
{topic} | Name; an empty value removes the segment and its separator |
An unknown placeholder is left verbatim ({MMDD} {bogus} keeps {bogus}), so a
typo is visible instead of silently disappearing. The template owns the final
format; maxTitleBytes still clips the result.
The default taxonomy is Chinese. categoryPreset: en switches it to
Analysis / Build / Fix / Debug / QA / Deploy / Docs / Other; categories
overrides either preset with any labels you want. The prompt lists the configured
labels and the local fallback maps common keywords onto them.