Skip to content

v1.0.0

Choose a tag to compare

@cry-flu cry-flu released this 07 Nov 07:21
· 27 commits to main since this release

长会话越滚越贵。步数到上限时,这个插件在这一轮答完之后(绝不中途打断)自动开新会话、把一份本地拼出来的交接摘要投过去、归档旧会话,再把界面切到新会话。摘要不调用模型,是纯本地模板拼装——省下的是「手动总结 + 复制 + 新建会话 + 记住进度」这四步。

它解决什么

  • 省钱但不额外花钱:交接摘要由本地模板生成(取最近用户消息 + 最后一条回复,最多 16 行),零模型调用。真正计费的只有新会话的第一轮请求。
  • 不打断:只在轮与轮之间判定,正在跑的轮一定跑完。上限是软上限,换新点会在 maxSteps 附近浮动。
  • 可先空跑验证:dryRun 只写日志、不建会话、不归档、不跳转。
  • 不会连环换:minSteps 硬下限 + cooldownMinutes 冷却 + maxRotations 连续触发后自动暂停该工作区(状态持久化在 state.json,重启不清零)。

安装(四步)

  1. profile 的 package.json 里登记依赖和 bundle:
    {
      "dependencies": { "dsh-session-rotate": "github:cry-flu/dsh-session-rotate" },
      "dsh": { "profile": { "bundles": ["...", "dsh-session-rotate"] } }
    }
  2. 让 node_modules 里有这个名字(跑包管理器 install,或 cmd /c mklink /J "<profile>\node_modules\dsh-session-rotate" "<插件目录绝对路径>")。
  3. 在 profile 的 cordis.patch.yml 末尾挂载:
    - insert:
        - id: dsh-session-rotate
          name: dsh-session-rotate
          config:
            defaultMaxSteps: 40
            workspaces:
              - name: my-workspace      # 与侧边栏显示名完全一致
                maxSteps: null          # null / 省略 / 0 / "" = 跟随 defaultMaxSteps
    workspaces 为空数组 = 所有工作区都不生效,用哪个就加哪一行。
  4. 整个 DSH 换进程重启一次。「重开窗口」不会重载插件;重启后 Web GUI 端口会变。

先空跑确认再真用

把要测的工作区加进 workspaces(maxSteps 填你真实在用的值),打开 dryRun,正常干活跨过那个步数,然后看 ~/.dsh/session-rotate/debug.log:命中会记一条 [dry-run] 只记日志不换(同一会话同一档步数只记一次)。

别把 maxSteps 调成 2、3 去真测——换新是真的换,一晚上能刷出一屏空会话。

已知限制(先说清楚)

  • 热重载无效:改插件代码(尤其 lib/client.js)后必须整个 DSH 换进程重启。
  • 上限是软上限:判定只在轮间发生,开预判通常略早,关预判可能明显偏高(一轮能跑掉二十几步)。
  • 新会话第一轮照常计费:摘要本身零成本,但那一轮请求是真的。
  • 只对顶层会话生效,子会话跳过;每个会话只触发一次。

兼容性

只在我本人环境验证过:DSH 桌面版 0.2.1-rc.3(Windows)+ Node v24.18.0,npm test → 23 pass / 0 fail。CI 在 ubuntu + windows × node 20/22/24 跑单测,但不覆盖宿主行为,其他环境请先小范围试用。

注意

不在 npm 上。 包名 dsh-session-rotate 在 npm 上属于另一位作者的同名插件,不是本项目。

大部分代码由 AI 辅助生成,经人工审查与本地测试,但不保证所有环境行为如预期。有问题请开 issue,最想要的是「你的环境里到底能不能正常触发」。


v1.0.0 相对 0.2.1 的变更

版本变更清单

  • 版本号 0.2.1 → 1.0.0;engines.node 声明 >=20。
  • npm test 改为 node --test:自动发现测试文件,不依赖 shell 展开 glob,Node 20 / 22 / 24 都能跑。
  • package.json 补齐 repository / bugs / homepage / author。
  • README:删除全部本机绝对路径,安装步骤改为 github:OWNER/REPO;补充「改完代码怎么让它真正加载」。
  • 新增 .github/workflows/test.yml:Ubuntu / Windows × Node 20 / 22 / 24 跑单测。

已知限制

上限是软上限,真实换新点会在 maxSteps 附近浮动。