Skip to content

Releases

v0.5.2:非交互 shell 选对 node,整理提交历史

Choose a tag to compare

@y083245 y083245 released this 04 Nov 07:18

修一键启动在 ssh、cron 里选错 node 的问题,并整理了提交历史。

⚠️ v0.5.1 及更早的老用户:先跑一次

仓库整理过一次提交历史(文件内容没变,提交号变了),旧的升级脚本跟不上,会报「连不上 origin」。最省事的办法:交给 AI。 把这段话发给能在你电脑上运行命令的 AI(Claude Code、Codex 等),git 和 ZIP 安装的都能处理:

请读 https://raw.githubusercontent.com/y083245/dsh-memory-brain/main/docs/guides/AI_UPGRADE.md ,按里面的步骤帮我把这台机器上的 dsh-memory-brain(qq-bridge)升级到最新版。动手前先告诉我你查到的情况和打算怎么做,等我确认。

想自己来,在项目目录里执行,只需要这一次:

Linux:

git fetch origin && git checkout origin/main -- scripts/update.sh scripts/update.mjs scripts/lib/upgrade-common.mjs
bash scripts/update.sh

Windows(git clone 的):

git fetch origin
git checkout origin/main -- scripts/update.sh scripts/update.mjs scripts/lib/upgrade-common.mjs
node scripts/update.mjs

从 windows-native 分支 clone 的,跑完再执行一条 git switch -C main origin/main。

升级脚本会重启桥接,QQ、SnowLuma、DSH 不用动。

改动

  • 提交历史整理过一次:2026-10-31 之后的提交号都变了,文件内容、日期、标题不变,v0.3.0~v0.5.1 的标签已指向新提交,只保留 main 分支。升级脚本能认出内容相同的老版本,自动换到新历史。
    • 本地有自己的提交时脚本会拒绝升级:先用 git format-patch 或另开分支把提交存好,git fetch origin && git reset --hard origin/main,再放回来。
    • 自己 fork 的仓库要同步的话,需要强制更新。
  • start-all 在 ssh 命令、cron 里选对 node:这类非交互 shell 不加载 nvm,以前会拿系统 node 去起服务,起到一半才失败。现在自动用 nvm 里版本够、带 cap_sys_ptrace 的 node;找不到就在起任何服务之前说清楚。用 NODE_BIN 或 orchestrator.nodeBin 指定过的不替换,只检查。Windows 不受影响。
  • start-all.sh、stop-all.sh 在 PATH 里没有 node 时先去 nvm 目录找,都没有就给明确报错。
  • scripts/systemd/install.sh 不再写死 node 版本,默认取 nvm 里最新的。

v0.5.1:收紧令牌发送闸门,清理仓库

Choose a tag to compare

@y083245 y083245 released this 04 Nov 05:06

修一处发送闸门,顺带清理仓库。升级后要重启桥接,QQ、SnowLuma、DSH 不用动。

更新内容

  • 收紧会话令牌的发送闸门:qq_send_message 一次发多条时,现在按整批检查,命中就一条都不发。以前逐条检查,令牌切得够碎就可能漏出去。建议升级。
  • 修 test:audit 偶发失败(R17 的 request hung),并让它的「没有片段发出」断言真正检查到发送记录。
  • 清理仓库:删掉 v0.5.0 误带进仓库的 21 个 macOS 元数据文件(._*),它们只有系统属性、没有内容,并加了防线。
  • CI:上游带来的 CI 工作流在这个仓库上跑通了;去掉用不上的 dev 分支规则,CONTRIBUTING、SECURITY、Issue 模板都指向本仓库。

老用户怎么升级

在项目目录里执行:

Linux

bash scripts/update.sh

Windows

update.bat

还在用 v0.3.0 或更早版本、windows-native 分支或 ZIP 包的,升级方法见 v0.5.0 的说明。

v0.5.0:一份代码跑 Linux 和 Windows

Choose a tag to compare

@y083245 y083245 released this 04 Nov 03:51

一份代码跑 Linux 和 Windows,修 Windows 双击闪退,兼容新版 DSH。windows-native 分支已合进 main,以后只维护 main。

更新内容

  • 修 Windows 双击 start-all.bat 闪退:目录名带括号或 & 时(比如重复下载的 xxx (1)),旧脚本报语法错误后窗口直接关掉。现在窗口一定留得住;没装 Node、Node 太旧、没解压完整都会说清楚;每次运行的输出存在 ~/.ai-companion-run/start-all.log。
  • Linux、Windows 合成一份代码:.sh 和 .bat 只做薄入口,升级和回滚改成 Node 实现,Windows 也有了 update.bat、rollback.bat。
  • DSH 兼容:CI 用真实的 DSH(0.2.1-rc.3、latest、alpha)和官方 Windows 桌面版核对预设注册。工具守卫跟上了 DSH 0.2.2 新增的 schedule_view、schedule_edit、apply_patch。start-all 启动时会检查预设有没有注册,没有就打印诊断。
  • 吸收上游 qq-bridge v0.2.1-r2:会话数据隔离、执行期会话绑定、控制台错误脱敏、自定义模型思考强度降级、桌面版端口自愈等安全与稳定性修复。
  • SnowLuma 2.3+:第一次运行要先在它的 WebUI 同意协议,等 OneBot 时会提示。

⚠️ 注意

  • 许可证变了:上游 v0.2.1-r1 之后改用 PolyForm Noncommercial 1.0.0(禁止商用),本项目合入后一起遵守。
  • 升级后要重启一次 DSH,新的预设和守卫才生效。QQ、SnowLuma 不用动。
  • macOS 不做原生适配,请用 Docker 跑 Linux 容器。

老用户怎么升级

在项目目录里执行:

Linux,v0.3.1 或 v0.4.0

bash scripts/update.sh

Linux,v0.3.0 或更早

git fetch origin && git checkout origin/main -- scripts/update.sh scripts/update.mjs scripts/lib/upgrade-common.mjs
bash scripts/update.sh

Windows(windows-native 分支)

git fetch origin --tags
git checkout origin/main -- scripts/update.mjs scripts/lib/upgrade-common.mjs
node scripts/update.mjs
git switch main

Windows(下载 ZIP 的):运行 stop-all.bat,备份 state\ 和 config.json;解压新 ZIP,把这两样放回去,再双击 start-all.bat。

新用户的安装教程见 README。