Skip to content

v0.2.0 — read-only HTTP snapshot endpoint

Choose a tag to compare

@Ray1270 Ray1270 released this 04 Oct 09:00
· 14 commits to main since this release

本版新增:只读 HTTP 快照端点

供 Web GUI 面板读取当前会话的任务栈:

GET /api/dsh-task-stack/snapshot?sessionId=<id>&cwd=<绝对路径>

返回 depth / top / stack / history / warnings。

情况 响应
正常 200 + JSON,cache-control: no-store
未认证(无浏览器 cookie)/ Host 不受信 401 / 403
组合里没有 connection 服务(无法鉴权) 503,失败关闭
缺 sessionId、cwd 非绝对路径 400
非 GET/HEAD 405 + Allow
会话没有状态文件 200,空栈(不是 404)

安全

raw WebServer 路由不继承 Connection 的鉴权,因此端点自行调用 connection.requestRejection(req)——与第一方 API 同一道 Host/Origin + 浏览器 cookie 校验。组合里没有 connection 时失败关闭返回 503,而不是无鉴权放行。

只读

端点只暴露 getSnapshot;关闭任务仍走 focus_complete 或 /focus。写入面需要单独的安全设计,不在本版范围内。

破坏性变更

无。三个工具、/focus 命令、配置字段、状态文件格式都没有变化,从 0.1.x 升级不影响现有任务栈数据。

验证

  • 发布闸门 11 步全绿,共 80 项断言
  • 新增 scripts/test-http.mjs:挂载真实 @deepseek-ai/dsh-host-webserver 到 OS 分配的端口,用真实 socket 驱动,覆盖 fence 双向、缺 connection 返回 503、卸载时撤销路由
  • 真实宿主实测:带浏览器 cookie → 200 且与磁盘状态逐项一致;匿名 → 401;被拒 Host → 403

安装

dsh plugin --profile <名称> add @ray1270/dsh-task-stack

注:npm 上的 0.2.0 是这个 tag 指向的内容(shasum 130e8109a3259781ba8a5213697f661790ba012f,17 个文件)。