Releases: CodeByZack/dsh-weixin
Release list
v0.1.5
v0.1.4
v0.1.3
v0.1.3 - @zackdk/dsh-weixin
客户端 bundle 改由 CI 构建。
lib/client.js 之前是本地构建后提交进仓库的——DSH 插件通过 dsh plugin add 安装,
等价于一次普通 npm install,没有构建步骤,bundle 必须存在于发布的 tarball 里。
但 tarball audit 只校验文件存在且被包进 __ModuleLoader__ 壳,从不校验它是否最新:
改了 plugin-src/client/ 却忘了 build,会把过期 bundle 发上去并通过所有检查。
现在 validate 和 publish 两个 job 都在 npm ci 之后跑 npm run build:client,
tarball 装的是 CI 从 tag 指向的 commit 现场构建的产物。esbuild 是 devDependency,
@esbuild/linux-x64 在 lockfile 里且 resolved 指向 registry.npmjs.org,
npm ci 确定性拿到原生二进制,构建时不依赖 CDN 下载。
lib/client.js 已从 git 移除并加入 .gitignore;本地开发先跑一次 npm run build:client
(README 已记录)。使用侧不受影响——tarball 里仍有 bundle,装完即用,无需构建。
沿用 0.1.2 起的 direct publish 链路:零密钥,只靠 id-token: write 换 OIDC。
v0.1.2
v0.1.2 - @zackdk/dsh-weixin
发布链路改造:直发,不走 stage queue。
npm stage publish → npm publish。每发一版多一次 2FA 批准的手续,对这个包的
规模不划算。代价写在 workflow 头注释里:CI 管道被攻破时可以直接推到 registry,
没有人工闸门——npm 默认把 trusted publisher 设成 stage-only 正是因为这个。
NODE_AUTH_TOKEN 整行删掉,不是置空。${{ secrets.NPM_TOKEN }} 在 secret 被删后
解析成空字符串,"有但为空"最容易让人误以为 token 还在。这个仓库现在是零密钥
发布,只靠 id-token: write 换 OIDC。
顺带清掉 npm 每次都自动纠正的告警:repository.url 归一化成
git+https://github.com/CodeByZack/dsh-weixin.git。npm pkg fix 确认这是它唯一
想改的东西;tarball 审计只断言字段存在、不校验格式,所以审计不用动。
前置条件:npmjs.com 上这个包的 trusted publisher 配置必须允许 DIRECT publish。
默认是 stage-only,stage-only 会直接拒绝 npm publish——没开的话这步会失败并
给出明确报错。
验证:npm run prepublishOnly 七组审计全过(0.1.2),lockfile 仍为 0 个非官方
registry URL。
v0.1.1
v0.1.1 - @zackdk/dsh-weixin
README 重写:只讲功能,158 行 → 94 行。
去掉的内容:与上游 fork 关系相关的部分(差异说明、协议差异、迁移指南、
目录树、TODO、"已精简/可能精简")。那些讲的是这个仓库怎么来的,对使用者
没有信息量。
新增:16 行命令表,覆盖 bridge 实际分发的全部命令,取自 weixin-bridge.mjs 的
HELP_TEXT 并与各 *command.mjs 的检测器逐条核对。
特性清单每条都对着源码核实过:
- 重试:WEIXIN_SEND_RETRIES = 3,延迟 1.5s / 3s / 4.5s,每次换新 client_id
- 多客户端冲突:INTERACTION_RESOLVED_TEXT
- 语音 / 图片 / 文件:weixin-bridge.mjs 的 inbound 抽取
- 审批交互:harness-approval.mjs
安装说明改用 dsh plugin --profile web add @zackdk/dsh-weixin,本地 file:
路径只对开发 checkout 有意义。
package.json 的 description 也去掉了上游 fork 的提法。
验证:npm run prepublishOnly 七组 tarball 审计全过(0.1.1)。
代码本身与 0.1.0 一致 —— 0.1.1 是文档与版本号变更。
v0.1.0
v0.1.0 - @zackdk/dsh-weixin
首次发布:DSH profile bundle,微信 iLink 通道(host 侧收发 + client 侧渠道管理页)。
要点
- dsh.bundle.patch 声明就位:dsh plugin --profile web add @zackdk/dsh-weixin
一条命令安装并自动挂进 dsh.profile.bundles,无需手改 profile 文件 - sendmessage 对 ret=-2 / HTTP 5xx / 网络类错误退避重试 3 次(1.5s、3s),
每次换新 client_id;鉴权与会话失效类错误立即失败不重试 - 客户端 bundle 随包发布(exports['./client']),安装侧无需构建步骤
- MIT 许可,LICENSE 文本随包发布
- CI:GitHub Actions 审计打包后的 tarball(7 组检查)+ tag/version 一致性闸门
注意:此 tag 本身不会触发发布工作流(push 触发器仅限 main 分支),
需从本 tag 创建 GitHub Release 才会执行 npm publish。