diff --git a/docs/PROGRESS_LOG.md b/docs/PROGRESS_LOG.md index 019e43d..0eb2f1d 100644 --- a/docs/PROGRESS_LOG.md +++ b/docs/PROGRESS_LOG.md @@ -24,11 +24,11 @@ > 新会话读到的第一块。保持准确,只描述"此刻"。 -- **Wave**: W0(T1 ✓ T2 ✓)→ **W1 可放开并行** + T3 -- **任务**: 下一步派 **W1 批次**(单批 ~3–5 个,worktree 隔离):T3 mock + T4 config + T5 protocol + - T6 ring-buffer + T7 origin(再一批 T8–T11 前端)。dispatch prompt 见 DISPATCH.md。 -- **下一步**: `git commit` 本次(T2)后,按 DISPATCH 派第一批 W1 builder;每批返回后 orchestrator 写 LOG。 -- **阻塞**: 无。`src/types.ts` 已冻结,所有 W1 任务可只读 import。 +- **Wave**: W0 ✓ · W1 后端 ✓(T3/T4/T5/T6/T7,128 测试全绿)→ 下一步 **W1 前端批次 T8–T11** +- **任务**: 派第二批 W1(前端,parallel):T8 index.html · T9 style.css · T10 keybar · T11 main.ts。 + 之后 W2 **T12 session**(opus,依赖 T6 ring-buffer + T3 mock,均已就绪)。 +- **下一步**: 按 DISPATCH 派 T8–T11(general-purpose + §4 模型;**注**自定义 agent 需重启会话才加载,本会话用 general-purpose 内联角色)。 +- **阻塞**: 无。 - **最后更新**: 2026-06-16 --- @@ -42,11 +42,11 @@ |------|------|------|------|------------------|----------| | T1 | W0 | 脚手架 + 装齐依赖 | `[x]` | 5/5 | 2026-06-16 | | T2 | W0 | `src/types.ts` 共享契约(冻结源) | `[x]` | 8/8 | 2026-06-16 | -| T3 | W0 | mock IPty 测试替身 | `[ ]` | 0/2 | — | -| T4 | W1 | `config.ts` | `[ ]` | 0/5 | — | -| T5 | W1 | `protocol.ts` | `[ ]` | 0/4 | — | -| T6 | W1 | `ring-buffer.ts` | `[ ]` | 0/4 | — | -| T7 | W1 | `http/origin.ts` | `[ ]` | 0/3 | — | +| T3 | W0 | mock IPty 测试替身 | `[x]` | 2/2 | 2026-06-16 | +| T4 | W1 | `config.ts` | `[x]` | 5/5 | 2026-06-16 | +| T5 | W1 | `protocol.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 | | T8 | W1 | `public/index.html` | `[ ]` | 0/1 | — | | T9 | W1 | `public/style.css` | `[ ]` | 0/1 | — | | T10 | W1 | `public/keybar.ts` | `[ ]` | 0/4 | — | @@ -119,6 +119,23 @@ - **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。 - **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 `(官方文件分区法,替代 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 前端 T8–T11 待派;之后 T12 session(mock+ring-buffer 已就绪)。 +- **commit**: `0fa0b69` + ### 2026-06-16 · T2 冻结共享类型契约 src/types.ts - **状态**: `[x]` DONE