From f3b6ad5a68574d1940844753e185897ef3b83b75 Mon Sep 17 00:00:00 2001 From: Yaojia Wang Date: Wed, 17 Jun 2026 11:18:13 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20W5=20acceptance=20=E2=80=94=20browser?= =?UTF-8?q?=20smoke=20(F1/F2/F3/F8)=20+=20log=20v0.1=20status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 7/9 acceptance criteria auto-verified: F1/F2/F3/F8 via headless browser (xterm renders, echo round-trips, exit prompt, resize survives), F5/F6/F9 via integration tests. F4 (LAN) + F7 (phone keybar) need physical devices -> user. gitignore .gstack/. --- .gitignore | 1 + docs/PROGRESS_LOG.md | 37 +++++++++++++++++++++++++------------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 238d683..55e24d3 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ npm-debug.log* # test coverage coverage/ +.gstack/ diff --git a/docs/PROGRESS_LOG.md b/docs/PROGRESS_LOG.md index b481357..78814ea 100644 --- a/docs/PROGRESS_LOG.md +++ b/docs/PROGRESS_LOG.md @@ -24,12 +24,11 @@ > 新会话读到的第一块。保持准确,只描述"此刻"。 -- **Wave**: W0 ✓ · W1 ✓ · **W2/W3/W4 ✓**(T12 session · T13 manager · T14 server · T15 集成)→ 下一步 **W5 验收 + 收尾** -- **进度**: **15/21 任务 · 187 测试全绿 · 真 PTY 端到端已验证**(集成 ⑤⑥ sandbox-off 6/6:attach→output + 重连回放 F5/F6 含 CJK/ANSI)。产品功能完整。 -- **任务**: W5 = T16–T20 验收(F1–F9,多数需**真浏览器/真机**)+ T21(orchestrator:安全核对 + README + LOG 收尾)。 - 已由集成测试覆盖的:**F9**(①②坏Origin/路径)、**F5/F6**(⑤⑥回放)、**F8 部分**(④exit)。需真机的:F1–F4、F7。 -- **下一步**: orchestrator 做 T21(README+安全),并对 F1–F3 尝试无头浏览器 smoke;F4(局域网)/F7(手机)交用户真机验。 -- **阻塞**: 无。 +- **Wave**: **W0–W5 基本完成**。v0.1 功能完整、测试与真机浏览器验证通过。仅剩 2 项需用户真设备。 +- **进度**: **20/21 任务**(T19 待真手机)· **187 自动化测试全绿** · 真 PTY 端到端验证 · **真浏览器 smoke 通过**。 +- **验收 F1–F9**: ✅ F1/F2(浏览器 smoke:渲染+输入输出+全彩)· ✅ F3(resize 无错)· ⬜ **F4 需局域网真机** · ✅ F5/F6(集成 ⑤⑥ 回放 CJK/ANSI)· ⬜ **F7 需真手机**(软键盘栏)· ✅ F8(浏览器 exit→重连提示)· ✅ F9(集成+curl 401)。 +- **下一步(交用户)**: 真手机/另一台电脑开 `http://<你IP>:3000` 实测 **F4**(局域网可用)与 **F7**(Esc/Shift+Tab/方向键等触摸键生效)。 +- **阻塞**: 无(F4/F7 非阻塞,属需物理设备的人工验收)。 - **次要 tech-debt**: main.ts 1 处 `@ts-ignore`(CSS import);未来加 `*.css` d.ts。 - **最后更新**: 2026-06-17 @@ -57,12 +56,12 @@ | T13 | W3 | `session/manager.ts` | `[x]` | 6/6 | 2026-06-16 | | T14 | W4 | `server.ts` 接线 | `[x]` | 6/6 | 2026-06-17 | | T15 | W4 | 集成 / E2E 测试 | `[x]` | 2/2 | 2026-06-17 | -| T16 | W5 | 验收 F1–F3(终端/TUI/resize) | `[ ]` | 0/3 | — | -| T17 | W5 | 验收 F4+F9(LAN/Origin) | `[ ]` | 0/2 | — | -| T18 | W5 | 验收 F5+F6(保活/回放) | `[ ]` | 0/2 | — | -| T19 | W5 | 验收 F7(移动键栏) | `[ ]` | 0/1 | — | -| T20 | W5 | 验收 F8(退出处理) | `[ ]` | 0/2 | — | -| T21 | W5 | 安全核对 + README + LOG 收尾 | `[ ]` | 0/3 | — | +| T16 | W5 | 验收 F1–F3(终端/TUI/resize) | `[x]` | 3/3 | 2026-06-17 | +| T17 | W5 | 验收 F4+F9(LAN/Origin) | `[~]` | 1/2 | 2026-06-17 | +| T18 | W5 | 验收 F5+F6(保活/回放) | `[x]` | 2/2 | 2026-06-17 | +| T19 | W5 | 验收 F7(移动键栏) | `[ ]` | 0/1 | 需真机 | +| T20 | W5 | 验收 F8(退出处理) | `[x]` | 2/2 | 2026-06-17 | +| T21 | W5 | 安全核对 + README + LOG 收尾 | `[x]` | 3/3 | 2026-06-17 | --- @@ -121,6 +120,20 @@ - **遗留 / 待办**: 无(原前端打包待决项已解决,见下补记)。 - **commit**: `b126cf0` +### 2026-06-17 · W5 — 验收 + 收尾(T16–T21) + +- **状态**: T16 ✅ · T17 部分(F9✅/F4 待真机)· T18 ✅ · T19 待真机 · T20 ✅ · T21 ✅ +- **T21**(orchestrator):写 `README.md`(install/run/config/security);安全自查——无硬编码 secret(grep 空)、Origin+路径+maxPayload 校验已接线(server.ts 确认)、无 eval/exec、input 原样透传给 PTY(byte-shuttle 设计意图);`npm run build` → `dist/server.js` 可产出。 +- **F1/F2/F3/F8 浏览器 smoke**(关沙箱起 server + gstack browse 无头 Chromium): + · 加载 http://127.0.0.1:38080 → **.xterm 挂载、0 console error、WS 连上、彩色状态行 + 真 zsh 彩色提示**(F1/F2)。 + · 聚焦 `.xterm-helper-textarea` 输入 `echo hello-webterm` → 回显 + 输出 `hello-webterm`(**输入→WS→PTY→shell→输出→xterm 全链路**)。截图 /tmp/webterm-smoke2.png。 + · 输入 `exit` → 终端显示 "Process exited code=0 Press Enter to reconnect…"(F8)。 + · 改 viewport(F3)→ 终端存活、无 console error。 + · curl 复核:GET / 200、/build/main.js 200、坏 Origin upgrade → 401。 +- **决策**: F4(局域网多设备)、F7(手机软键盘栏)需物理设备,无法在本机无头验证 → 交用户真机。其余 7/9 F 项已自动化验证。 +- **遗留**: T19(F7)待真手机;F4 待局域网真机;main.ts 的 css `@ts-ignore` 小债。 +- **commit**: `81585ad`(README/安全)+ 本条 LOG + ### 2026-06-17 · W2/W3/W4 — 会话核心 + 集成(T12/T13/T14/T15) - **状态**: `[x]` ALL DONE · 串行(各有依赖),单 builder/任务