e2e-http-verifylisted
Install: claude install-skill snowzhaozhj/claude-devtools-rs
# e2e-http-verify
修 backend / Svelte 组件 / IPC 字段消费等**任何行为类**改动后,在真浏览器跑真后端看一遍再宣告完成。unit test + mockIPC 只验单点,端到端只能这里验。
**只在 dev 调试场景用**(不影响 release bundle)。用户桌面 Tauri app 走 IPC 不走 HTTP server,本 skill 验证通过 ≠ 用户桌面端自动修好——结尾要明确告诉用户重启 `cargo tauri dev` 才能看到修复。
## 何时用 / 何时跳
| 用 | 跳 |
|---|---|
| backend 改 IPC 字段 / cursor / cache / metadata / list_sessions / SSE | 改 Tauri 专属 API(通知 / 托盘 / setBadgeCount)—— HTTP transport 不暴露 |
| 前端改 sidebar / Sessions 列表 / SessionDetail / store 状态机 / IPC 消费 | 纯样式微调(颜色 / 间距)—— vitest snapshot + 人眼看截图够了 |
| 用户报 sidebar / 切 group / 切 worktree / 列表卡顿 | 改 nothing 只是"看看效果" → 直接 chrome-devtools mcp 打开桌面 app |
| PR push 前 final smoke | 改的是只在 Tauri runtime 用的 IPC(HTTP 路由没暴露)|
## Quick Start
```bash
# 起 cdt-cli + vite + 健康检查(首次 build 30-90s,incremental ~10s)
bash .claude/skills/e2e-http-verify/scripts/start.sh
# 收尾(不动桌面 Tauri app)
bash .claude/skills/e2e-http-verify/scripts/stop.sh
```
`start.sh` 把"端口归属判定 / cdt-cli 起 / vite 起 / proxy 健康检查"封进去。看到 `✓ Ready` 才进 Step 2。
**复用判断**(上一轮没收尾 + 代码没改时跳冷启):
```bash
lsof -iTCP:3456 -sTCP:LISTEN && lsof -iTCP:5173 -sTCP:LISTEN && \
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:5173/api/projects
# 三件都 OK + 200 → 直接跳 Step 2/3 省 10s
```
**改了代码必须**:
- 改 `vite.config.ts` → `pkill -f vite` 重起(vite config 不 hot reload)
- 改 backend Rust → `pkill -f 'target/(debug|release)/cdt( |$)'` + 重跑 start.sh(否则跑旧 binary)
- 改 Svelte → vite HMR 自动;reload 浏览器即可
- 改 main.ts / transport.ts → 浏览器 full reload(`navigate type=relo