Skip to content

v0.7.7

Latest

Choose a tag to compare

@Punchact Punchact released this 06 Nov 12:52
27c09df

变更

  • 审批台账落盘(approvals.json,0600、原子替换):每会话的放宽额度、本桥创建的会话所有权、尚未还清的放宽欠账都跨重启保留;启动时把上一个进程留下的放宽收回。
  • history 补上期限:新增 historyBudgetMs(默认 30000 ms,钳制 100–120000),读不到就以 -32005 结束,不再无限等待;关闭事件流也改成有界(最多等 1 秒),Host 卡住不会再把答案一起拖住。
  • 文档:中英 README 逐节对齐;docs/release.md 重写为可执行的手册,并新增 Release 正文模板(本正文即按该骨架写)。

说明

  • 等待仍是分片循环:单次 HTTP 响应活不过五分钟(Node fetch 的 300 s headersTimeout,实测 303.9 s 报 fetch failed),片长由 maxWaitSliceMs 控制(默认 120000,上限 240000)。CLI 与 MCP 工具已自动续等,自己写客户端要自己切片。
  • 审批任务停在待批时会立刻返回:approvals.mode=delegate 下,轮次若因等你回答而停下,dsh_ask/dsh_wait 返回 status:"waiting-approval" 与 pendingApproval,而不是死等到 deadlineMs。
  • 已知边界:① token 对桥创建的子会话可读(同机同用户),delegate 防的是误操作与提示注入,不防同用户进程自我批准;② 闸门只拦工具参数里的 sandbox_permissions,configure 改预设被禁止,但"创建会话时调用方自选预设"不受闸门约束;③ 放宽额度按会话,重启不再清零,新建会话仍重新计三次。

验证

项 结果
单测(十套件) methods 76 · mcp-format 19 · registry 8 · pending 36 · approvals 11 · approval-state 8 · wait 6 · abort 7 · client 6 · status 6 = 182 例
真宿主集成 test/host.test.mjs 1 例
端到端 / 边界 test/e2e.mjs 14 例、test/edge.mjs 24 例(最近一次运行 2026-11-05)
版本一致性 check:version → version ok: 0.7.7
打包完整性 check:package → 32 files, 485.2 KB unpacked, 172.3 KB packed
CI 合入提交 27c09df 的 test run #42220725409 双绿(Node 22.x / 24.x)

本机沙箱限制:abort 套件里一条用例需要 spawn 子进程,在 workspace-write 下被以 EPERM 拒绝,因此本机 npm test 退出码为 1(170 通过 / 该例环境性失败);同一提交的 CI 在无此限制的环境下双绿,故以 CI 为发布依据。这是环境边界,不是代码失败。

安装

dsh plugin add @punchact/dsh-rpc-agent@0.7.7