Skip to content

Releases: Moqianying/dsh-session-link

Release list

v0.1.1

Choose a tag to compare

@Moqianying Moqianying released this 31 Oct 10:09

dsh-session-link v0.1.1

修复 冷启动后「设置 → 会话互联」整页 404 的问题。如果你在用 v0.1.0 并且重启过 dsh web,
就会遇到:设置页打开显示「加载失败: HTTP 404」「共 0 个会话」。升级到本版本即修复。

本次修复

  • 宿主的 HTTP 路由在冷启动时静默丢失:主插件的 inject 只有 tools / sessionPersistence,
    cordis 可能在 webServer 就绪之前就调用 apply()。旧代码 ctx.get('webServer') 拿到
    undefined 后直接 return,于是 /api/session-link/state、/ui、/memory 一条都没挂,
    而启动日志只有一行「已启用」——现象是 UI 整页 404,且极难排查。
    现在改为 ctx.inject(['webServer'], …) 等服务就绪后再挂载,服务不可用时还会打印警告。
  • 现象上还有一个误导点值得记:同目录的 dsh-session-link-diag / dsh-session-link-preview
    因为 inject 里写了 webServer,反而工作正常,容易让人误判成"插件整体没加载"。
  • 新增回归用例:test/offline-test.cjs 模拟「webServer 晚于插件就绪」,断言注入回调触发后
    /state、/memory、/ui 三条路由都被挂上。

安装 / 升级

git clone --branch v0.1.1 https://github.com/Moqianying/dsh-session-link.git
cd dsh-session-link
./scripts/install.ps1          # macOS/Linux: ./scripts/install.sh

装完重启一次 dsh web(宿主代码不热更新),启动日志应出现:

[session-link] webServer 就绪,开始挂载 UI 路由

然后刷新页面:设置 → 会话互联 正常,/api/session-link/state 返回 JSON。

核心功能(与 0.1.0 相同)

  • 设置面板页面:设置 → 会话互联,链环图标(与「会话回收站」同级),搜索 / 排序 / 链接组标签 /
    卡片式列表,点卡片任意位置即勾选(含键盘 Enter / Space)。
  • 就地预览 + 双视角:点 👁 在该会话下方展开,可切换「它收到的记忆」(接收方视角)与
    「它会提供的内容」(来源视角)。未链接会话默认看后者,不用先链上就能评估。
  • 模型可用:session_link(列会话 / 建组 / 加链 / 解链 / 删组)与 session_recall
    (拉摘要、跨会话关键字检索,支持标题片段匹配)。
  • 只读历史:全程 sessionPersistence.open(id, 'read'),不抢写所有权。
  • 有预算:单条 700 字 / 单会话 3500 字节 / 单次 9000 字节,超出从尾部截断。
  • 不自我繁殖:只抽直接人类输入与助手正文,跳过其它插件注入的 instructions / catalog / notice / recall。

要求与已知限制

  • dsh 0.2.0-rc 系(cordis 4 / dsh-client-modules / dsh-session-persistence-jsonl)。
  • 只搬运文本(图片留 [图片] 占位),工具输出默认不搬;预算静态,不随上下文自适应。
  • 仓库是 monorepo,pnpm add <tarball> 只能拿到仓库根,三个子包仍需安装脚本或手动复制。

验证

全部 package.json 合法
客户端冒烟测试全部通过 ✅
[webServer 延迟就绪] 路由仍被正确挂载: /api/session-link/memory, /api/session-link/state, /api/session-link/ui
全部断言通过 ✅

v0.1.0

Choose a tag to compare

@Moqianying Moqianying released this 30 Oct 18:48

Warning

本版本已被 v0.1.1 取代,请勿安装。

v0.1.0 存在一个冷启动缺陷:dsh web 重启后,「设置 → 会话互联」会整页显示
加载失败: HTTP 404、共 0 个会话。原因是宿主插件的 HTTP 路由在 webServer
就绪之前就被静默跳过(详见 CHANGELOG)。

修复版:v0.1.1(git clone --branch v0.1.1 https://github.com/Moqianying/dsh-session-link.git)。


dsh-session-link v0.1.0

把任意挑选的历史会话链接成组,让组内会话互通跨会话记忆。设置面板里带图标的独立页面,勾选即生效。

亮点

  • 设置面板页面:设置 → 会话互联,链环图标(与「会话回收站」同级同风格),
    搜索 / 排序 / 链接组标签 / 卡片式列表,点卡片任意位置即勾选(含键盘 Enter / Space)。
  • 就地预览 + 双视角:点 👁 在该会话下方展开面板,可切换
    「它收到的记忆」(作为接收方会收到什么)与「它会提供的内容」(被链接后会交出去什么)。
    未链接的会话默认看后者,所以不用先链上就能评估值不值得链。
  • 模型可用:session_link(列会话 / 建组 / 加链 / 解链 / 删组)与 session_recall
    (拉摘要、跨会话关键字检索,支持按标题片段找会话)。
  • 只读历史:全程 sessionPersistence.open(id, 'read'),不抢写所有权,运行中/已归档会话都能读。
  • 有预算:单条 700 字 / 单会话 3500 字节 / 单次 9000 字节,超出从尾部截断。
  • 不自我繁殖:只抽直接人类输入与助手正文,跳过其它插件注入的 instructions / catalog / notice / recall。

安装

git clone https://github.com/Moqianying/dsh-session-link.git
cd dsh-session-link
./scripts/install.ps1          # macOS/Linux: ./scripts/install.sh

刷新浏览器页面(Ctrl+R):设置里出现「会话互联」,会话里出现两个工具。
配置改动不需要重启进程(dsh 的 patchReload: live 会热加载)。

要求

  • dsh 0.2.0-rc 系(cordis 4 / dsh-client-modules / dsh-session-persistence-jsonl)。
  • Node ≥ 20(安装脚本用到 Node 24 亦可;仓库测试在 Node 24 上跑)。
  • 用到 Node 的 zlib 多帧 zstd 能力,只影响测试脚本,不影响插件本体。

已知限制

  • 只搬运文本(图片留 [图片] 占位),工具输出默认不搬。
  • 预算是静态的,不随剩余上下文自适应。
  • 仓库是 monorepo,pnpm add <tarball> 只能拿到仓库根;三个子包仍需安装脚本或手动复制。
  • 会话标题栏没有快捷入口:设置面板的 openSection 没有对外 API,跳转只能靠 DOM 点击兜底,不划算。

验证

node test/client-smoke.cjs    # 客户端:迷你 React 真渲染 + 7 条交互断言,无需浏览器
./scripts/verify.ps1          # 等同 CI:语法 + JSON + 客户端测试(可选宿主离线测试)

完整设计与踩坑记录见 docs/ARCHITECTURE.zh.md。