docs: log v0.3 H2/H4 Claude status feature
This commit is contained in:
@@ -121,6 +121,23 @@
|
|||||||
- **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。
|
- **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。
|
||||||
- **commit**: `b126cf0`
|
- **commit**: `b126cf0`
|
||||||
|
|
||||||
|
### 2026-06-17 · v0.3 Step 2 — H2/H4 Claude 状态感知(headline)
|
||||||
|
|
||||||
|
- **状态**: `[x]` DONE(分支 `v0.3-cockpit`)。**端到端真浏览器验证通过**。
|
||||||
|
- **机制**: Claude Code hooks → 服务端 `/hook` 侧信道 → WS `status` 帧 → 标签角标实时更新。架构演进:服务端获得 hook 侧信道(终端流仍是 byte-shuttle)。
|
||||||
|
- **H2 服务端**(commit `a411c89`):
|
||||||
|
- types:`ClaudeStatus` + ServerMessage `status`;Session.claudeStatus;manager.handleHookEvent。
|
||||||
|
- session:spawn env 注入 `WEBTERM_SESSION`(哪个标签)+ `WEBTERM_HOOK_URL`(本机 /hook)。
|
||||||
|
- `src/http/hook.ts` 纯映射(PreToolUse→working、PermissionRequest/permission_prompt→waiting、Stop/idle_prompt→idle);6 单测。
|
||||||
|
- server:`POST /hook`(仅 loopback,express.json 64kb)→ 推 status。**顺带修真 bug**:`closeIdleConnections()` 让 hook keep-alive 空闲连接不再卡住 close()/SIGTERM。
|
||||||
|
- 集成 ⑦(真 PTY):attach → POST /hook → ws 收到 status(注意测试要在 fetch 前挂监听,推送是同步的)。
|
||||||
|
- **H4 前端**(commit `c81cebd`):
|
||||||
|
- terminal-session 处理 status → claudeStatus + onClaudeStatus。
|
||||||
|
- tabs:每标签 Claude 角标(⚙工作/⏳等批准/✓空闲);**非活动 + waiting 标签加琥珀高亮 + 浏览器通知**(首次切换请求权限)。
|
||||||
|
- `scripts/setup-hooks.mjs` + `npm run setup-hooks`:幂等装/卸 ~/.claude/settings.json 的 command hook(内联 curl,web-terminal 外是 no-op),自动备份。
|
||||||
|
- **验证**: 205 测试全绿;浏览器实测 PermissionRequest→⏳、PreToolUse→⚙、Stop→✓;非活动 waiting 标签琥珀+⏳(截图 /tmp/v03-status.png)。0 console error。
|
||||||
|
- **commit**: `a411c89`(H2 服务端)、`c81cebd`(H4 前端+脚本)
|
||||||
|
|
||||||
### 2026-06-17 · v0.3 Step 1 — 前端快赢(键栏/搜索/链接/QR/PWA)
|
### 2026-06-17 · v0.3 Step 1 — 前端快赢(键栏/搜索/链接/QR/PWA)
|
||||||
|
|
||||||
- **状态**: `[x]` DONE(分支 `v0.3-cockpit`;纯前端,无服务端改动)
|
- **状态**: `[x]` DONE(分支 `v0.3-cockpit`;纯前端,无服务端改动)
|
||||||
|
|||||||
Reference in New Issue
Block a user