morlay/dsh-plugin--packages-session-better-session ↗★ 9
@morlay/better-session
集成撤回、重试和分支会话的完整闭环 基于RDB持久化实现消息编辑、就地重试和派生新会话,适合需要灵活调整和管理对话历史的用户。
同名包的其他仓库
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:morlay/dsh-plugin#17db2e513964877a60c0d965cb6696c6539337f8&path:packages/session/better-session说明文档
阅读完整 README ↗使用
装配后即可在 GUI 会话中:
- 编辑 user 消息 → 撤回该消息及其后内容到输入框(rewind,不重放),用户改后自行发送(带确认弹窗)
- 重试 任意闭合回合 → 就地重放该回合输入(带确认弹窗)
- 分支(fork)→ 从任意闭合边界派生新会话
也可以直接调用服务:
// 编排层(host)
await ctx.sessionEditor.retry({ action: "retry", sessionId, turn: 2, cascade: "truncate" });
// 数据层
await ctx.sessionBranch.rewind(sessionId, 5);
await ctx.sessionBranch.forkFrom(sourceId, { atSeq: 6, childSessionId });
配置(rdb)
默认配置为 SQLite($DSH_HOME/sessions/sessions.sqlite)。在
$DSH_HOME/settings.yaml 覆盖 session-rdb namespace:
session-rdb:
type: sqlite # 或 postgres + connectionString
path: /abs/path/to/sessions.sqlite