StarPivotNet/dsh-plugins-public--packages-blank-session-gc ↗★ 0
@starpivot/dsh-blank-session-gc
Keep at most one unused blank conversation: scan on session create and delete the rest from workspace accounts and JSONL logs 适合需要保持侧边栏和账本整洁、自动回收多余空对话的用户。
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:StarPivotNet/dsh-plugins-public#8d5d23bff5ac296c2fb545bd563761ae71ca6b3c&path:packages/blank-session-gcREADME
Read the full README ↗@starpivot/dsh-blank-session-gc
DSH host 守护插件:库里最多只留 一条未使用的空对话。
Web 点「新建对话」仍会立刻 session.create。这条空会话切走后从侧栏消失,但会留在 workspace 账本和 JSONL 会话库里。本插件不改本体创建路径:监听到新会话后扫描,删掉其余未使用空会话。
行为
- 触发:进程启动一次;之后每次普通会话
session/created(防抖 250ms)。 - 未使用:日志里没有
turn/start。权限钉选、/plan、/goal、改标题都不算使用。 - 保留:所有未使用空会话里
createdAt最新的那一条(并列比 id)。 - 删除:从每个 workspace 的
sessionIds摘掉,并删掉sessionPersistence.locate指向的 JSONL 会话目录。 - 子代理会话(
origin: 'subagent')不碰。 - 仍挂在本进程里的空会话卸不掉(Host 不公开 dispose)。账本和磁盘会清;进程内那条等重启消失。
本体没有公开 session.delete。删 JSONL 目录是这条部署上唯一能真擦掉会话日志的办法;升级后路径若变,插件可能扫得到但删不掉。
安装
dsh plugin --profile web add github:StarPivotNet/dsh-plugins-public#path:packages/blank-session-gc
然后重启 dsh web。
验证
node scripts/pick-victims.test.mjs