docs: log W1 frontend batch (T8-T11 done, 141 tests)

This commit is contained in:
Yaojia Wang
2026-06-16 18:49:01 +02:00
parent 326d3472dd
commit c27aaa1ac2

View File

@@ -24,11 +24,11 @@
> 新会话读到的第一块。保持准确,只描述"此刻"。 > 新会话读到的第一块。保持准确,只描述"此刻"。
- **Wave**: W0 ✓ · W1 后端 ✓(T3/T4/T5/T6/T7,128 测试全绿)→ 下一步 **W1 前端批次 T8T11** - **Wave**: W0 ✓ · **W1 全部 ✓**(后端 T3T7 + 前端 T8T11,**141 测试全绿**,前后端 tsc 通过,esbuild 打包通过)→ 下一步 **W2 T12**
- **任务**: 派第二批 W1(前端,parallel):T8 index.html · T9 style.css · T10 keybar · T11 main.ts - **任务**: **T12 `session/session.ts`**(opus,最硬:PTY 生命周期 detach/onExit/L1/L4/M5)。依赖已就绪:T6 ring-buffer、T3 mock IPty。串行,单个 builder
之后 W2 **T12 session**(opus,依赖 T6 ring-buffer + T3 mock,均已就绪) - **下一步**: 派 T12(DISPATCH.md 有 prompt);完成后 W3 T13 manager → W4 T14/15 集成
- **下一步**: 按 DISPATCH 派 T8T11(general-purpose + §4 模型;**注**自定义 agent 需重启会话才加载,本会话用 general-purpose 内联角色)。
- **阻塞**: 无。 - **阻塞**: 无。
- **次要 tech-debt**: main.ts 用了 1 处 `@ts-ignore` 压制 CSS import 诊断;未来可加 `public/*.css``declare module` d.ts 去掉它(非阻塞)。
- **最后更新**: 2026-06-16 - **最后更新**: 2026-06-16
--- ---
@@ -47,10 +47,10 @@
| T5 | W1 | `protocol.ts` | `[x]` | 4/4 | 2026-06-16 | | T5 | W1 | `protocol.ts` | `[x]` | 4/4 | 2026-06-16 |
| T6 | W1 | `ring-buffer.ts` | `[x]` | 4/4 | 2026-06-16 | | T6 | W1 | `ring-buffer.ts` | `[x]` | 4/4 | 2026-06-16 |
| T7 | W1 | `http/origin.ts` | `[x]` | 3/3 | 2026-06-16 | | T7 | W1 | `http/origin.ts` | `[x]` | 3/3 | 2026-06-16 |
| T8 | W1 | `public/index.html` | `[ ]` | 0/1 | | | T8 | W1 | `public/index.html` | `[x]` | 1/1 | 2026-06-16 |
| T9 | W1 | `public/style.css` | `[ ]` | 0/1 | | | T9 | W1 | `public/style.css` | `[x]` | 1/1 | 2026-06-16 |
| T10 | W1 | `public/keybar.ts` | `[ ]` | 0/4 | | | T10 | W1 | `public/keybar.ts` | `[x]` | 4/4 | 2026-06-16 |
| T11 | W1 | `public/main.ts` | `[ ]` | 0/6 | | | T11 | W1 | `public/main.ts` | `[x]` | 6/6 | 2026-06-16 |
| T12 | W2 | `session/session.ts` | `[ ]` | 0/7 | — | | T12 | W2 | `session/session.ts` | `[ ]` | 0/7 | — |
| T13 | W3 | `session/manager.ts` | `[ ]` | 0/6 | — | | T13 | W3 | `session/manager.ts` | `[ ]` | 0/6 | — |
| T14 | W4 | `server.ts` 接线 | `[ ]` | 0/6 | — | | T14 | W4 | `server.ts` 接线 | `[ ]` | 0/6 | — |
@@ -119,6 +119,20 @@
- **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。 - **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。
- **commit**: `b126cf0` - **commit**: `b126cf0`
### 2026-06-16 · W1 前端批次(T8/T9/T10/T11)
- **状态**: `[x]` ALL DONE
- **派活方式**: 因 T11 import T10 的 mountKeybar 且验收是整目录 tsc.web,分两步:**先并行 T8+T9+T10(haiku),后 T11(sonnet)**。general-purpose 内联角色,共享树 + 文件不交叉。
- **改动**:
- **T8** `public/index.html`:#term/#keybar、viewport、`<script type=module src=./build/main.js>` + link ./build/main.css 与 ./style.css(按 §1 约定)。
- **T9** `public/style.css`:全屏终端、键栏 fixed 底部 flex、**>768px 隐藏**、深色;不碰 xterm 内部样式。
- **T10** `public/keybar.ts`(+ test):KEY_MAP 纯数据(Esc/Shift+Tab/方向/Enter=\r/Ctrl+C/Tab)+ mountKeybar(onSend) touchstart→onSend+preventDefault。13 测试。
- **T11** `public/main.ts`:esbuild 入口(import xterm css);xterm+FitAddon;WS scheme 随协议(M6);attach 首帧带 localStorage sessionId;onData→input、output→write、exit→ANSI 提示按回车重连;ResizeObserver 防抖 resize;指数退避重连≤30s;mountKeybar 接 ws.send;**无 console.log**(状态写终端)。
- **验证(orchestrator 独立复核)**: backend `tsc --noEmit` ✓;frontend `tsc -p tsconfig.web.json` ✓;`npm test` **6 文件 / 141 测试全绿**(新增 keybar 13);**`npm run build:web` esbuild 打包成功**(main.js 430kb + main.css 6kb);build/ 已 gitignore 未入库。
- **决策 / 偏离**: T11 用 1 处 `@ts-ignore` 压 CSS import(Owns 仅 main.ts,无法另建 d.ts;记为 tech-debt);exit 后按回车 clear sessionId 再新建(契合 L1:已退出会话由服务端回放+补发 exit,前端不 reattach)。
- **遗留**: 上述 css d.ts 小债;前端真实浏览器行为留 W5(T16T20)实测。
- **commit**: `326d347`
### 2026-06-16 · W1 后端批次(T3/T4/T5/T6/T7)— 5 个并行 builder ### 2026-06-16 · W1 后端批次(T3/T4/T5/T6/T7)— 5 个并行 builder
- **状态**: `[x]` ALL DONE - **状态**: `[x]` ALL DONE