docs: log W1 backend batch (T3-T7 done, 128 tests)

This commit is contained in:
Yaojia Wang
2026-06-16 08:10:38 +02:00
parent 0fa0b69ce9
commit de8c366ab2

View File

@@ -24,11 +24,11 @@
> 新会话读到的第一块。保持准确,只描述"此刻"。 > 新会话读到的第一块。保持准确,只描述"此刻"。
- **Wave**: W0(T1 ✓ T2 ✓)→ **W1 可放开并行** + T3 - **Wave**: W0 ✓ · W1 后端 ✓(T3/T4/T5/T6/T7,128 测试全绿)→ 下一步 **W1 前端批次 T8T11**
- **任务**: 下一步派 **W1 批次**(单批 ~35 个,worktree 隔离):T3 mock + T4 config + T5 protocol + - **任务**: 派第二批 W1(前端,parallel):T8 index.html · T9 style.css · T10 keybar · T11 main.ts。
T6 ring-buffer + T7 origin(再一批 T8T11 前端)。dispatch prompt 见 DISPATCH.md 之后 W2 **T12 session**(opus,依赖 T6 ring-buffer + T3 mock,均已就绪)
- **下一步**: `git commit` 本次(T2)后,按 DISPATCH 派第一批 W1 builder;每批返回后 orchestrator 写 LOG - **下一步**: 按 DISPATCH 派 T8T11(general-purpose + §4 模型;**注**自定义 agent 需重启会话才加载,本会话用 general-purpose 内联角色)
- **阻塞**: 无。`src/types.ts` 已冻结,所有 W1 任务可只读 import。 - **阻塞**: 无。
- **最后更新**: 2026-06-16 - **最后更新**: 2026-06-16
--- ---
@@ -42,11 +42,11 @@
|------|------|------|------|------------------|----------| |------|------|------|------|------------------|----------|
| T1 | W0 | 脚手架 + 装齐依赖 | `[x]` | 5/5 | 2026-06-16 | | T1 | W0 | 脚手架 + 装齐依赖 | `[x]` | 5/5 | 2026-06-16 |
| T2 | W0 | `src/types.ts` 共享契约(冻结源) | `[x]` | 8/8 | 2026-06-16 | | T2 | W0 | `src/types.ts` 共享契约(冻结源) | `[x]` | 8/8 | 2026-06-16 |
| T3 | W0 | mock IPty 测试替身 | `[ ]` | 0/2 | | | T3 | W0 | mock IPty 测试替身 | `[x]` | 2/2 | 2026-06-16 |
| T4 | W1 | `config.ts` | `[ ]` | 0/5 | | | T4 | W1 | `config.ts` | `[x]` | 5/5 | 2026-06-16 |
| T5 | W1 | `protocol.ts` | `[ ]` | 0/4 | | | T5 | W1 | `protocol.ts` | `[x]` | 4/4 | 2026-06-16 |
| T6 | W1 | `ring-buffer.ts` | `[ ]` | 0/4 | | | T6 | W1 | `ring-buffer.ts` | `[x]` | 4/4 | 2026-06-16 |
| T7 | W1 | `http/origin.ts` | `[ ]` | 0/3 | | | T7 | W1 | `http/origin.ts` | `[x]` | 3/3 | 2026-06-16 |
| T8 | W1 | `public/index.html` | `[ ]` | 0/1 | — | | T8 | W1 | `public/index.html` | `[ ]` | 0/1 | — |
| T9 | W1 | `public/style.css` | `[ ]` | 0/1 | — | | T9 | W1 | `public/style.css` | `[ ]` | 0/1 | — |
| T10 | W1 | `public/keybar.ts` | `[ ]` | 0/4 | — | | T10 | W1 | `public/keybar.ts` | `[ ]` | 0/4 | — |
@@ -119,6 +119,23 @@
- **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。 - **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。
- **commit**: `b126cf0` - **commit**: `b126cf0`
### 2026-06-16 · W1 后端批次(T3/T4/T5/T6/T7)— 5 个并行 builder
- **状态**: `[x]` ALL DONE
- **派活方式**: 5 个 `general-purpose` subagent 并行(自定义 module-builder agent 需重启会话才加载,故本会话内联角色),
共享工作树 + **文件所有权严格不交叉** + scoped `vitest run <name>`(官方文件分区法,替代 worktree;合并即 commit)。模型按 §4。
- **改动**(各 agent 仅在 Owns 内):
- **T3** `test/helpers/mock-pty.ts`(+ smoke test):IPty 替身,`emitData`/`emitExit` 手动触发、记录 write/resize/kill、onData/onExit 返回 IDisposable。
- **T4** `src/config.ts`(+ test):`loadConfig(EnvLike)`;M1 origins 由 `os.networkInterfaces()` 推导(含 localhost,**剔除 0.0.0.0/internal**,http+https),wsPath 默认 /term,非法值 fail-fast,`Object.freeze`
- **T5** `src/protocol.ts`(+ test):`SESSION_ID_RE`(UUID v4)、`parseClientMessage`(永不抛,全分支校验,M7 拒 `abc123`)、`serialize`
- **T6** `src/session/ring-buffer.ts`(+ test):M2 按真实字节(Buffer)计量、按 chunk 边界淘汰、不切碎 UTF-8/ANSI、snapshot 补 `\x1b[0m`
- **T7** `src/http/origin.ts`(+ test):用 WHATWG `URL` 比 protocol+host+port,undefined/解析失败拒绝。
- **验证(orchestrator 独立复核,非仅信 agent)**: `npx tsc -p tsconfig.json --noEmit` PASS;`npm test`(全量)
**5 文件 / 128 测试全绿**(T4 32 + T5 60 + T6 15 + T7 12 + T3 9)。
- **决策 / 偏离**: 无源码偏离。流程上:本批用 general-purpose 内联角色(见上)。T6 对"单块 > 容量"按 M2"绝不切碎"保留整块(测试固化),属忠实落地。
- **遗留 / 待办**: W1 前端 T8T11 待派;之后 T12 session(mock+ring-buffer 已就绪)。
- **commit**: `0fa0b69`
### 2026-06-16 · T2 冻结共享类型契约 src/types.ts ### 2026-06-16 · T2 冻结共享类型契约 src/types.ts
- **状态**: `[x]` DONE - **状态**: `[x]` DONE