# [recycle] MNote 浏览器 QA 实测发现 2026-07-08 - **状态**:`process` - **来源**:Agent Board Pi Taskflow 实测(MNote 浏览器 QA → Bug 文档 20260708-130503) - **复现环境**: - MNote Web:`http://127.0.0.1:3000`,Rust SSR + leptos-tiptap island - 后端:control-plane libSQL local - 浏览器:Playwright Chromium headless,viewport 1280×800 - 登录:测试账号 `mnote.e2e@example.com`,authMode=controlPlaneSession - 工作区:`/mnt/Data1T/Mnote_data/users/mnote-e2e/workspaces/my-space` --- ## 1. 总体状态 | 检查项 | 结果 | 详情 | |--------|------|------| | API Gateway /health | ✅ PASS | 200 | | Auth 页面加载 | ✅ PASS | 518ms | | 测试账号快速登录 | ✅ PASS | 跳转到 `/` | | Workspace 壳渲染 | ✅ PASS | sidebar / topbar / shell 均可见 | | Page AI / OpenHub 页面 | ✅ PASS | 130ms 加载,AI 输入框可见 | | Console 错误 | ✅ PASS | 0 errors | | 业务网络错误 | ✅ PASS | 0 real errors(SSE abort 为预期导航行为) | --- ## 2. 发现的问题 ### 2.1 `file-order.json` 页面排序索引为空 - **严重程度**:medium - **实际结果**:`/mnt/Data1T/Mnote_data/users/mnote-e2e/workspaces/my-space/.mnote/file-order.json` 内容为 `{"parents": {}, "version": 1}`,无任何页面条目。 - **预期结果**:工作区中存在有效页面目录(`新页面054900`、`新页面145827`、`新页面233155`、`有机合成中的保护基` 等),每个目录下均有 `.md` 正文文件,file-order.json 应包含这些页面的排序条目。 - **证据**: ```bash $ cat .mnote/file-order.json {"parents": {}, "version": 1} $ ls workspace/ 新页面054900/ 新页面145827/ 新页面233155/ 有机合成中的保护基/ ``` - **影响范围**:页面树(Page Tree)排序可能不正确,新建页面可能无法正确出现在侧边栏页面列表中。 - **建议修复方向**:检查页面创建/重命名/移动流程是否正确更新 `file-order.json`;检查 Pi lab 批量创建页面的流程是否绕过了正常的 metadata 写入路径。 ### 2.2 `/api/tree/page-tree` 端点返回 404 - **严重程度**:low - **实际结果**:`GET /api/tree/page-tree` 返回 HTTP 404。 - **预期结果**:应返回 200 或 401(需要认证),而非 404。 - **证据**: ```bash $ curl -s -w "\nHTTP: %{http_code}" http://127.0.0.1:3000/api/tree/page-tree HTTP: 404 ``` - **影响范围**:直接调用此 API 的外部客户端或测试脚本会失败。前端使用 `GET /api/tree/view-state?treeKind=pagetree`(需要认证,已正常工作),当前不受影响。 - **建议修复方向**:确认 `/api/tree/page-tree` 是否为已废弃路由;若是,应在路由注册时返回 410 Gone 或转发到 view-state;若不是,应修复路由注册。 ### 2.3 侧边栏中无 `a[href*="/document/"]` 格式的文档链接 - **严重程度**:low(待确认是否为预期行为) - **实际结果**:Playwright selector `a[href*="/document/"]` 在侧边栏中找到 0 个元素。 - **预期结果**:侧边栏页面树中的页面应可点击跳转到文档页。 - **证据**:QA 脚本 `page.locator('a[href*="/document/"]').count()` 返回 0。 - **影响范围**:如果页面确实使用不同 URL 模式(如 `/page/...` 或前端路由),则无影响;否则侧边栏页面无法点击跳转。 - **建议修复方向**:确认当前侧边栏页面树使用的链接格式;如果是前端 SPA 路由(如 `data-page-id` + click handler),则更新测试 selector;如果是 bug,修复链接生成。 ### 2.4 Dev 模式 hot-reload 轮询累积 - **严重程度**:low(仅 dev 模式) - **实际结果**:多个 `GET /api/dev/hot-reload` 请求处于 pending 状态,随时间累积。 - **预期结果**:hot-reload 连接应复用或及时关闭,不应无限累积。 - **证据**:网络追踪显示 20+ 个 pending 的 `GET /api/dev/hot-reload` 请求。 - **影响范围**:仅影响开发模式下的浏览器性能和内存占用,不影响生产环境。 - **建议修复方向**:检查 hot-reload EventSource/WebSocket 连接的生命周期管理,确保旧连接在页面导航或重连时正确关闭。 --- ## 3. 已验证无问题的路径 - Auth 登录流程:正常 - Workspace 壳渲染:正常 - Page AI / OpenHub 页面:正常加载 - API `/api/auth/session`:正常 - API `/api/tree/view-state`(需认证):正常 - API `/api/tree/projections/file/children`(需认证):正常 - SSE `/api/local-folder/events`:正常建立连接 - API `/api/page-ai/pi/status`:正常 - API `/api/ai-settings/effective`:正常 --- ## 4. 测试脚本 QA 脚本位于: - `/tmp/mnote-browser-qa-20260708.js`(基础检查) - `/tmp/mnote-browser-qa-20260708-detail.js`(详细检查) - `/tmp/mnote-browser-qa-comprehensive.js`(综合检查) - `/tmp/mnote-network-trace.js`(网络追踪) 结果文件: - `/tmp/mnote-browser-qa-20260708/result.json` - `/tmp/mnote-browser-qa-20260708/result-detail.json` - `/tmp/mnote-browser-qa-20260708/result-final.json` 截图: - `/tmp/mnote-browser-qa-20260708/01-main-page.png`(Auth 页) - `/tmp/mnote-browser-qa-20260708/02-after-login.png`(登录后 workspace) - `/tmp/mnote-browser-qa-20260708/05-post-login-workspace.png`(workspace 页)