2026-07-21 05:13:05 +08:00
|
|
|
|
# [recycle] Browser QA needs-more-info
|
2026-07-10 10:54:34 +08:00
|
|
|
|
|
|
|
|
|
|
- workflow_run_id: fcaefa85-5cb9-45d6-b238-4d52cca03e97
|
|
|
|
|
|
- status: needs-more-info
|
|
|
|
|
|
- triage: NEEDS_MORE_QA
|
|
|
|
|
|
|
|
|
|
|
|
## QA Scope
|
|
|
|
|
|
|
|
|
|
|
|
MINIMAL_BROWSER_QA_RUNBOOK
|
|
|
|
|
|
- Target URL: http://localhost:3000
|
|
|
|
|
|
- Login: click "测试账号快速登录" (mnote.e2e@example.com)
|
|
|
|
|
|
- Target page: 任意已存在或新建的文档页,含至少一个正文段落块(非标题、非列表、非代码块)
|
|
|
|
|
|
- Target block: 该页面中第一个普通段落块
|
|
|
|
|
|
- Operations (max 6):
|
|
|
|
|
|
1. 打开页面,等待编辑器加载完成
|
|
|
|
|
|
2. 鼠标悬停(hover)在该段落块左侧空白区域,等待手柄出现
|
|
|
|
|
|
3. 截图1:手柄出现时的整体布局(包含段落块、手柄图标、周围元素)
|
|
|
|
|
|
4. 点击该手柄
|
|
|
|
|
|
5. 等待块菜单弹出,不移动鼠标
|
|
|
|
|
|
6. 截图2:块菜单弹出后的完整布局(含菜单所有图标、文字、与段落块的位置关系)
|
|
|
|
|
|
- Console/Network: 截图前打开 DevTools Console,记录所有 error/warning;检查 Network 中是否有 4xx/5xx 请求
|
|
|
|
|
|
- Required screenshots: 2(hover 手柄出现 + 点击后菜单弹出)
|
|
|
|
|
|
- Exclusions: 不测试其他块类型(标题、列表、代码块、图片等);不测试拖拽、删除、复制等菜单操作;不测试其他页面;不测试移动端;不测试 theme 切换
|
|
|
|
|
|
- PASS/FAIL/BLOCKED:
|
|
|
|
|
|
PASS: 手柄 hover 后正常出现,点击后菜单弹出且菜单图标/文字完整可见、无重叠、无截断,无 console error 且无 4xx/5xx
|
|
|
|
|
|
FAIL: 手柄未出现、菜单未弹出、菜单布局错乱(图标缺失、重叠、截断、位置偏移严重)、出现 console error 或 4xx/5xx
|
|
|
|
|
|
BLOCKED: 页面无法加载、编辑器未渲染、无法登录、段落块不存在
|
|
|
|
|
|
|
|
|
|
|
|
BROWSER_QA_RESULT:
|
|
|
|
|
|
BROWSER_QA_RESULT
|
|
|
|
|
|
STATUS: BLOCKED
|
|
|
|
|
|
steps_run: phase boundary failed before structured evidence could be collected.
|
|
|
|
|
|
actual_vs_expected: Pi taskflow phase "browser-qa" timed out after 600000ms
|
|
|
|
|
|
evidence_paths: none parsed
|
|
|
|
|
|
console_network_summary: unavailable
|
|
|
|
|
|
candidate_bug: unknown
|
|
|
|
|
|
needs_triage: true
|
|
|
|
|
|
|
|
|
|
|
|
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: phase boundary failed before structured evidence could be collected.
|
|
|
|
|
|
actual_vs_expected: Pi taskflow phase "browser-qa" timed out after 600000ms
|
|
|
|
|
|
evidence_paths: none parsed
|
|
|
|
|
|
console_network_summary: unavailable
|
|
|
|
|
|
candidate_bug: unknown
|
|
|
|
|
|
needs_triage: true
|
|
|
|
|
|
|
|
|
|
|
|
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.
|