Skip to content

v2.4.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 09:06
· 105 commits to main since this release

v2.4.2

三个问题:history 不下发投影、权限档位没有出口、所有斜杠命令失效。

1. history 透传 projections

GET /chat/sessions/{id}/messages 顶层此前只有 events / hasMore / historyFormatVersion,完全没有 projections —— 客户端连「当前权限档位」都读不到。这是 dsh-companion F1「权限档位 Pill 从不渲染」的上游根因。

现在首屏 follow snapshot 与 beforeSeq 分页两条分支都把 sessionController.projections() 并进响应。取不到不抛错:历史是主功能、投影是附加信息,缺席时客户端走降级路径。

(副产物:投影里还有 tokenUsage、contextPressure、contextBreakdown、sessionStats、turnOutline、plan、subagentCatalog 等 20 个键,后续功能可直接用。)

2. 新增 GET /api/v1/chat/permission-presets

权限档位的候选项只在内核独立远程服务 permissionPresets.catalog() 上,桥没有任何入口能透出去。新端点(scope 同 agent-presets,chat.read)出网前经过归一:丢无 value 的行、缺 name 退回 value、空串 description 不透传。

该端点容错读取:permissionPresets 在本 profile 不可注入(cannot get property … without inject)。按本仓 attachments/fileUploads 的既有结论,这个异常的含义是「压根没有这个可注入服务」,不是时机问题 —— 旁证是内核该能力本身在工作(/permission 可列档位、投影里有 currentValue)。故用 optionalService 读取,缺失时返回内核默认两档,而不是让端点 500。

不放 read-only:它是合法 sandbox 模式,但内核没为它配 preset,而 /permission <preset> 切的是 preset 名 —— 给出一个切不过去的选项比不显示更糟。

3. 修所有斜杠命令失效

内核 commands.execute 是四参 execute(agent, line, submittedAttachments, signal),桥只传了三个,于是 signal 实际收到 undefined,内核随后读 signal.aborted 就抛错。

症状很有迷惑性:所有斜杠命令全废,报出来的却是 Cannot read properties of undefined (reading 'aborted'),与权限、与会话冷热都无关。真机上表现为「会话中改不了权限」。桩测试此前写成 (_agent, line),正好放过了这个错位;现在断言第三、四参。

安装

# npm 包名(会从 Gitee Release 拉本 tgz)
dsh plugin --profile web add https://gitee.com/westanke/dsh-remote-bridge/releases/download/v2.4.2/dsh-remote-bridge-v2.4.2.tgz
  • 体积 558,704 字节
  • SHA-256 0260fe57e8187d4a9421ffce939cae08d997bcbcdc282093fd900cc131e3067f

门禁

  • 40 个测试文件 / 305 用例 / 0 失败(新增 history-projections.spec.ts 6 例、permission-presets.spec.ts 6 例,dsh-0.2-bridge.spec.ts 补 2 例)
  • docs:check 10 文档 + 版本一致性通过
  • 真机复验:投影带上 permissions.currentValue,App 权限 Pill 与菜单权限项正常显示;/permission workspace-write 返回 success,档位随之切换

配套

需要客户端 dsh-companion ≥ 2.2.45 才能吃到投影与权限档位。