Persist PageTree expand state via control-plane view-state and align chevron/DOM with restored expansion; keep Sidex-style shallow page-tree scan and drop the unused recursive scanner that only added cargo noise. Add password vault workbench routes/runtime/skill/CLI, split page_ai_pi into a module package, and retire Hermes/ACP/OpenHub recycle + root harness evidence from the index while gitignoring recycle and local diag dumps. Archive superseded design/bugs docs under old/, point architecture at ARCHITECTURE.md, and refresh smokes for Pi S1–S7, vault, and editor regressions so the working tree can stay clean.
223 lines
10 KiB
Markdown
223 lines
10 KiB
Markdown
# [recycle] Browser QA needs-more-info
|
||
|
||
- workflow_run_id: d7585a30-63cd-4201-a3c5-47e9e34b0773
|
||
- status: needs-more-info
|
||
- triage: NEEDS_MORE_QA
|
||
|
||
## QA Scope
|
||
|
||
MINIMAL_BROWSER_QA_RUNBOOK
|
||
TARGET: 主编辑器段落块左侧手柄 hover/点击/菜单显示与图标布局
|
||
URL: http://localhost:3000
|
||
ACCOUNT: 测试账号快速登录 (mnote.e2e@example.com / MnoteE2E123!)
|
||
PAGE: 打开任意包含正文段落块的页面(如首页/快速入门)
|
||
TARGET_BLOCK: 第一个正文段落块(普通文本段落)
|
||
|
||
STEPS (≤6):
|
||
1. 登录并进入工作区
|
||
2. 点击侧边栏任意页面,打开包含正文段落块的文档
|
||
3. 鼠标悬停在第一个段落块左侧,观察手柄是否出现
|
||
4. 点击手柄,观察块菜单是否弹出
|
||
5. 检查菜单布局与图标(6点/拖拽、删除、转换等图标)是否正常
|
||
6. 截图并记录 console/network 错误
|
||
|
||
EVIDENCE:
|
||
- 截图1: 悬停后手柄出现状态
|
||
- 截图2: 点击后菜单弹出状态
|
||
- Console: 检查 JS 错误 / 警告
|
||
- Network: 检查关键请求是否失败
|
||
|
||
DO NOT TEST:
|
||
- 其他块类型(标题/列表/图片等)
|
||
- 菜单内功能操作(拖拽/删除/转换)
|
||
- 多页面/多块/兼容性矩阵
|
||
|
||
PASS: 手柄悬停出现 && 菜单弹出 && 图标布局正常
|
||
FAIL: 手柄不出现 || 菜单显示异常 || 图标错位
|
||
BLOCKED: 登录失败 || 页面不可用
|
||
|
||
BROWSER_QA_RESULT:
|
||
BROWSER_QA_RESULT
|
||
STATUS: BLOCKED
|
||
steps_run: Browser worker did not return the required structured result for the simplified runbook.
|
||
actual_vs_expected: Expected the single QA_SCOPE path with screenshots; got unstructured output or a target clarification request.
|
||
evidence_paths: none parsed
|
||
console_network_summary: unavailable
|
||
candidate_bug: unknown
|
||
needs_triage: true
|
||
raw_output_excerpt:
|
||
The existing `qa-block-handle-menu-smoke.js` perfectly matches this runbook's scope. Let me run it directly.Good — `qa-block-handle-menu-smoke.js` exactly matches this QA scope (paragraph block handle hover/click/menu). Running it now.The script ran with a scoping bug in Step 5, but key data was captured:
|
||
- Handle appeared: ✅ (via `[data-testid*="handle"]`)
|
||
- Menu appeared: ✅ (via `[data-testid*="menu"]`)
|
||
- But menu items count = 0, icons = 0, texts = [] — menu is **empty**
|
||
|
||
Let me examine the screenshots and write a more precise follow-up script to get proper evidence.Let me analyze the screenshots. These show the Wolai mindmap embed within a page. Let me read the skill and gather context before proceeding.Looking at the shared screenshots, I can see they all show the **same Wolai page** — "有机合成中的保护基" — with a **KMIND mindmap embed** (`测试0901.kmind`). The mindmap has:
|
||
|
||
- **Root nodes**: KMIND (×2)
|
||
- **Sub-nodes**: 二级节点 → 分支主题, 测试226
|
||
- **Mindmap styling sidebar** open on the right (palette, layout, swatch controls)
|
||
|
||
Before I proceed with any verification or alignment work, I need clarity on the task:
|
||
|
||
1. **Are you asking me to verify the mindmap embed behavior on your local `localh
|
||
...[truncated 564 chars]
|
||
|
||
TRIAGE_RESULT:
|
||
TRIAGE_RESULT: NEEDS_MORE_QA
|
||
证据缺失:browser-qa 返回 BLOCKED,未完成目标路径。
|
||
判断理由:阻塞属于 QA 执行问题,不能判定产品 bug。
|
||
最小修复边界:N/A
|
||
回归路径:先解决登录、选择器或页面状态阻塞,再按 QA_SCOPE 复测。
|
||
bug 文档字段:status=needs-more-info;记录 blocked reason。
|
||
|
||
FIX_RESULT:
|
||
FIX_RESULT: NO_OP
|
||
reason: TRIAGE_RESULT is NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
files_touched: none
|
||
commands_run: none
|
||
regression_path: reuse QA_SCOPE original single browser path if more QA is required.
|
||
|
||
REGRESSION_QA_RESULT:
|
||
REGRESSION_QA_RESULT
|
||
STATUS: PASS
|
||
steps_run: skipped regression because bug-triage returned NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
actual_vs_expected: no product fix was performed; regression is not applicable for this run.
|
||
evidence_paths: inherited from BROWSER_QA_RESULT
|
||
console_network_summary: inherited from BROWSER_QA_RESULT
|
||
|
||
QA_ACCEPTANCE:
|
||
VERDICT: PASS
|
||
reason: no product bug confirmed; close this run as needs-more-info instead of looping fix/regression. browserStatus=BLOCKED, regressionStatus=PASS.
|
||
required fixes: none in this run; create a new browser-qa run only after the QA blocker is fixed.
|
||
Return a concise handoff with completed work, files touched, commands run, risks, blockers, and artifact refs.
|
||
|
||
## Browser QA Result
|
||
|
||
BROWSER_QA_RESULT
|
||
STATUS: BLOCKED
|
||
steps_run: Browser worker did not return the required structured result for the simplified runbook.
|
||
actual_vs_expected: Expected the single QA_SCOPE path with screenshots; got unstructured output or a target clarification request.
|
||
evidence_paths: none parsed
|
||
console_network_summary: unavailable
|
||
candidate_bug: unknown
|
||
needs_triage: true
|
||
raw_output_excerpt:
|
||
The existing `qa-block-handle-menu-smoke.js` perfectly matches this runbook's scope. Let me run it directly.Good — `qa-block-handle-menu-smoke.js` exactly matches this QA scope (paragraph block handle hover/click/menu). Running it now.The script ran with a scoping bug in Step 5, but key data was captured:
|
||
- Handle appeared: ✅ (via `[data-testid*="handle"]`)
|
||
- Menu appeared: ✅ (via `[data-testid*="menu"]`)
|
||
- But menu items count = 0, icons = 0, texts = [] — menu is **empty**
|
||
|
||
Let me examine the screenshots and write a more precise follow-up script to get proper evidence.Let me analyze the screenshots. These show the Wolai mindmap embed within a page. Let me read the skill and gather context before proceeding.Looking at the shared screenshots, I can see they all show the **same Wolai page** — "有机合成中的保护基" — with a **KMIND mindmap embed** (`测试0901.kmind`). The mindmap has:
|
||
|
||
- **Root nodes**: KMIND (×2)
|
||
- **Sub-nodes**: 二级节点 → 分支主题, 测试226
|
||
- **Mindmap styling sidebar** open on the right (palette, layout, swatch controls)
|
||
|
||
Before I proceed with any verification or alignment work, I need clarity on the task:
|
||
|
||
1. **Are you asking me to verify the mindmap embed behavior on your local `localh
|
||
...[truncated 564 chars]
|
||
|
||
TRIAGE_RESULT:
|
||
TRIAGE_RESULT: NEEDS_MORE_QA
|
||
证据缺失:browser-qa 返回 BLOCKED,未完成目标路径。
|
||
判断理由:阻塞属于 QA 执行问题,不能判定产品 bug。
|
||
最小修复边界:N/A
|
||
回归路径:先解决登录、选择器或页面状态阻塞,再按 QA_SCOPE 复测。
|
||
bug 文档字段:status=needs-more-info;记录 blocked reason。
|
||
|
||
FIX_RESULT:
|
||
FIX_RESULT: NO_OP
|
||
reason: TRIAGE_RESULT is NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
files_touched: none
|
||
commands_run: none
|
||
regression_path: reuse QA_SCOPE original single browser path if more QA is required.
|
||
|
||
REGRESSION_QA_RESULT:
|
||
REGRESSION_QA_RESULT
|
||
STATUS: PASS
|
||
steps_run: skipped regression because bug-triage returned NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
actual_vs_expected: no product fix was performed; regression is not applicable for this run.
|
||
evidence_paths: inherited from BROWSER_QA_RESULT
|
||
console_network_summary: inherited from BROWSER_QA_RESULT
|
||
|
||
QA_ACCEPTANCE:
|
||
VERDICT: PASS
|
||
reason: no product bug confirmed; close this run as needs-more-info instead of looping fix/regression. browserStatus=BLOCKED, regressionStatus=PASS.
|
||
required fixes: none in this run; create a new browser-qa run only after the QA blocker is fixed.
|
||
Return a concise handoff with completed work, files touched, commands run, risks, blockers, and artifact refs.
|
||
|
||
## Triage Result
|
||
|
||
NEEDS_MORE_QA
|
||
证据缺失:browser-qa 返回 BLOCKED,未完成目标路径。
|
||
判断理由:阻塞属于 QA 执行问题,不能判定产品 bug。
|
||
最小修复边界:N/A
|
||
回归路径:先解决登录、选择器或页面状态阻塞,再按 QA_SCOPE 复测。
|
||
bug 文档字段:status=needs-more-info;记录 blocked reason。
|
||
|
||
FIX_RESULT:
|
||
FIX_RESULT: NO_OP
|
||
reason: TRIAGE_RESULT is NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
files_touched: none
|
||
commands_run: none
|
||
regression_path: reuse QA_SCOPE original single browser path if more QA is required.
|
||
|
||
REGRESSION_QA_RESULT:
|
||
REGRESSION_QA_RESULT
|
||
STATUS: PASS
|
||
steps_run: skipped regression because bug-triage returned NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
actual_vs_expected: no product fix was performed; regression is not applicable for this run.
|
||
evidence_paths: inherited from BROWSER_QA_RESULT
|
||
console_network_summary: inherited from BROWSER_QA_RESULT
|
||
|
||
QA_ACCEPTANCE:
|
||
VERDICT: PASS
|
||
reason: no product bug confirmed; close this run as needs-more-info instead of looping fix/regression. browserStatus=BLOCKED, regressionStatus=PASS.
|
||
required fixes: none in this run; create a new browser-qa run only after the QA blocker is fixed.
|
||
Return a concise handoff with completed work, files touched, commands run, risks, blockers, and artifact refs.
|
||
|
||
## Fix Result
|
||
|
||
NO_OP
|
||
reason: TRIAGE_RESULT is NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
files_touched: none
|
||
commands_run: none
|
||
regression_path: reuse QA_SCOPE original single browser path if more QA is required.
|
||
|
||
REGRESSION_QA_RESULT:
|
||
REGRESSION_QA_RESULT
|
||
STATUS: PASS
|
||
steps_run: skipped regression because bug-triage returned NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
actual_vs_expected: no product fix was performed; regression is not applicable for this run.
|
||
evidence_paths: inherited from BROWSER_QA_RESULT
|
||
console_network_summary: inherited from BROWSER_QA_RESULT
|
||
|
||
QA_ACCEPTANCE:
|
||
VERDICT: PASS
|
||
reason: no product bug confirmed; close this run as needs-more-info instead of looping fix/regression. browserStatus=BLOCKED, regressionStatus=PASS.
|
||
required fixes: none in this run; create a new browser-qa run only after the QA blocker is fixed.
|
||
Return a concise handoff with completed work, files touched, commands run, risks, blockers, and artifact refs.
|
||
|
||
## Regression QA Result
|
||
|
||
REGRESSION_QA_RESULT
|
||
STATUS: PASS
|
||
steps_run: skipped regression because bug-triage returned NEEDS_MORE_QA, not CONFIRMED_BUG.
|
||
actual_vs_expected: no product fix was performed; regression is not applicable for this run.
|
||
evidence_paths: inherited from BROWSER_QA_RESULT
|
||
console_network_summary: inherited from BROWSER_QA_RESULT
|
||
|
||
QA_ACCEPTANCE:
|
||
VERDICT: PASS
|
||
reason: no product bug confirmed; close this run as needs-more-info instead of looping fix/regression. browserStatus=BLOCKED, regressionStatus=PASS.
|
||
required fixes: none in this run; create a new browser-qa run only after the QA blocker is fixed.
|
||
Return a concise handoff with completed work, files touched, commands run, risks, blockers, and artifact refs.
|
||
|
||
## QA Acceptance
|
||
|
||
VERDICT: PASS
|
||
reason: no product bug confirmed; close this run as needs-more-info instead of looping fix/regression. browserStatus=BLOCKED, regressionStatus=PASS.
|
||
required fixes: none in this run; create a new browser-qa run only after the QA blocker is fixed.
|
||
Return a concise handoff with completed work, files touched, commands run, risks, blockers, and artifact refs.
|