Files
msh-system/scripts/logs/fix-bugs-20260303_1020.log
scottpan 4be53dcd1b feat: 集成 KieAI 服务,移除 models-integration 子项目
- 添加 Gemini 2.5 Flash 对话接口(流式+非流式)
- 添加 NanoBanana 图像生成/编辑接口
- 添加 Sora2 视频生成接口(文生视频、图生视频、去水印)
- 移除 models-integration 子项目(功能已迁移至主后端)
- 新增测试文档和 Playwright E2E 配置
- 更新前端页面和 API 接口
- 更新后端配置和日志处理
2026-03-03 15:33:50 +08:00

2527 lines
213 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
═══════════════════════════════════════════════
[2026-03-03 10:20:50] ▶ 阶段 0 — 基线确认(运行回归测试,记录当前失败情况)
═══════════════════════════════════════════════
Running 10 tests using 1 worker
✘ 1 [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 (400ms)
✘ 2 [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 (retry #1) (357ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 3 [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (381ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 4 [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (retry #1) (318ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 5 [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 (369ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 6 [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (402ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 7 [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 (397ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 8 [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (389ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 9 [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 (382ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 10 [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 (retry #1) (377ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 11 [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 (387ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 12 [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 (retry #1) (381ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 13 [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 (316ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 14 [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 (retry #1) (397ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 15 [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 (386ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 16 [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (388ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 17 [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 (375ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 18 [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 (retry #1) (389ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 19 [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 (407ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 20 [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (350ms)
1) [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 ───────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2) [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ─────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
3) [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 ──────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
4) [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 ────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
5) [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 ─────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
6) [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 ─────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
7) [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 ──────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
8) [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 ───────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
9) [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 ───────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
10) [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
10 failed
[mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 ────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ──────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 ───────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 ─────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 ──────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 ──────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 ───────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 ────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 ────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 ──────────
[2026-03-03 10:21:56] 基线记录完成
═══════════════════════════════════════════════
[2026-03-03 10:21:56] ▶ 阶段 1 — 快速修复BUG-002, BUG-006, BUG-009
═══════════════════════════════════════════════
[2026-03-03 10:21:56] [BUG-002] 启动 Cursor Agent 修复...
Connection lost, reconnecting...
Retry attempt 1...
已按 BUG-002 要求只改了 CSS未动任何 JS修改如下
**1. 未激活 Tab`.tab-item`**
- 在根级增加 `color: #9ca3af`,保证整项为灰色。
- 下划线保持 `border-bottom: 3px solid transparent`,无可见下划线。
**2. 激活 Tab`.tab-item.active`**
- `border-bottom: 3px solid #f97316`,橙色底线下划线(由原 6rpx 改为 3px
- `color: #f97316`,主色字色。
- `font-weight: 700`,加粗。
- 保留内部 `.tab-text`、`.tab-icon` 的 `#f97316` 与 `.tab-text` 的 `font-weight: 700`。
这样「健康概览」和「营养配餐」切换时,激活项为橙色加粗+橙色下划线,未激活为灰色且无下划线,对比更清晰。
[2026-03-03 10:22:42] [BUG-002] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-002-102156.log
[2026-03-03 10:22:42] [BUG-006] 启动 Cursor Agent 修复...
检查结果如下:
**1. `msh_single_uniapp/pages/tool_main/index.vue`**
- 第 66 行功能入口标题:`<view class="function-title">健康知识</view>` → 已是「健康知识」
- 第 126 行区块标题:`<text class="section-title">健康知识</text>` → 已是「健康知识」
**2. `msh_single_uniapp/pages/tool/nutrition-knowledge.vue`**
- 页面内没有设置导航栏标题的文案(没有「营养知识」或「健康知识」字符串)
- 该页导航栏标题由 `pages.json` 配置
**3. `pages.json`nutrition-knowledge 页配置)**
- 第 1018 行:`"navigationBarTitleText": "健康知识"` → 已是「健康知识」
因此,当前代码里:
- 主页「健康知识」区块和功能入口均为「健康知识」
- 营养知识页的导航栏标题在 `pages.json` 中也是「健康知识」
两处命名已统一为「健康知识」,**无需再改任何文件**。若你本地或某次构建里仍看到「营养知识」,请说明是在哪个页面、哪一行或哪个配置(例如是否改过 `pages.json`),我可以按那个位置再帮你对一下。
[2026-03-03 10:23:38] [BUG-006] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-006-102242.log
[2026-03-03 10:23:38] [BUG-009] 启动 Cursor Agent 修复...
已按 BUG-009 要求处理,修改总结如下。
**1. Template 中的 Tab 与类型标签**
- **Tab 文案**:四个 Tab 的展示文字已是中文(推荐、最新、关注、热门),无需改。
- **Tab 内部值**`currentTab` 仍为 `recommend` / `latest` / `follow` / `hot`,用于 `switchTab` 和接口参数 `tab: this.currentTab`。按要求不改动接口逻辑,因此这些值保持英文,仅界面显示为中文。
- **帖子类型标签**`.type-tag` 和 `.meal-tag` 的文案都来自 `getMealTypeLabel(item.mealType)`,没有在模板里写死英文。
**2. 数据中的类型字段与 label 映射**
- `getMealTypeLabel` 中已有英文 → 中文映射breakfast→早餐、lunch→午餐、dinner→晚餐、snack→加餐、share→分享、checkin→打卡。
- 原先在未知类型时会 `return mealType`,可能把后端英文直接展示出来。
- **修改**:未知类型时的 fallback 从 `mealType` 改为 `'分享'`,保证所有展示的 label 都是中文。
**具体改动(仅一处)**
- 在 `getMealTypeLabel` 中,将
`return map[lower] != null ? map[lower] : mealType`
改为
`return map[lower] != null ? map[lower] : '分享'`
这样任意未在 map 中的 `mealType`(包括英文或其它值)在界面上都会显示为「分享」,不会出现英文。
路由与接口调用未做任何修改。
[2026-03-03 10:24:23] [BUG-009] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-009-102338.log
[2026-03-03 10:24:23] [阶段1] 阶段1修复完成进行局部验证...
[2026-03-03 10:24:23] [TEST] 验证: TC-B02|TC-B06|TC-B09
Running 3 tests using 1 worker
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 1 [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 (340ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 2 [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (349ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 3 [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 (438ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 4 [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 (retry #1) (477ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 5 [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 (553ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 6 [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (514ms)
1) [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 ──────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2) [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 ──────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
3) [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 ─────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
3 failed
[mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 ───────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 ───────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 ──────────
═══════════════════════════════════════════════
[2026-03-03 10:24:47] ▶ 阶段 2 — 中等修复BUG-001, BUG-007
═══════════════════════════════════════════════
[2026-03-03 10:24:47] [BUG-001] 启动 Cursor Agent 修复...
已按 BUG-001 的两个子问题改好,修改总结如下。
---
**子问题 A — 打卡前积分不提前跳变**
- **逻辑**:在 `handleCheckin` 里,**只有**在 `setSignIntegral()` 成功返回之后才更新状态和积分。
- **具体**
- 先 `await setSignIntegral()`,不成功会进 `catch`,不会改 `currentPoints`。
- 成功后再 `this.todaySigned = true`,然后再用服务端数据更新 `currentPoints`。
- 全程没有在接口成功前修改 `currentPoints`,也没有任何前端本地 `+30`。
---
**子问题 B — 打卡成功后用服务端积分刷新**
- **接口确认**:打卡接口仍是 `setSignIntegral()``user/sign/integral`),对应后端 `/api/front/user/sign/integral`,即签到/打卡接口。
- **刷新积分**:打卡成功后用「用户信息」接口刷新积分:
- 先调 `getUserInfo()`(即 GET `/api/front/user`,即 user info 接口)。
- 从返回里取 `integral` 或 `points`,赋给 `currentPoints`(优先 `integral`)。
- 若 user info 里没有积分字段,再请求 `getUserPoints()``tool/points/info`),用其返回的 `totalPoints` / `points` / `availablePoints` 更新 `currentPoints`。
- **禁止硬编码**:积分只来自上述两个接口的返回值,没有写死 `+30`。
---
**代码改动要点**
1. 引入并调用 `getUserInfo`。
2. 在 `await setSignIntegral()` 成功后,先 `getUserInfo()`,用 `userRes.data.integral ?? userRes.data.points` 更新 `currentPoints`。
3. 仅当 user info 无积分时,再 `getUserPoints()` 并以其结果更新 `currentPoints`。
4. 注释中写明:不在 API 成功前改 `currentPoints`,且用 GET user info 刷新积分、禁止前端本地 +30。
[2026-03-03 10:26:27] [BUG-001] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-001-102447.log
[2026-03-03 10:26:27] [BUG-007] 启动 Cursor Agent 修复...
BUG-007 已按你的要求改完,修改总结如下:
### 1. **`loadKnowledgeList` 与 API 调用**
- **根因**:在 `rawList.map` 里用了 `formatKnowledgeTime(...)` 未加 `this.`,在 API 有数据时会报错(如 "formatKnowledgeTime is not a function"),进入 catch列表不会被赋值所以一直为空。
- **修改**:改为 `this.formatKnowledgeTime(...)`,确保在 map 里正确调用组件方法。
### 2. **请求参数 type**
- type 已与后端一致:`guide` / `article`(注释里也写明了)。
### 3. **API 失败时的处理**
- catch 里已有 `uni.showToast` 提示。
- 在 catch 中保证不把列表置为 undefined
`this.guideList = this.guideList ?? []`、`this.articleList = this.articleList ?? []`,出错时仍保持为数组。
### 4. **响应数据结构兼容**
- 增加对两种返回形式的兼容:
- `result.data.list` 为数组时用 `result.data.list`
- 若 `result.data` 本身是数组则用 `result.data`。
这样无论后端用分页对象还是直接数组,都能正确取到列表。
### 5. **onLoad 无 id 时的逻辑**
- 有 `id`:调用 `switchTab('articles')`,会触发 `loadKnowledgeList` 拉取科普文章列表。
- 无 `id`:显式保持 `currentTab = 'nutrients'`;用户切到「饮食指南」或「科普文章」时由 `switchTab` 触发 `loadKnowledgeList`,与需求一致。
### 6. **详情页跳转 `goToDetail`**
- 已有「无 id 不跳转」的逻辑,本次只做了小加固:
- 若 `!item` 也先提示「暂无详情」再 return
- 仅当 `knowledgeId` 或 `id` 存在且有效时才 `navigateTo`,否则一律提示「暂无详情」。
当前无新的 lint 报错。若后端库里没有 type 为 `guide` / `article` 的数据,列表仍会为空,但会正常显示「暂无饮食指南数据」/「暂无科普文章数据」;若详情页打开仍空白,需要再确认详情页是否应调 `tool/knowledge/detail/:id` 而不是文章接口。
[2026-03-03 10:28:16] [BUG-007] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-007-102627.log
[2026-03-03 10:28:16] [阶段2] 阶段2修复完成进行局部验证...
[2026-03-03 10:28:16] [TEST] 验证: TC-B01|TC-B07
Running 3 tests using 1 worker
✘ 1 [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 (665ms)
✘ 2 [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 (retry #1) (504ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 3 [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (492ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 4 [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (retry #1) (551ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 5 [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 (538ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 6 [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (534ms)
1) [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 ───────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2) [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ─────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
3) [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 ───────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
3 failed
[mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 ────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ──────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 ────────────
═══════════════════════════════════════════════
[2026-03-03 10:28:46] ▶ 阶段 3 — 数据展示修复BUG-003, BUG-008
═══════════════════════════════════════════════
[2026-03-03 10:28:46] [BUG-003] 启动 Cursor Agent 修复...
BUG-003 已按你的要求修好,修改总结如下。
## 1. Template 与数据来源(确认)
- **`.food-image` 的 `:src`**:绑定为 `getFoodImage(item)`,由该方法统一取图并处理占位。
- **`.nutrition-item` 的 v-for**:遍历 `(item.nutrition || [])`,数据在 `normalizeFoodItem` 里统一整理成 `nutrition` 数组。
## 2. 后端数据结构api/tool.js + ToolFoodServiceImpl
- **列表/搜索** 返回每条为:`id`, `name`, `image`, `category`, `energy`, `protein`, `potassium`, `phosphorus`, `suitabilityLevel`。
没有 `nutrition`/`nutrients` 数组,营养来自扁平字段。
## 3. 具体修改
**1图片字段与占位**
- 在 **`getFoodImage(item)`** 中:
- 统一取 `item.imageUrl || item.image || item.img`。
- 若为相对路径(以 `/` 开头且非 `//`),用 `HTTP_REQUEST_URL` 拼成完整 URL。
- 无有效 URL 时返回已有的灰色 SVG 占位图(`defaultPlaceholder`)。
**2营养字段与列表**
- 在 **`normalizeFoodItem(item)`** 中:
- **图片**:同样做 image/imageUrl/img 兼容和相对路径补全,并写入 `image` / `imageUrl`,保证列表项有统一图源。
- **营养**
- 若有 `item.nutrition` 数组,按 `{ label, value, colorClass }` 规范化(兼容 `name`/`labelName`)。
- 否则若有 `item.nutrients`,同样规范化后当作 `nutrition`。
- 否则用后端扁平字段组装:能量、蛋白质、钾、磷、钠、钙(有值才加),保证列表有 `nutrition` 数组供 `.nutrition-item` 使用。
**3列表数据来源**
- `loadFoodList` 和搜索回调中,列表来源改为:
`result.data.list || (Array.isArray(result.data) ? result.data : [])`,再对每一项执行 `normalizeFoodItem`,避免因接口形态不同导致列表为空。
**4配置**
- 顶部增加:`import { HTTP_REQUEST_URL } from '@/config/app.js'`,用于相对路径补全。
效果上:
- `.food-image` 会正确显示后端返回的图(含相对路径补全),无图时显示灰色占位图。
- `.nutrition-item` 会正确展示营养简介(来自后端扁平字段或已有的 nutrition/nutrients 数组)。
[2026-03-03 10:32:47] [BUG-003] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-003-102846.log
[2026-03-03 10:32:47] [BUG-008] 启动 Cursor Agent 修复...
BUG-008 已按你的要求修好,修改总结如下。
---
## 1. 逻辑与数据流(已确认)
- **`postData.nutritionStats`**:在 `data()` 里初始化为 `[]`;在 `formatPostData()` 里由 `buildNutritionStatsFromDetailData(data)` 得到并赋值。
- **加载入口**`loadPostData(id)` 调 `getCommunityDetail(id)`,再用返回的 `data` 做 `formatPostData(data)`。
- **后端社区详情**:返回 `nutritionDataJson`、`checkInRecordId`**没有** `nutritionStats` 数组。
`buildNutritionStatsFromDetailData` 已支持:
- `nutritionStats` / `nutrition_stats`
- `nutritionDataJson` / `nutrition_data_json`(解析出 calories、protein、potassium、phosphorus
- `dietaryData` / `mealData` / `dietary_data` / `meal_data`
- **打卡详情**:当详情里没有营养数据但有 `checkInRecordId` 时,会再调 `getCheckinDetail(checkInRecordId)`;返回里有 `actualEnergy`、`actualProtein`,已用 `buildNutritionStatsFromCheckinDetail` 转成 `[{label, value}, ...]` 并写回 `postData.nutritionStats`。
---
## 2. 实际修改内容
**1用打卡详情补全营养数据并等待完成**
- 原来:`fillNutritionStatsFromCheckin(data.checkInRecordId)` 未 `await`,页面先渲染,营养卡常为空。
- 现在:在「无营养数据 + 有 checkInRecordId」时改为 **`await this.fillNutritionStatsFromCheckin(data.checkInRecordId)`**,在加载结束前就拿到打卡详情并填好 `nutritionStats`,营养卡能稳定显示。
**2显示条件改为“只看数组长度”且做防御**
- 要求v-if 用 `nutritionStats.length > 0`,不依赖后端是否返回某字段。
- 实现:
- 增加计算属性 **`nutritionStatsLength`**
`(postData && postData.nutritionStats)` 且为数组时返回 `length`,否则为 `0`,避免 `nutritionStats` 未定义时报错。
- 营养统计卡片的 v-if 改为:**`v-if="nutritionStatsLength > 0"`**。
这样显示只依赖「当前页面的 nutritionStats 数组是否有项」,与后端字段名无关。
---
## 3. 未改动的部分(已符合需求)
- 后端无 `nutritionStats` 时,已通过「打卡详情」的 `actualEnergy`、`actualProtein` 等计算并填充 `nutritionStats`(格式 `[{label:'蛋白质', value:'56g'}, ...]`),无需再改。
- 后端有 `nutritionDataJson` 等不同命名时,`buildNutritionStatsFromDetailData` 里已有多种字段名和 `dietaryData`/`mealData` 的兼容,无需额外映射修改。
当前逻辑是:先尝试从详情/`nutritionDataJson`/饮食数据得到 `nutritionStats`;若仍为空且存在 `checkInRecordId`,则 **await** 拉取打卡详情并据此填充;展示上只用 **`nutritionStatsLength > 0`** 控制营养卡显示。
[2026-03-03 10:34:55] [BUG-008] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-008-103247.log
[2026-03-03 10:34:55] [阶段3] 阶段3修复完成进行局部验证...
[2026-03-03 10:34:55] [TEST] 验证: TC-B03|TC-B08
Running 2 tests using 1 worker
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 1 [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 (354ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 2 [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (379ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 3 [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 (340ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 4 [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 (retry #1) (301ms)
1) [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 ────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2) [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 ───────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2 failed
[mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 ─────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 ────────────────
═══════════════════════════════════════════════
[2026-03-03 10:35:10] ▶ 阶段 4 — 复杂修复BUG-004, BUG-005
═══════════════════════════════════════════════
[2026-03-03 10:35:10] [BUG-004] 启动 Cursor Agent 修复...
BUG-004 已按你的要求修好,修改总结如下。
---
## 根因
- 后端详情接口 **只接受 Long 类型 id**`ToolController#getFoodDetail(Long id)`)。
- 列表里部分条目没有 `id``food-encyclopedia` 用 `item.name` 当 id 传,例如 `id=羊肉(熟)`,后端报 `NumberFormatException`,请求失败,页面只弹出「数据加载失败」且内容空白。
---
## 修改说明
### 1. `msh_single_uniapp/pages/tool/food-encyclopedia.vue`
- **只传数字 id**:仅在 `item.id` 为有效数字时拼进 `id` 参数;否则不传 `id`,避免把名称当 id 传给后端。
- **始终传 name**:跳转时带上 `name`(有则 `id=xxx&name=xxx`,无 id 则只传 `name=xxx`),详情页在失败或无 id 时用 name 展示。
### 2. `msh_single_uniapp/pages/tool/food-detail.vue`
- **入参与日志**
- 使用 `pageParams: { id, name }` 保存入参。
- `onLoad` 里打印:`console.log('[food-detail] onLoad params:', this.pageParams)`。
- `loadFoodData` 里打印:`console.log('[food-detail] getFoodDetail request param:', { id, type: typeof id })`。
- **只对数字 id 调接口**
- 仅当 `options.id` 能解析为数字时才调用 `loadFoodData(Number(options.id))`。
- 仅有 `options.name` 时:不请求接口,直接 `loadError = '暂无该食物详情数据,展示参考数据'`,用 `applyDefaultFoodData(false)` 填充,并把 `foodData.name` 设为解码后的 `options.name`。
- **API 失败时catch**
- **a.** `loadError = errMsg`(具体错误信息,便于调试)。
- **b.** `applyDefaultFoodData(false)`,用 `defaultFoodData` 填满页面,保证有名称、分类、关键营养、营养成分表等。
- **c.** 若有 `pageParams.name`,用其覆盖 `foodData.name`,避免显示默认「五谷香」。
- 再 `showToast('数据加载失败')`。
- `loadError` 有值时,页面顶部已有「当前数据来自缓存,可能不是最新」的提示(原有 `v-if="loadError"` 的 `.cache-notice`)。
- **保证列表能渲染**
- `applyDefaultFoodData` 中保证 `name/category/safetyTag/image` 有默认值,`keyNutrients`、`nutritionTable` 用 `defaultFoodData` 的非空数组拷贝,确保 `.food-name-overlay`、`.nutrient-card`、`.nutrition-row` 在默认数据下也能正常渲染。
- 成功拿到 API 数据时,用 `ensureNonEmptyArray(parseKeyNutrients(data), defaultFoodData.keyNutrients)` 等,避免解析出空数组导致列表为空。
---
效果简述:
- 列表点有**数字 id** 的条目:正常请求详情并展示;失败时用默认数据 + 入参 name若有+ 缓存提示 + Toast。
- 列表点**无 id、只有 name** 的条目:不请求接口,直接展示默认数据 + 该 name + 缓存提示,不再报错或空白。
- 控制台可看到 `onLoad params` 和 `getFoodDetail request param`,便于确认传参是否正确。
[2026-03-03 10:38:33] [BUG-004] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-004-103510.log
[2026-03-03 10:38:33] [BUG-005] 启动 Cursor Agent 修复...
BUG-005 已按你的要求修好,修改总结如下。
---
## 1. 前端 `msh_single_uniapp/pages/tool/ai-nutritionist.vue`
**已做修改:**
- **文本/多模态统一走 KieAI Gemini**
逻辑本来就是:`sendToAI` 里对 `text` 和 `multimodal` 都调用 `api.kieaiGeminiChat({ messages, stream: false })`,请求体为 `{ messages: [{ role: 'user', content: 用户输入或图+文 }], stream: false }`,未改。
- **成功时只展示接口返回内容**
- 回复**仅**从 `response.data.choices[0].message.content` 取值并展示。
- 已改为显式使用 `msgObj.content`(不再用 `choice.message.text` 等),并在注释中写明“仅使用接口返回的 content禁止固定话术”。
- **删除固定话术 `getAIResponse`**
- 已移除整个 `getAIResponse(question)` 方法(原关键词匹配的固定回复)。
- 成功时不再使用任何固定话术,只展示接口返回内容。
- **未动 UI**
仅改数据流与回复来源,布局和样式未改。
---
## 2. 前端 `msh_single_uniapp/api/models-api.js`
- **未改**
`kieaiGeminiChat` 已正确:
- POST `/api/front/kieai/gemini/chat`
- 请求体为 `{ messages, stream }`(你要求的 `{ messages: [{ role: 'user', content: 用户输入 }], stream: false }` 已满足)。
---
## 3. 后端 `msh_crmeb_22`ToolKieAIServiceImpl / buildGeminiRequestBody
- **未改**
已确认:
- `buildGeminiRequestBody` 完全用 `request.getMessages()` 透传,没有硬编码 prompt。
- `geminiChat` 只是用该 body 调 KieAI无额外固定内容。
因此后端无需修改。
---
当前数据流为:**用户输入 → POST /api/front/kieai/gemini/chatbody: messages + stream: false→ 前端从 `data.choices[0].message.content` 取回复并展示**,且成功时不再使用任何固定话术。
[2026-03-03 10:40:03] [BUG-005] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-005-103833.log
[2026-03-03 10:40:03] [阶段4] 阶段4修复完成进行局部验证...
[2026-03-03 10:40:03] [TEST] 验证: TC-B04|TC-B05
Running 2 tests using 1 worker
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 1 [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 (354ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 2 [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 (retry #1) (328ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 3 [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 (336ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 4 [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 (retry #1) (339ms)
1) [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 ─────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2) [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 ─────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2 failed
[mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 ──────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 ──────────────
═══════════════════════════════════════════════
[2026-03-03 10:40:15] ▶ 阶段 5 — 全量回归测试 + 报告生成
═══════════════════════════════════════════════
[2026-03-03 10:40:15] [TEST] 全量回归测试...
Running 10 tests using 1 worker
✘ 1 [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 (335ms)
✘ 2 [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 (retry #1) (354ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 3 [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (351ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 4 [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (retry #1) (338ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 5 [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 (359ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 6 [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (347ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 7 [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 (341ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 8 [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (321ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 9 [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 (341ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 10 [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 (retry #1) (338ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 11 [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 (341ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 12 [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 (retry #1) (373ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 13 [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 (415ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 14 [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 (retry #1) (308ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 15 [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 (356ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 16 [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (372ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 17 [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 (304ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 18 [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 (retry #1) (303ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 19 [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 (342ms)
[PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
✘ 20 [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (356ms)
1) [mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 ───────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
2) [mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ─────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
3) [mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 ──────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
4) [mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 ────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
5) [mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 ─────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
6) [mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 ─────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
7) [mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 ──────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
8) [mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 ───────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge
Call log:
 - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
9) [mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 ───────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
10) [mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community
Call log:
 - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load"
61 |
62 | async function goto(page: Page, route: string, waitMs = 2500): Promise<void> {
> 63 | await page.goto(`${BASE}/#/${route}`);
| ^
64 | await page.waitForTimeout(waitMs);
65 | }
66 |
at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14)
at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip
Usage:
npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
10 failed
[mobile-chrome] tests/e2e/bug-regression.spec.ts:114:5 TC-B01a 未登录点击打卡跳转登录页 ────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:134:5 TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ──────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:189:5 TC-B02 计算结果页 Tab 切换选中状态清晰 ───────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:256:5 TC-B03 食物列表每条目展示图片与营养信息 ─────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:295:5 TC-B04 食物详情页正常加载内容 ──────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:329:5 TC-B05 AI针对不同问题返回差异化回复 ──────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:371:5 TC-B06 健康知识与营养知识名称统一性 ───────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:405:5 TC-B07 饮食指南和科普文章详情页有正常内容 ────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:452:5 TC-B08 帖子详情页展示营养统计数据 ────────────────
[mobile-chrome] tests/e2e/bug-regression.spec.ts:487:5 TC-B09 社区 Tab 标签和帖子类型均使用中文 ──────────
[2026-03-03 10:41:12] [TEST] 全量回归完成,报告: tests/e2e/reports/index.html
[2026-03-03 10:41:12] ────────────────────────────────────────────────
[2026-03-03 10:41:12] 全部阶段完成总耗时20 分钟1222 秒)
[2026-03-03 10:41:12] 回归报告:/Users/apple/scott2026/msh-system/tests/e2e/reports/index.html
[2026-03-03 10:41:12] 详细日志:/Users/apple/scott2026/msh-system/scripts/logs/fix-bugs-20260303_1020.log
[2026-03-03 10:41:12] ────────────────────────────────────────────────