{ "config": { "configFile": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\playwright.config.ts", "rootDir": "G:/ZClaw_openfang/desktop/tests/e2e/specs", "forbidOnly": false, "fullyParallel": true, "globalSetup": null, "globalTeardown": null, "globalTimeout": 0, "grep": {}, "grepInvert": null, "maxFailures": 0, "metadata": { "actualWorkers": 8 }, "preserveOutput": "always", "projects": [ { "outputDir": "G:/ZClaw_openfang/desktop/tests/e2e/test-results/artifacts", "repeatEach": 1, "retries": 0, "metadata": { "actualWorkers": 8 }, "id": "chromium", "name": "chromium", "testDir": "G:/ZClaw_openfang/desktop/tests/e2e/specs", "testIgnore": [], "testMatch": [ "**/*.@(spec|test).?(c|m)[jt]s?(x)" ], "timeout": 120000 }, { "outputDir": "G:/ZClaw_openfang/desktop/tests/e2e/test-results/artifacts", "repeatEach": 1, "retries": 0, "metadata": { "actualWorkers": 8 }, "id": "data-flow", "name": "data-flow", "testDir": "G:/ZClaw_openfang/desktop/tests/e2e/specs", "testIgnore": [], "testMatch": [ "/data-flow\\.spec\\.ts/" ], "timeout": 120000 }, { "outputDir": "G:/ZClaw_openfang/desktop/tests/e2e/test-results/artifacts", "repeatEach": 1, "retries": 0, "metadata": { "actualWorkers": 8 }, "id": "store-state", "name": "store-state", "testDir": "G:/ZClaw_openfang/desktop/tests/e2e/specs", "testIgnore": [], "testMatch": [ "/store-state\\.spec\\.ts/" ], "timeout": 120000 }, { "outputDir": "G:/ZClaw_openfang/desktop/tests/e2e/test-results/artifacts", "repeatEach": 1, "retries": 0, "metadata": { "actualWorkers": 8 }, "id": "edge-cases", "name": "edge-cases", "testDir": "G:/ZClaw_openfang/desktop/tests/e2e/specs", "testIgnore": [], "testMatch": [ "/edge-cases\\.spec\\.ts/" ], "timeout": 180000 } ], "quiet": false, "reporter": [ [ "html", { "outputFolder": "test-results/html-report" } ], [ "json", { "outputFile": "test-results/results.json" } ], [ "list", null ] ], "reportSlowTests": { "max": 5, "threshold": 300000 }, "runAgents": "none", "shard": null, "tags": [], "updateSnapshots": "missing", "updateSourceMethod": "patch", "version": "1.58.2", "workers": 8, "webServer": { "command": "pnpm dev", "url": "http://localhost:1420", "reuseExistingServer": true, "timeout": 120000, "stdout": "pipe", "stderr": "pipe" } }, "suites": [ { "title": "app-verification.spec.ts", "file": "app-verification.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "ZCLAW 前端功能验证", "file": "app-verification.spec.ts", "line": 27, "column": 6, "specs": [], "suites": [ { "title": "1. 应用基础渲染", "file": "app-verification.spec.ts", "line": 33, "column": 8, "specs": [ { "title": "应用容器正确渲染", "ok": false, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 0, "parallelIndex": 0, "status": "failed", "duration": 14265, "error": { "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n", "stack": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "snippet": "\u001b[0m \u001b[90m 14 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'networkidle'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 15 |\u001b[39m \u001b[90m// 等待主应用容器出现\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 16 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForSelector(\u001b[32m'.h-screen'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m10000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 17 |\u001b[39m }\n \u001b[90m 18 |\u001b[39m\n \u001b[90m 19 |\u001b[39m \u001b[90m// 辅助函数:截图并保存\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n\n 14 | await page.waitForLoadState('networkidle');\n 15 | // 等待主应用容器出现\n> 16 | await page.waitForSelector('.h-screen', { timeout: 10000 });\n | ^\n 17 | }\n 18 |\n 19 | // 辅助函数:截图并保存\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5" } ], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.861Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-1-应用基础渲染-应用容器正确渲染-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-1-应用基础渲染-应用容器正确渲染-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-1-应用基础渲染-应用容器正确渲染-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 } } ], "status": "unexpected" } ], "id": "91fd37acece20ae22b70-49dd5c3740cccbc8289a", "file": "app-verification.spec.ts", "line": 34, "column": 5 }, { "title": "页面标题正确", "ok": false, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 1, "parallelIndex": 1, "status": "failed", "duration": 14296, "error": { "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n", "stack": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "snippet": "\u001b[0m \u001b[90m 14 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'networkidle'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 15 |\u001b[39m \u001b[90m// 等待主应用容器出现\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 16 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForSelector(\u001b[32m'.h-screen'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m10000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 17 |\u001b[39m }\n \u001b[90m 18 |\u001b[39m\n \u001b[90m 19 |\u001b[39m \u001b[90m// 辅助函数:截图并保存\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n\n 14 | await page.waitForLoadState('networkidle');\n 15 | // 等待主应用容器出现\n> 16 | await page.waitForSelector('.h-screen', { timeout: 10000 });\n | ^\n 17 | }\n 18 |\n 19 | // 辅助函数:截图并保存\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5" } ], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.814Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-1-应用基础渲染-页面标题正确-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-1-应用基础渲染-页面标题正确-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-1-应用基础渲染-页面标题正确-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 } } ], "status": "unexpected" } ], "id": "91fd37acece20ae22b70-abf1781b0710d17c3f2a", "file": "app-verification.spec.ts", "line": 50, "column": 5 } ] }, { "title": "2. Sidebar 侧边栏导航", "file": "app-verification.spec.ts", "line": 55, "column": 8, "specs": [ { "title": "侧边栏可见并包含导航项", "ok": false, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 2, "parallelIndex": 2, "status": "failed", "duration": 13897, "error": { "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n", "stack": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "snippet": "\u001b[0m \u001b[90m 14 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'networkidle'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 15 |\u001b[39m \u001b[90m// 等待主应用容器出现\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 16 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForSelector(\u001b[32m'.h-screen'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m10000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 17 |\u001b[39m }\n \u001b[90m 18 |\u001b[39m\n \u001b[90m 19 |\u001b[39m \u001b[90m// 辅助函数:截图并保存\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n\n 14 | await page.waitForLoadState('networkidle');\n 15 | // 等待主应用容器出现\n> 16 | await page.waitForSelector('.h-screen', { timeout: 10000 });\n | ^\n 17 | }\n 18 |\n 19 | // 辅助函数:截图并保存\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5" } ], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.874Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-2-Sidebar-侧边栏导航-侧边栏可见并包含导航项-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-2-Sidebar-侧边栏导航-侧边栏可见并包含导航项-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-2-Sidebar-侧边栏导航-侧边栏可见并包含导航项-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 } } ], "status": "unexpected" } ], "id": "91fd37acece20ae22b70-775813656fed780e4865", "file": "app-verification.spec.ts", "line": 56, "column": 5 }, { "title": "导航切换功能", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 3340, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.769Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-60dd9042a3729ef757d6", "file": "app-verification.spec.ts", "line": 78, "column": 5 }, { "title": "设置按钮可用", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 3406, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.778Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-9ceb05ab3b71b34808d3", "file": "app-verification.spec.ts", "line": 94, "column": 5 } ] }, { "title": "3. ChatArea 聊天功能", "file": "app-verification.spec.ts", "line": 107, "column": 8, "specs": [ { "title": "聊天区域渲染", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 3048, "errors": [], "stdout": [ { "text": "Chat input found: true\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.785Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-b7108a2c388d349a1c85", "file": "app-verification.spec.ts", "line": 108, "column": 5 }, { "title": "消息发送功能", "ok": false, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 6, "parallelIndex": 6, "status": "failed", "duration": 14043, "error": { "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n", "stack": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "snippet": "\u001b[0m \u001b[90m 14 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'networkidle'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 15 |\u001b[39m \u001b[90m// 等待主应用容器出现\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 16 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForSelector(\u001b[32m'.h-screen'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m10000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 17 |\u001b[39m }\n \u001b[90m 18 |\u001b[39m\n \u001b[90m 19 |\u001b[39m \u001b[90m// 辅助函数:截图并保存\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n\n 14 | await page.waitForLoadState('networkidle');\n 15 | // 等待主应用容器出现\n> 16 | await page.waitForSelector('.h-screen', { timeout: 10000 });\n | ^\n 17 | }\n 18 |\n 19 | // 辅助函数:截图并保存\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5" } ], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.848Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-3-ChatArea-聊天功能-消息发送功能-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-3-ChatArea-聊天功能-消息发送功能-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-3-ChatArea-聊天功能-消息发送功能-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 } } ], "status": "unexpected" } ], "id": "91fd37acece20ae22b70-3e0629d374dfd7c691dd", "file": "app-verification.spec.ts", "line": 128, "column": 5 }, { "title": "会话列表渲染", "ok": false, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 7, "parallelIndex": 7, "status": "failed", "duration": 14275, "error": { "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n", "stack": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "snippet": "\u001b[0m \u001b[90m 14 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'networkidle'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 15 |\u001b[39m \u001b[90m// 等待主应用容器出现\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 16 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForSelector(\u001b[32m'.h-screen'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m \u001b[35m10000\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 17 |\u001b[39m }\n \u001b[90m 18 |\u001b[39m\n \u001b[90m 19 |\u001b[39m \u001b[90m// 辅助函数:截图并保存\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 }, "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('.h-screen') to be visible\u001b[22m\n\n\n 14 | await page.waitForLoadState('networkidle');\n 15 | // 等待主应用容器出现\n> 16 | await page.waitForSelector('.h-screen', { timeout: 10000 });\n | ^\n 17 | }\n 18 |\n 19 | // 辅助函数:截图并保存\n at waitForAppReady (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:16:14)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts:30:5" } ], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:18.760Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-3-ChatArea-聊天功能-会话列表渲染-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-3-ChatArea-聊天功能-会话列表渲染-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-3-ChatArea-聊天功能-会话列表渲染-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\app-verification.spec.ts", "column": 14, "line": 16 } } ], "status": "unexpected" } ], "id": "91fd37acece20ae22b70-b7e0ddad7ed0b67656b6", "file": "app-verification.spec.ts", "line": 148, "column": 5 } ] }, { "title": "4. Hands 系统UI", "file": "app-verification.spec.ts", "line": 159, "column": 8, "specs": [ { "title": "Hands 列表渲染", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 1272, "errors": [], "stdout": [ { "text": "Found 0 hand cards\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:22.166Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-64da3b28dc87e3b848e6", "file": "app-verification.spec.ts", "line": 170, "column": 5 }, { "title": "Hand 触发按钮", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 1321, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:22.501Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-af912f60ef3aeff1e1b2", "file": "app-verification.spec.ts", "line": 186, "column": 5 } ] }, { "title": "5. Workflow/Scheduler 面板", "file": "app-verification.spec.ts", "line": 195, "column": 8, "specs": [ { "title": "Scheduler 面板渲染", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 1363, "errors": [], "stdout": [ { "text": "Task list found: true\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:22.501Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-52aa3250313818874a82", "file": "app-verification.spec.ts", "line": 205, "column": 5 }, { "title": "工作流编辑器", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 1145, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:23.449Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-e1f19602ad96fbc849c6", "file": "app-verification.spec.ts", "line": 218, "column": 5 } ] }, { "title": "6. Team 协作视图", "file": "app-verification.spec.ts", "line": 229, "column": 8, "specs": [ { "title": "Team 列表和创建", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 1821, "errors": [], "stdout": [ { "text": "Team create button available\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:23.836Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-1452ff4ab40fcd49ecce", "file": "app-verification.spec.ts", "line": 239, "column": 5 }, { "title": "团队成员显示", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 1787, "errors": [], "stdout": [ { "text": "Found 0 team members\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:23.879Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-596b39d154685026834e", "file": "app-verification.spec.ts", "line": 253, "column": 5 } ] }, { "title": "7. Swarm Dashboard", "file": "app-verification.spec.ts", "line": 263, "column": 8, "specs": [ { "title": "Swarm 仪表板渲染", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 1734, "errors": [], "stdout": [ { "text": "Found 0 status indicators\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:24.607Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-b2efd263accb42e6075c", "file": "app-verification.spec.ts", "line": 273, "column": 5 } ] }, { "title": "8. Settings 设置页面", "file": "app-verification.spec.ts", "line": 287, "column": 8, "specs": [ { "title": "设置页面渲染", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 1877, "errors": [], "stdout": [ { "text": "Found 4 settings tabs\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:25.670Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-6539c4f8acc905308f4e", "file": "app-verification.spec.ts", "line": 297, "column": 5 }, { "title": "通用设置", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 1883, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:25.681Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-b59f8c7727d96f4d0071", "file": "app-verification.spec.ts", "line": 313, "column": 5 }, { "title": "模型配置", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 1874, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:26.354Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-c9c23bc778366882e8cf", "file": "app-verification.spec.ts", "line": 323, "column": 5 } ] }, { "title": "9. RightPanel 右侧面板", "file": "app-verification.spec.ts", "line": 340, "column": 8, "specs": [ { "title": "右侧面板渲染", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 1320, "errors": [], "stdout": [ { "text": "Right panel content found: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:27.563Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-69d1bc2adb5ea221871b", "file": "app-verification.spec.ts", "line": 341, "column": 5 } ] }, { "title": "10. 错误处理和边界情况", "file": "app-verification.spec.ts", "line": 357, "column": 8, "specs": [ { "title": "网络错误处理", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 2316, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:27.580Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-ec5f579ba123087cc4c7", "file": "app-verification.spec.ts", "line": 358, "column": 5 }, { "title": "空状态显示", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 1189, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:28.241Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-e9f8f57e30b52efca2f9", "file": "app-verification.spec.ts", "line": 374, "column": 5 } ] }, { "title": "11. 响应式布局", "file": "app-verification.spec.ts", "line": 386, "column": 8, "specs": [ { "title": "移动端布局", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 1695, "errors": [], "stdout": [ { "text": "Mobile menu found: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:28.906Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-f2357bc0901f77bab9ef", "file": "app-verification.spec.ts", "line": 387, "column": 5 }, { "title": "平板布局", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 1729, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:29.443Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-8e6a16c4860f0b9a5b63", "file": "app-verification.spec.ts", "line": 401, "column": 5 }, { "title": "桌面布局", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 1822, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:29.914Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-f0ba28f74ca7e0386514", "file": "app-verification.spec.ts", "line": 408, "column": 5 } ] }, { "title": "12. 性能检查", "file": "app-verification.spec.ts", "line": 416, "column": 8, "specs": [ { "title": "页面加载性能", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 2149, "errors": [], "stdout": [ { "text": "Page load time: 916ms\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:30.613Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-1e1038838eee5799028e", "file": "app-verification.spec.ts", "line": 417, "column": 5 }, { "title": "内存使用检查", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 1263, "errors": [], "stdout": [ { "text": "DOM nodes: 147\n" }, { "text": "Memory used: 23MB\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:31.186Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-2f6f9c2908ad357789e9", "file": "app-verification.spec.ts", "line": 429, "column": 5 } ] } ] }, { "title": "13. 控制台错误检查", "file": "app-verification.spec.ts", "line": 444, "column": 6, "specs": [ { "title": "无 JavaScript 错误", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 2644, "errors": [], "stdout": [ { "text": "Console errors: 0\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:31.752Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-ed5f146e53d036f87939", "file": "app-verification.spec.ts", "line": 445, "column": 3 }, { "title": "无网络请求失败", "ok": true, "tags": [], "tests": [ { "timeout": 60000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "passed", "duration": 3992, "errors": [], "stdout": [ { "text": "Failed requests: 2\n" }, { "text": " - http://localhost:1420/api/health\n" }, { "text": " - http://localhost:1420/api/health\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:32.479Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "91fd37acece20ae22b70-c472ba049aef47c81802", "file": "app-verification.spec.ts", "line": 473, "column": 3 } ] } ] }, { "title": "core-features.spec.ts", "file": "core-features.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "Gateway Connection Tests", "file": "core-features.spec.ts", "line": 27, "column": 6, "specs": [ { "title": "GW-CONN-01: Health check returns correct status", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 8, "parallelIndex": 2, "status": "passed", "duration": 6543, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:34.856Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-00a98b529e56571a16d7", "file": "core-features.spec.ts", "line": 31, "column": 3 }, { "title": "GW-CONN-02: Connection state updates correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 8, "parallelIndex": 2, "status": "passed", "duration": 7005, "errors": [], "stdout": [ { "text": "Connection state: null\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW Core Feature E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:53:48.581Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:41.561Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-56247416f4d62470d667", "file": "core-features.spec.ts", "line": 58, "column": 3 }, { "title": "GW-CONN-03: Models list loads correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 9, "parallelIndex": 6, "status": "passed", "duration": 4530, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:34.910Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-7be69bc6041cefb8bbbd", "file": "core-features.spec.ts", "line": 85, "column": 3 }, { "title": "GW-CONN-04: Agents list loads correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 9, "parallelIndex": 6, "status": "passed", "duration": 4104, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Core Feature E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:53:43.740Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:39.612Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-e538b000706cdbb625f7", "file": "core-features.spec.ts", "line": 112, "column": 3 }, { "title": "GW-CONN-05: Error handling for failed health check", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 4642, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:34.986Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-2c3bbb4d42ab66aad25a", "file": "core-features.spec.ts", "line": 140, "column": 3 } ] }, { "title": "Chat Message Tests", "file": "core-features.spec.ts", "line": 167, "column": 6, "specs": [ { "title": "CHAT-MSG-01: Send message and receive response", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 6224, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Core Feature E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:53:46.103Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:39.859Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-bc33e6122e21203b1f7b", "file": "core-features.spec.ts", "line": 171, "column": 3 }, { "title": "CHAT-MSG-02: Message updates store state", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 11, "parallelIndex": 0, "status": "passed", "duration": 8426, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:35.056Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-428751c1a27c810d25bc", "file": "core-features.spec.ts", "line": 211, "column": 3 }, { "title": "CHAT-MSG-03: Streaming response indicator", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 11, "parallelIndex": 0, "status": "passed", "duration": 7821, "errors": [], "stdout": [ { "text": "Is streaming: false\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW Core Feature E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:53:51.690Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:43.852Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-e8eb267dbe5d6b944c33", "file": "core-features.spec.ts", "line": 246, "column": 3 }, { "title": "CHAT-MSG-04: Error handling for failed message", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 12, "parallelIndex": 1, "status": "passed", "duration": 7798, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:35.080Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-1e63c4d4b91978536fc3", "file": "core-features.spec.ts", "line": 280, "column": 3 }, { "title": "CHAT-MSG-05: Multiple messages in sequence", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 12, "parallelIndex": 1, "status": "passed", "duration": 9248, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Core Feature E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:53:52.498Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:43.234Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-5a47c30a876dee9d7f6a", "file": "core-features.spec.ts", "line": 300, "column": 3 } ] }, { "title": "Hands Trigger Tests", "file": "core-features.spec.ts", "line": 335, "column": 6, "specs": [ { "title": "HAND-TRIG-01: Hands list loads correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 5693, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:32.833Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-6f4fd4a6b4a65bb03f38", "file": "core-features.spec.ts", "line": 348, "column": 3 }, { "title": "HAND-TRIG-02: Activate Hand returns run ID", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 5463, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:38.547Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-dd671a3ea1ef94931622", "file": "core-features.spec.ts", "line": 373, "column": 3 }, { "title": "HAND-TRIG-03: Hand status transitions", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 5517, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:44.030Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-de3df0e8a962fced09e7", "file": "core-features.spec.ts", "line": 394, "column": 3 }, { "title": "HAND-TRIG-04: Hand requirements check", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 5409, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:49.562Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-eb52a71ba9d575f23b87", "file": "core-features.spec.ts", "line": 436, "column": 3 }, { "title": "HAND-TRIG-05: Hand run history", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 5398, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:54.984Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-e42802f04fdc3e0b2ace", "file": "core-features.spec.ts", "line": 454, "column": 3 }, { "title": "HAND-TRIG-06: Hand approval flow", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 5548, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:00.396Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-d595d4fb8c9beec7acb6", "file": "core-features.spec.ts", "line": 469, "column": 3 }, { "title": "HAND-TRIG-07: Hand cancellation", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "passed", "duration": 5305, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Core Feature E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:54:11.274Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:05.954Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-b0522178e61f72139d0f", "file": "core-features.spec.ts", "line": 489, "column": 3 } ] }, { "title": "Integration Tests", "file": "core-features.spec.ts", "line": 510, "column": 6, "specs": [ { "title": "INT-01: Full workflow - connect, chat, trigger hand", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 7836, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:34.459Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-53daeba1cff78b6f4bd4", "file": "core-features.spec.ts", "line": 512, "column": 3 }, { "title": "INT-02: State persistence across navigation", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 10176, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Core Feature E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:53:52.499Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:42.307Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "4c7e6ccba74c38082eff-6db9a428fbbbb6f13174", "file": "core-features.spec.ts", "line": 560, "column": 3 } ] } ] }, { "title": "data-flow.spec.ts", "file": "data-flow.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "聊天数据流验证", "file": "data-flow.spec.ts", "line": 32, "column": 6, "specs": [ { "title": "CHAT-DF-01: 发送消息完整数据流", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 5, "parallelIndex": 5, "status": "failed", "duration": 66624, "error": { "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================", "stack": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:60:38", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:197\n\n\u001b[0m \u001b[90m 195 |\u001b[39m \u001b[36mconst\u001b[39m [request] \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m \u001b[33mPromise\u001b[39m\u001b[33m.\u001b[39mall([\n \u001b[90m 196 |\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/agents/*/message**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m.\u001b[39m\u001b[36mcatch\u001b[39m(\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 197 |\u001b[39m () \u001b[33m=>\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/chat**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 198 |\u001b[39m )\u001b[33m,\u001b[39m\n \u001b[90m 199 |\u001b[39m sendButton\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m,\u001b[39m\n \u001b[90m 200 |\u001b[39m ])\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n\n at ..\\utils\\user-actions.ts:197\n\n 195 | const [request] = await Promise.all([\n 196 | page.waitForRequest('**/api/agents/*/message**', { timeout: options?.timeout ?? 30000 }).catch(\n> 197 | () => page.waitForRequest('**/api/chat**', { timeout: options?.timeout ?? 30000 })\n | ^\n 198 | ),\n 199 | sendButton.first().click(),\n 200 | ]);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:60:38" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:43.196Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:36.546Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-01-发送消息完整数据流-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-01-发送消息完整数据流-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-01-发送消息完整数据流-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 } } ], "status": "unexpected" } ], "id": "bdcac940a81c3235ce13-529df80525619b807bdd", "file": "data-flow.spec.ts", "line": 41, "column": 3 }, { "title": "CHAT-DF-02: 流式响应数据流", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 18, "parallelIndex": 5, "status": "failed", "duration": 67568, "error": { "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================", "stack": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:93:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:197\n\n\u001b[0m \u001b[90m 195 |\u001b[39m \u001b[36mconst\u001b[39m [request] \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m \u001b[33mPromise\u001b[39m\u001b[33m.\u001b[39mall([\n \u001b[90m 196 |\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/agents/*/message**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m.\u001b[39m\u001b[36mcatch\u001b[39m(\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 197 |\u001b[39m () \u001b[33m=>\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/chat**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 198 |\u001b[39m )\u001b[33m,\u001b[39m\n \u001b[90m 199 |\u001b[39m sendButton\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m,\u001b[39m\n \u001b[90m 200 |\u001b[39m ])\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n\n at ..\\utils\\user-actions.ts:197\n\n 195 | const [request] = await Promise.all([\n 196 | page.waitForRequest('**/api/agents/*/message**', { timeout: options?.timeout ?? 30000 }).catch(\n> 197 | () => page.waitForRequest('**/api/chat**', { timeout: options?.timeout ?? 30000 })\n | ^\n 198 | ),\n 199 | sendButton.first().click(),\n 200 | ]);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:93:5" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:52.484Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:44.747Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-02-流式响应数据流-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-02-流式响应数据流-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-02-流式响应数据流-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 } } ], "status": "unexpected" } ], "id": "bdcac940a81c3235ce13-496be181af69c53d9536", "file": "data-flow.spec.ts", "line": 87, "column": 3 }, { "title": "CHAT-DF-03: 模型切换数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 44, "parallelIndex": 5, "status": "passed", "duration": 4251, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:58.301Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:53.876Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-dbc5e2812f9944422f07", "file": "data-flow.spec.ts", "line": 106, "column": 3 }, { "title": "CHAT-DF-04: 新建对话数据流", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 9, "parallelIndex": 6, "status": "failed", "duration": 66996, "error": { "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================", "stack": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:150:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:197\n\n\u001b[0m \u001b[90m 195 |\u001b[39m \u001b[36mconst\u001b[39m [request] \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m \u001b[33mPromise\u001b[39m\u001b[33m.\u001b[39mall([\n \u001b[90m 196 |\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/agents/*/message**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m.\u001b[39m\u001b[36mcatch\u001b[39m(\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 197 |\u001b[39m () \u001b[33m=>\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/chat**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 198 |\u001b[39m )\u001b[33m,\u001b[39m\n \u001b[90m 199 |\u001b[39m sendButton\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m,\u001b[39m\n \u001b[90m 200 |\u001b[39m ])\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n\n at ..\\utils\\user-actions.ts:197\n\n 195 | const [request] = await Promise.all([\n 196 | page.waitForRequest('**/api/agents/*/message**', { timeout: options?.timeout ?? 30000 }).catch(\n> 197 | () => page.waitForRequest('**/api/chat**', { timeout: options?.timeout ?? 30000 })\n | ^\n 198 | ),\n 199 | sendButton.first().click(),\n 200 | ]);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:150:5" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:50.822Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:43.798Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-04-新建对话数据流-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-04-新建对话数据流-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-聊天数据流验证-CHAT-DF-04-新建对话数据流-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 } } ], "status": "unexpected" } ], "id": "bdcac940a81c3235ce13-22028b2d3980d146b6b2", "file": "data-flow.spec.ts", "line": 145, "column": 3 }, { "title": "CHAT-DF-05: 网络错误处理数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 21, "parallelIndex": 6, "status": "passed", "duration": 7136, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:52.426Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-542a5a6d289da07e78aa", "file": "data-flow.spec.ts", "line": 167, "column": 3 } ] }, { "title": "分身管理数据流验证", "file": "data-flow.spec.ts", "line": 202, "column": 6, "specs": [ { "title": "CLONE-DF-01: 分身列表加载数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 21, "parallelIndex": 6, "status": "passed", "duration": 10188, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:09.929Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:59.713Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-02d5a82ce9e1ba86ce41", "file": "data-flow.spec.ts", "line": 211, "column": 3 }, { "title": "CLONE-DF-02: 切换分身数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 4327, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:46.147Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-e91f2af762a1ae1df71a", "file": "data-flow.spec.ts", "line": 234, "column": 3 }, { "title": "CLONE-DF-03: 创建分身数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 4353, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:50.485Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-2ec05be0c90bbb3f6f27", "file": "data-flow.spec.ts", "line": 262, "column": 3 } ] }, { "title": "Hands 系统数据流验证", "file": "data-flow.spec.ts", "line": 298, "column": 6, "specs": [ { "title": "HAND-DF-01: Hands 列表加载数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 11957, "errors": [], "stdout": [ { "text": "Hand cards found: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:06.826Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:54.851Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-eb9a649ee7dea89596f0", "file": "data-flow.spec.ts", "line": 307, "column": 3 }, { "title": "HAND-DF-02: 触发 Hand 执行数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [ { "type": "skip", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "line": 341, "column": 12 } } ], "expectedStatus": "skipped", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 8, "parallelIndex": 2, "status": "skipped", "duration": 5733, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:48.608Z", "annotations": [ { "type": "skip", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "line": 341, "column": 12 } } ], "attachments": [] } ], "status": "skipped" } ], "id": "bdcac940a81c3235ce13-008a28dfecdca8116b5e", "file": "data-flow.spec.ts", "line": 333, "column": 3 }, { "title": "HAND-DF-03: Hand 参数表单数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 8, "parallelIndex": 2, "status": "passed", "duration": 5795, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:54.352Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-b66d34fc9491564fc927", "file": "data-flow.spec.ts", "line": 369, "column": 3 } ] }, { "title": "工作流数据流验证", "file": "data-flow.spec.ts", "line": 400, "column": 6, "specs": [ { "title": "WF-DF-01: 工作流列表数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 8, "parallelIndex": 2, "status": "passed", "duration": 4925, "errors": [], "stdout": [ { "text": "Workflows in Store: 0, in UI: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:05.105Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:00.160Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-6df14a43ab8759e33bd6", "file": "data-flow.spec.ts", "line": 409, "column": 3 }, { "title": "WF-DF-02: 创建工作流数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 11, "parallelIndex": 0, "status": "passed", "duration": 5211, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:51.722Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-59f8391df50172ae70fa", "file": "data-flow.spec.ts", "line": 425, "column": 3 } ] }, { "title": "技能市场数据流验证", "file": "data-flow.spec.ts", "line": 456, "column": 6, "specs": [ { "title": "SKILL-DF-01: 技能列表数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 11, "parallelIndex": 0, "status": "passed", "duration": 11133, "errors": [], "stdout": [ { "text": "Skill API requests: 0\n" }, { "text": "Skills in UI: 0\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:56.944Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-e69ec1b43be92916482e", "file": "data-flow.spec.ts", "line": 465, "column": 3 }, { "title": "SKILL-DF-02: 搜索技能数据流", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 11, "parallelIndex": 0, "status": "failed", "duration": 5252, "error": { "message": "Error: locator.isVisible: Error: strict mode violation: locator('input[placeholder*=\"搜索\"]').or(locator('input[type=\"search\"]')) resolved to 2 elements:\n 1) aka getByRole('textbox', { name: '搜索...' })\n 2) aka getByRole('textbox', { name: '搜索技能、能力、触发词' })\n\nCall log:\n\u001b[2m - checking visibility of locator('input[placeholder*=\"搜索\"]').or(locator('input[type=\"search\"]'))\u001b[22m\n", "stack": "Error: locator.isVisible: Error: strict mode violation: locator('input[placeholder*=\"搜索\"]').or(locator('input[type=\"search\"]')) resolved to 2 elements:\n 1) aka getByRole('textbox', { name: '搜索...' })\n 2) aka getByRole('textbox', { name: '搜索技能、能力、触发词' })\n\nCall log:\n\u001b[2m - checking visibility of locator('input[placeholder*=\"搜索\"]').or(locator('input[type=\"search\"]'))\u001b[22m\n\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:491:27", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "column": 27, "line": 491 }, "snippet": "\u001b[0m \u001b[90m 489 |\u001b[39m )\u001b[33m;\u001b[39m\n \u001b[90m 490 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 491 |\u001b[39m \u001b[36mif\u001b[39m (\u001b[36mawait\u001b[39m searchInput\u001b[33m.\u001b[39misVisible()) {\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 492 |\u001b[39m \u001b[90m// 2. 输入搜索关键词\u001b[39m\n \u001b[90m 493 |\u001b[39m \u001b[36mawait\u001b[39m searchInput\u001b[33m.\u001b[39mfill(\u001b[32m'代码'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 494 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForTimeout(\u001b[35m500\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "column": 27, "line": 491 }, "message": "Error: locator.isVisible: Error: strict mode violation: locator('input[placeholder*=\"搜索\"]').or(locator('input[type=\"search\"]')) resolved to 2 elements:\n 1) aka getByRole('textbox', { name: '搜索...' })\n 2) aka getByRole('textbox', { name: '搜索技能、能力、触发词' })\n\nCall log:\n\u001b[2m - checking visibility of locator('input[placeholder*=\"搜索\"]').or(locator('input[type=\"search\"]'))\u001b[22m\n\n\n 489 | );\n 490 |\n> 491 | if (await searchInput.isVisible()) {\n | ^\n 492 | // 2. 输入搜索关键词\n 493 | await searchInput.fill('代码');\n 494 | await page.waitForTimeout(500);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:491:27" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:13.367Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:08.088Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-技能市场数据流验证-SKILL-DF-02-搜索技能数据流-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-技能市场数据流验证-SKILL-DF-02-搜索技能数据流-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-技能市场数据流验证-SKILL-DF-02-搜索技能数据流-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "column": 27, "line": 491 } } ], "status": "unexpected" } ], "id": "bdcac940a81c3235ce13-a0cd80e0a96d2f898e69", "file": "data-flow.spec.ts", "line": 485, "column": 3 } ] }, { "title": "团队协作数据流验证", "file": "data-flow.spec.ts", "line": 508, "column": 6, "specs": [ { "title": "TEAM-DF-01: 团队列表数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 12, "parallelIndex": 1, "status": "passed", "duration": 5364, "errors": [], "stdout": [ { "text": "Teams in Store: 0, in UI: 0\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:52.533Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-d013afd3a6f16ec55da2", "file": "data-flow.spec.ts", "line": 517, "column": 3 }, { "title": "TEAM-DF-02: 创建团队数据流", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 12, "parallelIndex": 1, "status": "failed", "duration": 15775, "error": { "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('[role=\"dialog\"]') to be visible\u001b[22m\n", "stack": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('[role=\"dialog\"]') to be visible\u001b[22m\n\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:538:18", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "column": 18, "line": 538 }, "snippet": "\u001b[0m \u001b[90m 536 |\u001b[39m \u001b[36mif\u001b[39m (\u001b[36mawait\u001b[39m createBtn\u001b[33m.\u001b[39misVisible()) {\n \u001b[90m 537 |\u001b[39m \u001b[36mawait\u001b[39m createBtn\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 538 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForSelector(\u001b[32m'[role=\"dialog\"]'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 539 |\u001b[39m\n \u001b[90m 540 |\u001b[39m \u001b[90m// 2. 填写团队信息\u001b[39m\n \u001b[90m 541 |\u001b[39m \u001b[36mconst\u001b[39m dialog \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'[role=\"dialog\"]'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "column": 18, "line": 538 }, "message": "TimeoutError: page.waitForSelector: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('[role=\"dialog\"]') to be visible\u001b[22m\n\n\n 536 | if (await createBtn.isVisible()) {\n 537 | await createBtn.click();\n> 538 | await page.waitForSelector('[role=\"dialog\"]');\n | ^\n 539 |\n 540 | // 2. 填写团队信息\n 541 | const dialog = page.locator('[role=\"dialog\"]');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:538:18" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:13.707Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:57.910Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-团队协作数据流验证-TEAM-DF-02-创建团队数据流-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-团队协作数据流验证-TEAM-DF-02-创建团队数据流-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-团队协作数据流验证-TEAM-DF-02-创建团队数据流-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts", "column": 18, "line": 538 } } ], "status": "unexpected" } ], "id": "bdcac940a81c3235ce13-2b9c3212b5e2bc418924", "file": "data-flow.spec.ts", "line": 532, "column": 3 } ] }, { "title": "设置数据流验证", "file": "data-flow.spec.ts", "line": 555, "column": 6, "specs": [ { "title": "SET-DF-01: 打开设置数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 4347, "errors": [], "stdout": [ { "text": "Settings visible: true\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:19.452Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:14.936Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-8b134df5feeb02852417", "file": "data-flow.spec.ts", "line": 562, "column": 3 }, { "title": "SET-DF-02: 模型配置数据流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 4672, "errors": [], "stdout": [ { "text": "Model options: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 数据流验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:53:57.233Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:52.544Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "bdcac940a81c3235ce13-6df5d90e5b85ad4debff", "file": "data-flow.spec.ts", "line": 576, "column": 3 } ] } ] }, { "title": "edge-cases.spec.ts", "file": "edge-cases.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "网络边界情况", "file": "edge-cases.spec.ts", "line": 22, "column": 6, "specs": [ { "title": "NET-EDGE-01: 完全离线状态", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 272, "errors": [], "stdout": [ { "text": "Offline state page content: \n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:57.262Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-c41280b837071c7a482f", "file": "edge-cases.spec.ts", "line": 24, "column": 3 }, { "title": "NET-EDGE-02: 网络中断恢复", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "passed", "duration": 9250, "errors": [], "stdout": [ { "text": "Connection: undefined -> undefined\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:53:57.548Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-5c032d968b9e25259ea1", "file": "edge-cases.spec.ts", "line": 42, "column": 3 }, { "title": "NET-EDGE-03: 请求超时处理", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 3, "parallelIndex": 3, "status": "failed", "duration": 9039, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:90:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 34, "line": 90 }, "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m isStreaming\u001b[33m:\u001b[39m boolean\u001b[33m;\u001b[39m\n \u001b[90m 89 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mCHAT\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39misStreaming)\u001b[33m.\u001b[39mtoBe(\u001b[36mfalse\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m }\n \u001b[90m 92 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 34, "line": 90 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n 88 | isStreaming: boolean;\n 89 | }>(page, STORE_NAMES.CHAT);\n> 90 | expect(state?.isStreaming).toBe(false);\n | ^\n 91 | }\n 92 | });\n 93 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:90:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:15.862Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:06.808Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-网络边界情况-NET-EDGE-03-请求超时处理-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-网络边界情况-NET-EDGE-03-请求超时处理-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-网络边界情况-NET-EDGE-03-请求超时处理-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 34, "line": 90 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-46f3ee7573c2c62c1c38", "file": "edge-cases.spec.ts", "line": 68, "column": 3 }, { "title": "NET-EDGE-04: 服务器错误 (500)", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 15, "parallelIndex": 3, "status": "passed", "duration": 6890, "errors": [], "stdout": [ { "text": "Error shown: false\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:24.053Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:17.043Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-f7489a907b9fd5ad72b2", "file": "edge-cases.spec.ts", "line": 94, "column": 3 }, { "title": "NET-EDGE-05: 限流处理 (429)", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 8, "parallelIndex": 2, "status": "passed", "duration": 6920, "errors": [], "stdout": [ { "text": "Rate limit handling verified\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:05.149Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-77f03f376c7425e0d06b", "file": "edge-cases.spec.ts", "line": 119, "column": 3 }, { "title": "NET-EDGE-06: 慢速网络", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 8, "parallelIndex": 2, "status": "failed", "duration": 58817, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('aside').first()\nExpected: visible\nTimeout: 10000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 10000ms\u001b[22m\n\u001b[2m - waiting for locator('aside').first()\u001b[22m\n", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('aside').first()\nExpected: visible\nTimeout: 10000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 10000ms\u001b[22m\n\u001b[2m - waiting for locator('aside').first()\u001b[22m\n\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:156:27", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 27, "line": 156 }, "snippet": "\u001b[0m \u001b[90m 154 |\u001b[39m \u001b[90m// 4. 验证页面仍然可用\u001b[39m\n \u001b[90m 155 |\u001b[39m \u001b[36mconst\u001b[39m sidebar \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mlocator(\u001b[32m'aside'\u001b[39m)\u001b[33m.\u001b[39mfirst()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 156 |\u001b[39m \u001b[36mawait\u001b[39m expect(sidebar)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 157 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 158 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 159 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 27, "line": 156 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('aside').first()\nExpected: visible\nTimeout: 10000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 10000ms\u001b[22m\n\u001b[2m - waiting for locator('aside').first()\u001b[22m\n\n\n 154 | // 4. 验证页面仍然可用\n 155 | const sidebar = page.locator('aside').first();\n> 156 | await expect(sidebar).toBeVisible();\n | ^\n 157 | });\n 158 | });\n 159 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:156:27" } ], "stdout": [ { "text": "Page load time with slow network: 45343ms\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:10.913Z\n" }, { "text": "========================================\n\n" } ], "stderr": [ { "text": "Sidebar not found\n" } ], "retry": 0, "startTime": "2026-03-25T23:54:12.078Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-网络边界情况-NET-EDGE-06-慢速网络-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-网络边界情况-NET-EDGE-06-慢速网络-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-网络边界情况-NET-EDGE-06-慢速网络-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 27, "line": 156 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-7e8bd475f36604b4bd93", "file": "edge-cases.spec.ts", "line": 138, "column": 3 } ] }, { "title": "数据边界情况", "file": "edge-cases.spec.ts", "line": 163, "column": 6, "specs": [ { "title": "DATA-EDGE-01: 超长消息", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 25, "parallelIndex": 2, "status": "failed", "duration": 4208, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m10000\u001b[39m\nReceived: \u001b[31m6000\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m10000\u001b[39m\nReceived: \u001b[31m6000\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:181:28", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 28, "line": 181 }, "snippet": "\u001b[0m \u001b[90m 179 |\u001b[39m \u001b[90m// 3. 验证输入被接受\u001b[39m\n \u001b[90m 180 |\u001b[39m \u001b[36mconst\u001b[39m value \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m chatInput\u001b[33m.\u001b[39minputValue()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 181 |\u001b[39m expect(value\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m10000\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 182 |\u001b[39m\n \u001b[90m 183 |\u001b[39m \u001b[90m// 4. 发送消息\u001b[39m\n \u001b[90m 184 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgetByRole(\u001b[32m'button'\u001b[39m\u001b[33m,\u001b[39m { name\u001b[33m:\u001b[39m \u001b[32m'发送消息'\u001b[39m })\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 28, "line": 181 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m10000\u001b[39m\nReceived: \u001b[31m6000\u001b[39m\n\n 179 | // 3. 验证输入被接受\n 180 | const value = await chatInput.inputValue();\n> 181 | expect(value.length).toBeGreaterThan(10000);\n | ^\n 182 |\n 183 | // 4. 发送消息\n 184 | await page.getByRole('button', { name: '发送消息' }).click();\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:181:28" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:16.594Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:12.184Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-数据边界情况-DATA-EDGE-01-超长消息-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-数据边界情况-DATA-EDGE-01-超长消息-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-数据边界情况-DATA-EDGE-01-超长消息-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 28, "line": 181 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-33f029df370352b45438", "file": "edge-cases.spec.ts", "line": 170, "column": 3 }, { "title": "DATA-EDGE-02: 空消息", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 26, "parallelIndex": 2, "status": "failed", "duration": 13819, "error": { "message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for getByRole('button', { name: '发送消息' })\u001b[22m\n\u001b[2m - locator resolved to \u001b[22m\n\u001b[2m - attempting click action\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 20ms\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 100ms\u001b[22m\n\u001b[2m 19 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 500ms\u001b[22m\n", "stack": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for getByRole('button', { name: '发送消息' })\u001b[22m\n\u001b[2m - locator resolved to \u001b[22m\n\u001b[2m - attempting click action\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 20ms\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 100ms\u001b[22m\n\u001b[2m 19 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 500ms\u001b[22m\n\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:206:56", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 56, "line": 206 }, "snippet": "\u001b[0m \u001b[90m 204 |\u001b[39m \u001b[90m// 2. 尝试发送空消息\u001b[39m\n \u001b[90m 205 |\u001b[39m \u001b[36mawait\u001b[39m chatInput\u001b[33m.\u001b[39mfill(\u001b[32m''\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 206 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgetByRole(\u001b[32m'button'\u001b[39m\u001b[33m,\u001b[39m { name\u001b[33m:\u001b[39m \u001b[32m'发送消息'\u001b[39m })\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 207 |\u001b[39m\n \u001b[90m 208 |\u001b[39m \u001b[90m// 3. 验证空消息不应被发送\u001b[39m\n \u001b[90m 209 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForTimeout(\u001b[35m1000\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 56, "line": 206 }, "message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for getByRole('button', { name: '发送消息' })\u001b[22m\n\u001b[2m - locator resolved to \u001b[22m\n\u001b[2m - attempting click action\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 20ms\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 100ms\u001b[22m\n\u001b[2m 19 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 500ms\u001b[22m\n\n\n 204 | // 2. 尝试发送空消息\n 205 | await chatInput.fill('');\n> 206 | await page.getByRole('button', { name: '发送消息' }).click();\n | ^\n 207 |\n 208 | // 3. 验证空消息不应被发送\n 209 | await page.waitForTimeout(1000);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:206:56" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:32.450Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:18.482Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-数据边界情况-DATA-EDGE-02-空消息-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-数据边界情况-DATA-EDGE-02-空消息-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-数据边界情况-DATA-EDGE-02-空消息-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 56, "line": 206 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-77e316cb9afa9444ddd0", "file": "edge-cases.spec.ts", "line": 195, "column": 3 }, { "title": "DATA-EDGE-03: 特殊字符消息", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 5889, "errors": [], "stdout": [ { "text": "Special characters message sent\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:06.864Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-b280afef0d61bec5b977", "file": "edge-cases.spec.ts", "line": 220, "column": 3 }, { "title": "DATA-EDGE-04: Unicode 和 Emoji", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 5867, "errors": [], "stdout": [ { "text": "Unicode message visible: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:12.765Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-217b2fa2f5b7ee2aab34", "file": "edge-cases.spec.ts", "line": 234, "column": 3 }, { "title": "DATA-EDGE-05: 代码块内容", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 5941, "errors": [], "stdout": [ { "text": "Code block visible: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:18.645Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-c0f918ad1d71c7274b6e", "file": "edge-cases.spec.ts", "line": 251, "column": 3 }, { "title": "DATA-EDGE-06: 空 Hands 列表", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "passed", "duration": 6380, "errors": [], "stdout": [ { "text": "Empty state shown: false\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:30.994Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:24.599Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-cbdcc1a8a9f35fbafa8b", "file": "edge-cases.spec.ts", "line": 273, "column": 3 } ] }, { "title": "状态边界情况", "file": "edge-cases.spec.ts", "line": 301, "column": 6, "specs": [ { "title": "STATE-EDGE-01: 快速连续点击", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 4, "parallelIndex": 4, "status": "failed", "duration": 14404, "error": { "message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for getByRole('button', { name: '发送消息' })\u001b[22m\n\u001b[2m - locator resolved to \u001b[22m\n\u001b[2m - attempting click action\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not stable\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 20ms\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 100ms\u001b[22m\n\u001b[2m 19 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 500ms\u001b[22m\n", "stack": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for getByRole('button', { name: '发送消息' })\u001b[22m\n\u001b[2m - locator resolved to \u001b[22m\n\u001b[2m - attempting click action\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not stable\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 20ms\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 100ms\u001b[22m\n\u001b[2m 19 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 500ms\u001b[22m\n\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:323:23", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 23, "line": 323 }, "snippet": "\u001b[0m \u001b[90m 321 |\u001b[39m \u001b[90m// 连续点击 5 次\u001b[39m\n \u001b[90m 322 |\u001b[39m \u001b[36mfor\u001b[39m (\u001b[36mlet\u001b[39m i \u001b[33m=\u001b[39m \u001b[35m0\u001b[39m\u001b[33m;\u001b[39m i \u001b[33m<\u001b[39m \u001b[35m5\u001b[39m\u001b[33m;\u001b[39m i\u001b[33m++\u001b[39m) {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 323 |\u001b[39m \u001b[36mawait\u001b[39m sendBtn\u001b[33m.\u001b[39mclick({ delay\u001b[33m:\u001b[39m \u001b[35m50\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 324 |\u001b[39m }\n \u001b[90m 325 |\u001b[39m\n \u001b[90m 326 |\u001b[39m \u001b[90m// 3. 等待处理完成\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 23, "line": 323 }, "message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for getByRole('button', { name: '发送消息' })\u001b[22m\n\u001b[2m - locator resolved to \u001b[22m\n\u001b[2m - attempting click action\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not stable\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 20ms\u001b[22m\n\u001b[2m 2 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 100ms\u001b[22m\n\u001b[2m 19 × waiting for element to be visible, enabled and stable\u001b[22m\n\u001b[2m - element is not enabled\u001b[22m\n\u001b[2m - retrying click action\u001b[22m\n\u001b[2m - waiting 500ms\u001b[22m\n\n\n 321 | // 连续点击 5 次\n 322 | for (let i = 0; i < 5; i++) {\n> 323 | await sendBtn.click({ delay: 50 });\n | ^\n 324 | }\n 325 |\n 326 | // 3. 等待处理完成\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:323:23" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:25.737Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:11.316Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-01-快速连续点击-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-01-快速连续点击-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-01-快速连续点击-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 23, "line": 323 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-37fd6627ec83e334eebd", "file": "edge-cases.spec.ts", "line": 308, "column": 3 }, { "title": "STATE-EDGE-02: 流式中刷新页面", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 16, "parallelIndex": 4, "status": "failed", "duration": 7801, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:360:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 34, "line": 360 }, "snippet": "\u001b[0m \u001b[90m 358 |\u001b[39m\n \u001b[90m 359 |\u001b[39m \u001b[90m// 流式状态应该是 false\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 360 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39misStreaming)\u001b[33m.\u001b[39mtoBe(\u001b[36mfalse\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 361 |\u001b[39m }\n \u001b[90m 362 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 363 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 34, "line": 360 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n 358 |\n 359 | // 流式状态应该是 false\n> 360 | expect(state?.isStreaming).toBe(false);\n | ^\n 361 | }\n 362 | });\n 363 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:360:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:34.930Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:26.986Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-02-流式中刷新页面-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-02-流式中刷新页面-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-02-流式中刷新页面-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 34, "line": 360 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-5f96187a72016a5a2f62", "file": "edge-cases.spec.ts", "line": 341, "column": 3 }, { "title": "STATE-EDGE-03: 多次切换标签", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 17, "parallelIndex": 4, "status": "passed", "duration": 14642, "errors": [], "stdout": [ { "text": "Errors after rapid switching: 0\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:36.100Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-ccdc069d385a8b2fc471", "file": "edge-cases.spec.ts", "line": 364, "column": 3 }, { "title": "STATE-EDGE-04: 清除 localStorage 后恢复", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 17, "parallelIndex": 4, "status": "failed", "duration": 10457, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:407:48", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 48, "line": 407 }, "snippet": "\u001b[0m \u001b[90m 405 |\u001b[39m messages\u001b[33m:\u001b[39m unknown[]\u001b[33m;\u001b[39m\n \u001b[90m 406 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mCHAT\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 407 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(chatState\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 408 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 409 |\u001b[39m\n \u001b[90m 410 |\u001b[39m test(\u001b[32m'STATE-EDGE-05: 长时间运行稳定性'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 48, "line": 407 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 405 | messages: unknown[];\n 406 | }>(page, STORE_NAMES.CHAT);\n> 407 | expect(Array.isArray(chatState?.messages)).toBe(true);\n | ^\n 408 | });\n 409 |\n 410 | test('STATE-EDGE-05: 长时间运行稳定性', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:407:48" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:01.337Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:50.860Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-04-清除-localStorage-后恢复-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-04-清除-localStorage-后恢复-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-状态边界情况-STATE-EDGE-04-清除-localStorage-后恢复-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 48, "line": 407 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-e59ade7ad897dc807a9b", "file": "edge-cases.spec.ts", "line": 384, "column": 3 }, { "title": "STATE-EDGE-05: 长时间运行稳定性", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 13, "parallelIndex": 0, "status": "passed", "duration": 11711, "errors": [], "stdout": [ { "text": "DOM nodes: 147 -> 153\n" }, { "text": "JS heap: 33100000 -> 33100000\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:14.555Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-659b8661ec1bfc6a6243", "file": "edge-cases.spec.ts", "line": 410, "column": 3 } ] }, { "title": "UI 边界情况", "file": "edge-cases.spec.ts", "line": 445, "column": 6, "specs": [ { "title": "UI-EDGE-01: 最小窗口尺寸", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 13, "parallelIndex": 0, "status": "passed", "duration": 14311, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:26.389Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-bdc1ecbff8d38423b9fd", "file": "edge-cases.spec.ts", "line": 447, "column": 3 }, { "title": "UI-EDGE-02: 大窗口尺寸", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 13, "parallelIndex": 0, "status": "passed", "duration": 3999, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:40.711Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-ed5003375a342c42f163", "file": "edge-cases.spec.ts", "line": 463, "column": 3 }, { "title": "UI-EDGE-03: 窗口尺寸变化", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 13, "parallelIndex": 0, "status": "passed", "duration": 4855, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:49.598Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:44.726Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-9bef193dc4826f604ea2", "file": "edge-cases.spec.ts", "line": 477, "column": 3 }, { "title": "UI-EDGE-04: 深色模式(如果支持)", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 3747, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:19.481Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-290f5e1785c4fd09c14b", "file": "edge-cases.spec.ts", "line": 500, "column": 3 }, { "title": "UI-EDGE-05: 减少动画(如果支持)", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 3742, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:23.238Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-7f8cb332f66ed8a0748d", "file": "edge-cases.spec.ts", "line": 511, "column": 3 } ] }, { "title": "输入验证边界情况", "file": "edge-cases.spec.ts", "line": 526, "column": 6, "specs": [ { "title": "INPUT-EDGE-01: XSS 注入尝试", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 5868, "errors": [], "stdout": [ { "text": "XSS test passed - no alert shown\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:26.993Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-d736d79147d4b4699d6b", "file": "edge-cases.spec.ts", "line": 533, "column": 3 }, { "title": "INPUT-EDGE-02: HTML 标签输入", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 5871, "errors": [], "stdout": [ { "text": "HTML input test completed\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:38.769Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:32.874Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-b66a0093de81d25c35fc", "file": "edge-cases.spec.ts", "line": 550, "column": 3 }, { "title": "INPUT-EDGE-03: JSON 格式参数", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 15, "parallelIndex": 3, "status": "passed", "duration": 5287, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:24.059Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-6bd313ef95210a4ddd80", "file": "edge-cases.spec.ts", "line": 564, "column": 3 } ] }, { "title": "并发操作边界情况", "file": "edge-cases.spec.ts", "line": 596, "column": 6, "specs": [ { "title": "CONCURRENT-EDGE-01: 同时发送多条消息", "ok": false, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 15, "parallelIndex": 3, "status": "failed", "duration": 14872, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:627:39", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 39, "line": 627 }, "snippet": "\u001b[0m \u001b[90m 625 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mCHAT\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 626 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 627 |\u001b[39m expect(stateAfter\u001b[33m?\u001b[39m\u001b[33m.\u001b[39misStreaming)\u001b[33m.\u001b[39mtoBe(\u001b[36mfalse\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 628 |\u001b[39m }\n \u001b[90m 629 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 630 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 39, "line": 627 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n 625 | }>(page, STORE_NAMES.CHAT);\n 626 |\n> 627 | expect(stateAfter?.isStreaming).toBe(false);\n | ^\n 628 | }\n 629 | });\n 630 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts:627:39" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:44.251Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:29.357Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-并发操作边界情况-CONCURRENT-EDGE-01-同时发送多条消息-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-并发操作边界情况-CONCURRENT-EDGE-01-同时发送多条消息-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\edge-cases-并发操作边界情况-CONCURRENT-EDGE-01-同时发送多条消息-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\edge-cases.spec.ts", "column": 39, "line": 627 } } ], "status": "unexpected" } ], "id": "db200a91ff2226597e25-07d6beb8b17f1db70d47", "file": "edge-cases.spec.ts", "line": 603, "column": 3 }, { "title": "CONCURRENT-EDGE-02: 操作中切换视图", "ok": true, "tags": [], "tests": [ { "timeout": 180000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "passed", "duration": 5564, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 边界情况验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:51.626Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:45.921Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "db200a91ff2226597e25-3b87fae09b5c4d538833", "file": "edge-cases.spec.ts", "line": 631, "column": 3 } ] } ] }, { "title": "functional-scenarios.spec.ts", "file": "functional-scenarios.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "1. 应用启动与初始化", "file": "functional-scenarios.spec.ts", "line": 75, "column": 6, "specs": [ { "title": "1.1 应用正常启动并渲染所有核心组件", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 10, "parallelIndex": 7, "status": "failed", "duration": 12817, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: getByRole('tab', { name: /分身/i })\nExpected: visible\nTimeout: 10000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 10000ms\u001b[22m\n\u001b[2m - waiting for getByRole('tab', { name: /分身/i })\u001b[22m\n", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: getByRole('tab', { name: /分身/i })\nExpected: visible\nTimeout: 10000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 10000ms\u001b[22m\n\u001b[2m - waiting for getByRole('tab', { name: /分身/i })\u001b[22m\n\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts:94:32", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 32, "line": 94 }, "snippet": "\u001b[0m \u001b[90m 92 |\u001b[39m \u001b[36mfor\u001b[39m (\u001b[36mconst\u001b[39m tab \u001b[36mof\u001b[39m tabs) {\n \u001b[90m 93 |\u001b[39m \u001b[36mconst\u001b[39m tabElement \u001b[33m=\u001b[39m page\u001b[33m.\u001b[39mgetByRole(\u001b[32m'tab'\u001b[39m\u001b[33m,\u001b[39m { name\u001b[33m:\u001b[39m \u001b[36mnew\u001b[39m \u001b[33mRegExp\u001b[39m(tab\u001b[33m,\u001b[39m \u001b[32m'i'\u001b[39m) })\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 94 |\u001b[39m \u001b[36mawait\u001b[39m expect(tabElement)\u001b[33m.\u001b[39mtoBeVisible()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 95 |\u001b[39m }\n \u001b[90m 96 |\u001b[39m\n \u001b[90m 97 |\u001b[39m \u001b[36mawait\u001b[39m takeScreenshot(page\u001b[33m,\u001b[39m \u001b[32m'01-app-initialized'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 32, "line": 94 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: getByRole('tab', { name: /分身/i })\nExpected: visible\nTimeout: 10000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 10000ms\u001b[22m\n\u001b[2m - waiting for getByRole('tab', { name: /分身/i })\u001b[22m\n\n\n 92 | for (const tab of tabs) {\n 93 | const tabElement = page.getByRole('tab', { name: new RegExp(tab, 'i') });\n> 94 | await expect(tabElement).toBeVisible();\n | ^\n 95 | }\n 96 |\n 97 | await takeScreenshot(page, '01-app-initialized');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts:94:32" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:43.861Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:31.027Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-1-应用启动与初始化-1-1-应用正常启动并渲染所有核心组件-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-1-应用启动与初始化-1-1-应用正常启动并渲染所有核心组件-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-1-应用启动与初始化-1-1-应用正常启动并渲染所有核心组件-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 32, "line": 94 } } ], "status": "unexpected" } ], "id": "ea562bc8f2f5f42dadea-a9ad995be4600240d5d9", "file": "functional-scenarios.spec.ts", "line": 77, "column": 3 }, { "title": "1.2 Zustand 状态持久化正常加载", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2299, "errors": [], "stdout": [ { "text": "Chat storage exists: \u001b[33mfalse\u001b[39m\n" }, { "text": "Gateway storage exists: \u001b[33mfalse\u001b[39m\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:45.458Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-a65a3f1d80bb007eab27", "file": "functional-scenarios.spec.ts", "line": 113, "column": 3 }, { "title": "1.3 Gateway 连接状态检查", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 7520, "errors": [], "stdout": [ { "text": "Connection logs: []\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:47.920Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-bfedf5425166cfcdfaa3", "file": "functional-scenarios.spec.ts", "line": 137, "column": 3 } ] }, { "title": "2. 聊天功能", "file": "functional-scenarios.spec.ts", "line": 168, "column": 6, "specs": [ { "title": "2.1 聊天输入框功能", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2319, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:55.454Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-8d75fafdc1734094d51f", "file": "functional-scenarios.spec.ts", "line": 175, "column": 3 }, { "title": "2.2 发送消息并检查响应", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 7658, "errors": [], "stdout": [ { "text": "Messages found: 1\n" }, { "text": "User message visible: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:57.790Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-29f3df3e2afdf21d40d4", "file": "functional-scenarios.spec.ts", "line": 196, "column": 3 }, { "title": "2.3 会话切换功能", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2232, "errors": [], "stdout": [ { "text": "Conversation items found: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:07.713Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:05.462Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-7d5af09171af56333005", "file": "functional-scenarios.spec.ts", "line": 225, "column": 3 }, { "title": "2.4 新建会话功能", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 2758, "errors": [], "stdout": [ { "text": "Messages after new chat: 1\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:38.806Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-07ab230db79d60aeeba0", "file": "functional-scenarios.spec.ts", "line": 245, "column": 3 }, { "title": "2.5 消息流式显示", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 8913, "errors": [], "stdout": [ { "text": "Streaming indicator visible: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:41.576Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-1094b9a79f676d0719ae", "file": "functional-scenarios.spec.ts", "line": 262, "column": 3 }, { "title": "2.6 错误处理 - 网络断开", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 5540, "errors": [], "stdout": [ { "text": "Error message shown: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:50.504Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-1b314e3f6d18541a9631", "file": "functional-scenarios.spec.ts", "line": 286, "column": 3 } ] }, { "title": "3. Agent/分身管理", "file": "functional-scenarios.spec.ts", "line": 319, "column": 6, "specs": [ { "title": "3.1 分身列表显示", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 3371, "errors": [], "stdout": [ { "text": "Clone/Agent items found: 1\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:56.056Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-aa98d5dacb19aae6a62f", "file": "functional-scenarios.spec.ts", "line": 327, "column": 3 }, { "title": "3.2 创建新分身", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 2810, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:59.442Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-86c06416e3c35d9f7515", "file": "functional-scenarios.spec.ts", "line": 345, "column": 3 }, { "title": "3.3 切换分身", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "passed", "duration": 2316, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:04.597Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:02.267Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-34bdc2473567b059beb7", "file": "functional-scenarios.spec.ts", "line": 372, "column": 3 }, { "title": "3.4 分身设置修改", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 13, "parallelIndex": 0, "status": "passed", "duration": 2452, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:49.650Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-9233421f7c81b0665491", "file": "functional-scenarios.spec.ts", "line": 393, "column": 3 } ] }, { "title": "4. Hands 系统", "file": "functional-scenarios.spec.ts", "line": 417, "column": 6, "specs": [ { "title": "4.1 Hands 列表显示", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 13, "parallelIndex": 0, "status": "failed", "duration": 5361, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThanOrEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: >= \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThanOrEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: >= \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts:448:21", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 21, "line": 448 }, "snippet": "\u001b[0m \u001b[90m 446 |\u001b[39m \u001b[90m// 如果没有空状态,应该有至少 1 个 Hand\u001b[39m\n \u001b[90m 447 |\u001b[39m \u001b[36mif\u001b[39m (\u001b[33m!\u001b[39mhasEmptyState) {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 448 |\u001b[39m expect(count)\u001b[33m.\u001b[39mtoBeGreaterThanOrEqual(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 449 |\u001b[39m }\n \u001b[90m 450 |\u001b[39m\n \u001b[90m 451 |\u001b[39m \u001b[36mawait\u001b[39m takeScreenshot(page\u001b[33m,\u001b[39m \u001b[32m'13-hands-list'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 21, "line": 448 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThanOrEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: >= \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 446 | // 如果没有空状态,应该有至少 1 个 Hand\n 447 | if (!hasEmptyState) {\n> 448 | expect(count).toBeGreaterThanOrEqual(1);\n | ^\n 449 | }\n 450 |\n 451 | await takeScreenshot(page, '13-hands-list');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts:448:21" } ], "stdout": [ { "text": "Hand buttons found: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:54:57.493Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:52.115Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-4-Hands-系统-4-1-Hands-列表显示-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-4-Hands-系统-4-1-Hands-列表显示-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-4-Hands-系统-4-1-Hands-列表显示-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 21, "line": 448 } } ], "status": "unexpected" } ], "id": "ea562bc8f2f5f42dadea-24005574dbd87061e5f7", "file": "functional-scenarios.spec.ts", "line": 426, "column": 3 }, { "title": "4.2 Hand 触发功能", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 22, "parallelIndex": 0, "status": "passed", "duration": 3493, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:58.959Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-9ddc909591300f97d66d", "file": "functional-scenarios.spec.ts", "line": 454, "column": 3 }, { "title": "4.3 Hand 审批流程", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 22, "parallelIndex": 0, "status": "passed", "duration": 3423, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:02.574Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-08c5a6874fd4f6ae1368", "file": "functional-scenarios.spec.ts", "line": 475, "column": 3 }, { "title": "4.4 Hand 任务历史", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 22, "parallelIndex": 0, "status": "passed", "duration": 3448, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:06.013Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-8677f2222c2e03f27642", "file": "functional-scenarios.spec.ts", "line": 500, "column": 3 } ] }, { "title": "5. 工作流管理", "file": "functional-scenarios.spec.ts", "line": 516, "column": 6, "specs": [ { "title": "5.1 工作流列表显示", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 22, "parallelIndex": 0, "status": "passed", "duration": 3517, "errors": [], "stdout": [ { "text": "Workflow items found: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:13.018Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:09.478Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-ebe9458f4e5a4fe71b98", "file": "functional-scenarios.spec.ts", "line": 525, "column": 3 }, { "title": "5.2 创建工作流", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "passed", "duration": 3759, "errors": [], "stdout": [ { "text": "Workflow editor visible: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:51.665Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-e579ea4311d8347c4b39", "file": "functional-scenarios.spec.ts", "line": 535, "column": 3 }, { "title": "5.3 工作流执行状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "passed", "duration": 3312, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:55.436Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-d536d147b08c7a39da8f", "file": "functional-scenarios.spec.ts", "line": 553, "column": 3 }, { "title": "5.4 定时任务配置", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "passed", "duration": 3264, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:54:58.761Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-3f29cb5de08044735b67", "file": "functional-scenarios.spec.ts", "line": 566, "column": 3 } ] }, { "title": "6. 团队协作", "file": "functional-scenarios.spec.ts", "line": 581, "column": 6, "specs": [ { "title": "6.1 团队列表显示", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "passed", "duration": 3331, "errors": [], "stdout": [ { "text": "Team items found: 0\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:02.037Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-200e9c2cad3713eb164b", "file": "functional-scenarios.spec.ts", "line": 590, "column": 3 }, { "title": "6.2 创建团队", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "passed", "duration": 3273, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:05.381Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-518611cb8b9dd4744bed", "file": "functional-scenarios.spec.ts", "line": 601, "column": 3 }, { "title": "6.3 团队成员管理", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "passed", "duration": 3408, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:12.095Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:08.669Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-0f6ca26b248b39ef0088", "file": "functional-scenarios.spec.ts", "line": 618, "column": 3 } ] }, { "title": "7. Swarm 协作", "file": "functional-scenarios.spec.ts", "line": 640, "column": 6, "specs": [ { "title": "7.1 Swarm 仪表板显示", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 23, "parallelIndex": 4, "status": "passed", "duration": 3384, "errors": [], "stdout": [ { "text": "Swarm dashboard visible: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:02.698Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-dbf36efb0f1fe8aea83c", "file": "functional-scenarios.spec.ts", "line": 649, "column": 3 }, { "title": "7.2 创建协作任务", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 23, "parallelIndex": 4, "status": "passed", "duration": 3370, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:06.265Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-e60a57b2536be6ce9b76", "file": "functional-scenarios.spec.ts", "line": 659, "column": 3 }, { "title": "7.3 协作模式选择", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 23, "parallelIndex": 4, "status": "passed", "duration": 3582, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:09.651Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-e43355e4f2518218e935", "file": "functional-scenarios.spec.ts", "line": 679, "column": 3 } ] }, { "title": "8. 设置页面", "file": "functional-scenarios.spec.ts", "line": 705, "column": 6, "specs": [ { "title": "8.1 打开设置页面", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 23, "parallelIndex": 4, "status": "passed", "duration": 2836, "errors": [], "stdout": [ { "text": "Settings layout visible: true\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:13.253Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-89aa02774ce6fda0c876", "file": "functional-scenarios.spec.ts", "line": 712, "column": 3 }, { "title": "8.2 通用设置", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 23, "parallelIndex": 4, "status": "passed", "duration": 3113, "errors": [], "stdout": [ { "text": "Username input visible: true\n" }, { "text": "Theme selector visible: false\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:16.108Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-cfd92e4e37065f6e419f", "file": "functional-scenarios.spec.ts", "line": 732, "column": 3 }, { "title": "8.3 模型配置", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 23, "parallelIndex": 4, "status": "passed", "duration": 3548, "errors": [], "stdout": [ { "text": "Model options found: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:22.810Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:19.240Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-faee21c3e777f7004b5c", "file": "functional-scenarios.spec.ts", "line": 754, "column": 3 }, { "title": "8.4 Gateway 配置", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 14, "parallelIndex": 1, "status": "failed", "duration": 2742, "error": { "message": "Error: locator.isVisible: Error: strict mode violation: locator('[class*=\"gateway\"]').or(getByText(/gateway|服务器|server/i)) resolved to 3 elements:\n 1)

Gateway 连接

aka getByRole('heading', { name: 'Gateway 连接' })\n 2)
Failed to connect to OpenFang: REST API error: 50…
aka getByText('Failed to connect to OpenFang')\n 3) aka getByRole('button', { name: '连接 Gateway' })\n\nCall log:\n\u001b[2m - checking visibility of locator('[class*=\"gateway\"]').or(getByText(/gateway|服务器|server/i))\u001b[22m\n", "stack": "Error: locator.isVisible: Error: strict mode violation: locator('[class*=\"gateway\"]').or(getByText(/gateway|服务器|server/i)) resolved to 3 elements:\n 1)

Gateway 连接

aka getByRole('heading', { name: 'Gateway 连接' })\n 2)
Failed to connect to OpenFang: REST API error: 50…
aka getByText('Failed to connect to OpenFang')\n 3) aka getByRole('button', { name: '连接 Gateway' })\n\nCall log:\n\u001b[2m - checking visibility of locator('[class*=\"gateway\"]').or(getByText(/gateway|服务器|server/i))\u001b[22m\n\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts:792:68", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 68, "line": 792 }, "snippet": "\u001b[0m \u001b[90m 790 |\u001b[39m )\u001b[33m;\u001b[39m\n \u001b[90m 791 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 792 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m`Gateway section visible: ${await gatewaySection.isVisible()}`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 793 |\u001b[39m\n \u001b[90m 794 |\u001b[39m \u001b[36mawait\u001b[39m takeScreenshot(page\u001b[33m,\u001b[39m \u001b[32m'30-gateway-settings'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 795 |\u001b[39m }\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 68, "line": 792 }, "message": "Error: locator.isVisible: Error: strict mode violation: locator('[class*=\"gateway\"]').or(getByText(/gateway|服务器|server/i)) resolved to 3 elements:\n 1)

Gateway 连接

aka getByRole('heading', { name: 'Gateway 连接' })\n 2)
Failed to connect to OpenFang: REST API error: 50…
aka getByText('Failed to connect to OpenFang')\n 3) aka getByRole('button', { name: '连接 Gateway' })\n\nCall log:\n\u001b[2m - checking visibility of locator('[class*=\"gateway\"]').or(getByText(/gateway|服务器|server/i))\u001b[22m\n\n\n 790 | );\n 791 |\n> 792 | console.log(`Gateway section visible: ${await gatewaySection.isVisible()}`);\n | ^\n 793 |\n 794 | await takeScreenshot(page, '30-gateway-settings');\n 795 | }\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts:792:68" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:07.381Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:04.603Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-8-设置页面-8-4-Gateway-配置-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-8-设置页面-8-4-Gateway-配置-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\functional-scenarios-8-设置页面-8-4-Gateway-配置-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\functional-scenarios.spec.ts", "column": 68, "line": 792 } } ], "status": "unexpected" } ], "id": "ea562bc8f2f5f42dadea-57826451109b7b0eb737", "file": "functional-scenarios.spec.ts", "line": 780, "column": 3 }, { "title": "8.5 保存设置", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 24, "parallelIndex": 1, "status": "passed", "duration": 3029, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:08.812Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-0c4f5a9755f23a987ba1", "file": "functional-scenarios.spec.ts", "line": 798, "column": 3 } ] }, { "title": "9. 右侧面板", "file": "functional-scenarios.spec.ts", "line": 830, "column": 6, "specs": [ { "title": "9.1 右侧面板显示", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 24, "parallelIndex": 1, "status": "passed", "duration": 2402, "errors": [], "stdout": [ { "text": "Right panel visible\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:11.994Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-e24ba57000b813484007", "file": "functional-scenarios.spec.ts", "line": 837, "column": 3 }, { "title": "9.2 上下文信息显示", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 24, "parallelIndex": 1, "status": "passed", "duration": 2258, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:14.410Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-1cb29e8c4333e109f987", "file": "functional-scenarios.spec.ts", "line": 849, "column": 3 }, { "title": "9.3 记忆面板", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 24, "parallelIndex": 1, "status": "passed", "duration": 2598, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:16.685Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-a7fb1d84aec1ba9f1048", "file": "functional-scenarios.spec.ts", "line": 861, "column": 3 } ] }, { "title": "10. 完整用户流程", "file": "functional-scenarios.spec.ts", "line": 877, "column": 6, "specs": [ { "title": "10.1 新用户首次使用流程", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 24, "parallelIndex": 1, "status": "passed", "duration": 2821, "errors": [], "stdout": [ { "text": "Onboarding visible: false\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:22.140Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:19.303Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-a7748a481231499278de", "file": "functional-scenarios.spec.ts", "line": 879, "column": 3 }, { "title": "10.2 完整聊天流程", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 8775, "errors": [], "stdout": [ { "text": "Total messages: 0\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:07.721Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-27f22490c6765498e906", "file": "functional-scenarios.spec.ts", "line": 902, "column": 3 }, { "title": "10.3 跨视图切换流程", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 7854, "errors": [], "stdout": [ { "text": "Switched to: 分身\n" }, { "text": "Switched to: Hands\n" }, { "text": "Switched to: 工作流\n" }, { "text": "Switched to: 团队\n" }, { "text": "Switched to: 协作\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:16.507Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-603dcb2c21548395d5c4", "file": "functional-scenarios.spec.ts", "line": 933, "column": 3 }, { "title": "10.4 会话持久化测试", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 6207, "errors": [], "stdout": [ { "text": "Messages after reload: 1\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:24.375Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-f263b0444e32cbdcd687", "file": "functional-scenarios.spec.ts", "line": 950, "column": 3 } ] }, { "title": "11. 性能与稳定性", "file": "functional-scenarios.spec.ts", "line": 979, "column": 6, "specs": [ { "title": "11.1 页面加载性能", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2187, "errors": [], "stdout": [ { "text": "Page load time: 1948ms\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:30.592Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-bc2abfa011f20988b878", "file": "functional-scenarios.spec.ts", "line": 981, "column": 3 }, { "title": "11.2 内存使用", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2273, "errors": [], "stdout": [ { "text": "DOM nodes: 147\n" }, { "text": "JS heap: 22MB\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:32.789Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-79463e8d52b9f58c06da", "file": "functional-scenarios.spec.ts", "line": 991, "column": 3 }, { "title": "11.3 快速操作稳定性", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 3440, "errors": [], "stdout": [ { "text": "Errors after rapid switching: 0\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:38.530Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:35.072Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-0ad2f283bdf873e423bc", "file": "functional-scenarios.spec.ts", "line": 1009, "column": 3 }, { "title": "11.4 长时间运行稳定性", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 21, "parallelIndex": 6, "status": "passed", "duration": 4219, "errors": [], "stdout": [ { "text": "After extended use - DOM: 186, localStorage keys: 5\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:09.995Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-233185470e18cdb79c26", "file": "functional-scenarios.spec.ts", "line": 1029, "column": 3 } ] }, { "title": "12. 无障碍性", "file": "functional-scenarios.spec.ts", "line": 1078, "column": 6, "specs": [ { "title": "12.1 键盘导航", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 21, "parallelIndex": 6, "status": "passed", "duration": 3450, "errors": [], "stdout": [ { "text": "Focused element visible: true\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:14.228Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-991f9ae37a37be716ba4", "file": "functional-scenarios.spec.ts", "line": 1080, "column": 3 }, { "title": "12.2 ARIA 属性", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 21, "parallelIndex": 6, "status": "passed", "duration": 2492, "errors": [], "stdout": [ { "text": "Buttons without accessible name: 0 out of 11\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:17.694Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-9f6e5165c537a7b70d88", "file": "functional-scenarios.spec.ts", "line": 1097, "column": 3 }, { "title": "12.3 焦点管理", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 21, "parallelIndex": 6, "status": "passed", "duration": 3408, "errors": [], "stdout": [ { "text": "Focus returned after Escape: false\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW 前端功能验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:55:23.630Z\n" }, { "text": "截图目录: test-results/screenshots\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:20.198Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "ea562bc8f2f5f42dadea-560ac400ac05bb8f839b", "file": "functional-scenarios.spec.ts", "line": 1120, "column": 3 } ] } ] }, { "title": "memory.spec.ts", "file": "memory.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "Memory System - Conversation Persistence Tests", "file": "memory.spec.ts", "line": 29, "column": 6, "specs": [ { "title": "MEM-PERSIST-01: Conversation saves to localStorage", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 20, "parallelIndex": 3, "status": "failed", "duration": 5266, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m2\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m2\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:79:43", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 79 }, "snippet": "\u001b[0m \u001b[90m 77 |\u001b[39m\n \u001b[90m 78 |\u001b[39m expect(storedState)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 79 |\u001b[39m expect(storedState\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m2\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 80 |\u001b[39m expect(storedState\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages[\u001b[35m0\u001b[39m]\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcontent)\u001b[33m.\u001b[39mtoBe(\u001b[32m'Test message for persistence'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 81 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 82 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 79 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m2\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 77 |\n 78 | expect(storedState).not.toBeNull();\n> 79 | expect(storedState?.messages?.length).toBe(2);\n | ^\n 80 | expect(storedState?.messages[0]?.content).toBe('Test message for persistence');\n 81 | });\n 82 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:79:43" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:17.441Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:12.151Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-3d8e8-ation-saves-to-localStorage-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-3d8e8-ation-saves-to-localStorage-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-3d8e8-ation-saves-to-localStorage-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 79 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-22962195a7a7ce2a6aff", "file": "memory.spec.ts", "line": 40, "column": 3 }, { "title": "MEM-PERSIST-02: Conversation persists across page reload", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 28, "parallelIndex": 3, "status": "failed", "duration": 7838, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m0\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m0\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:118:41", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 41, "line": 118 }, "snippet": "\u001b[0m \u001b[90m 116 |\u001b[39m\n \u001b[90m 117 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 118 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 119 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 120 |\u001b[39m\n \u001b[90m 121 |\u001b[39m test(\u001b[32m'MEM-PERSIST-03: Multiple conversations maintained'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 41, "line": 118 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m0\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 116 |\n 117 | expect(state?.conversations).toBeDefined();\n> 118 | expect(state?.conversations.length).toBeGreaterThan(0);\n | ^\n 119 | });\n 120 |\n 121 | test('MEM-PERSIST-03: Multiple conversations maintained', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:118:41" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:26.946Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:18.929Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-6903d-persists-across-page-reload-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-6903d-persists-across-page-reload-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-6903d-persists-across-page-reload-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 41, "line": 118 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-bdee124f5b89ef9bffc2", "file": "memory.spec.ts", "line": 83, "column": 3 }, { "title": "MEM-PERSIST-03: Multiple conversations maintained", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 31, "parallelIndex": 3, "status": "failed", "duration": 4873, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m3\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m3\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:177:42", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 42, "line": 177 }, "snippet": "\u001b[0m \u001b[90m 175 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 176 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 177 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m3\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 178 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmap(c \u001b[33m=>\u001b[39m c\u001b[33m.\u001b[39mtitle))\u001b[33m.\u001b[39mtoContain(\u001b[32m'First Conversation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 179 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmap(c \u001b[33m=>\u001b[39m c\u001b[33m.\u001b[39mtitle))\u001b[33m.\u001b[39mtoContain(\u001b[32m'Second Conversation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 180 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmap(c \u001b[33m=>\u001b[39m c\u001b[33m.\u001b[39mtitle))\u001b[33m.\u001b[39mtoContain(\u001b[32m'Third Conversation'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 42, "line": 177 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m3\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 175 | }>(page);\n 176 |\n> 177 | expect(state?.conversations?.length).toBe(3);\n | ^\n 178 | expect(state?.conversations?.map(c => c.title)).toContain('First Conversation');\n 179 | expect(state?.conversations?.map(c => c.title)).toContain('Second Conversation');\n 180 | expect(state?.conversations?.map(c => c.title)).toContain('Third Conversation');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:177:42" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:33.342Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:28.295Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-9c52d-le-conversations-maintained-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-9c52d-le-conversations-maintained-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-9c52d-le-conversations-maintained-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 42, "line": 177 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-792996793955cdf377d4", "file": "memory.spec.ts", "line": 121, "column": 3 }, { "title": "MEM-PERSIST-04: Switch between conversations", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 22, "parallelIndex": 0, "status": "failed", "duration": 4280, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"conv-b\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"conv-b\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:239:36", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 239 }, "snippet": "\u001b[0m \u001b[90m 237 |\u001b[39m\n \u001b[90m 238 |\u001b[39m expect(switchResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 239 |\u001b[39m expect(switchResult\u001b[33m.\u001b[39mcurrentId)\u001b[33m.\u001b[39mtoBe(\u001b[32m'conv-b'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 240 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 241 |\u001b[39m\n \u001b[90m 242 |\u001b[39m test(\u001b[32m'MEM-PERSIST-05: Delete conversation removes from list'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 239 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"conv-b\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n\n 237 |\n 238 | expect(switchResult.success).toBe(true);\n> 239 | expect(switchResult.currentId).toBe('conv-b');\n | ^\n 240 | });\n 241 |\n 242 | test('MEM-PERSIST-05: Delete conversation removes from list', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:239:36" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:17.378Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:13.068Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-f5fc8-witch-between-conversations-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-f5fc8-witch-between-conversations-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-f5fc8-witch-between-conversations-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 239 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-82da423e41285d5f4051", "file": "memory.spec.ts", "line": 183, "column": 3 }, { "title": "MEM-PERSIST-05: Delete conversation removes from list", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 27, "parallelIndex": 0, "status": "failed", "duration": 4535, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:295:36", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 295 }, "snippet": "\u001b[0m \u001b[90m 293 |\u001b[39m\n \u001b[90m 294 |\u001b[39m expect(deleteResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 295 |\u001b[39m expect(deleteResult\u001b[33m.\u001b[39mremaining)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 296 |\u001b[39m expect(deleteResult\u001b[33m.\u001b[39mcurrentId)\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m 297 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 298 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 295 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 293 |\n 294 | expect(deleteResult.success).toBe(true);\n> 295 | expect(deleteResult.remaining).toBe(1);\n | ^\n 296 | expect(deleteResult.currentId).toBeNull();\n 297 | });\n 298 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:295:36" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:23.620Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:18.912Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-ac1f6-versation-removes-from-list-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-ac1f6-versation-removes-from-list-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-ac1f6-versation-removes-from-list-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 295 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-3112a034bd1fb1b126d7", "file": "memory.spec.ts", "line": 242, "column": 3 }, { "title": "MEM-PERSIST-06: New conversation starts fresh", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 29, "parallelIndex": 0, "status": "passed", "duration": 4051, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:29.191Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:25.021Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "7ae46fcbe7df2182c676-10c7f62898f08c817fff", "file": "memory.spec.ts", "line": 299, "column": 3 } ] }, { "title": "Memory System - Cross-Session Memory Tests", "file": "memory.spec.ts", "line": 351, "column": 6, "specs": [ { "title": "MEM-CROSS-01: Session key maintains context", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 24, "parallelIndex": 1, "status": "failed", "duration": 4540, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"session_1774482925843-ornsr9xz5\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"session_1774482925843-ornsr9xz5\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:387:31", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 31, "line": 387 }, "snippet": "\u001b[0m \u001b[90m 385 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 386 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 387 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39msessionKey)\u001b[33m.\u001b[39mtoBe(sessionKey)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 388 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 389 |\u001b[39m\n \u001b[90m 390 |\u001b[39m test(\u001b[32m'MEM-CROSS-02: Agent identity persists across sessions'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 31, "line": 387 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"session_1774482925843-ornsr9xz5\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n\n 385 | }>(page);\n 386 |\n> 387 | expect(state?.sessionKey).toBe(sessionKey);\n | ^\n 388 | });\n 389 |\n 390 | test('MEM-CROSS-02: Agent identity persists across sessions', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:387:31" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:26.747Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:22.182Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-8df31-ssion-key-maintains-context-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-8df31-ssion-key-maintains-context-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-8df31-ssion-key-maintains-context-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 31, "line": 387 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-fe59580d29a95dd23981", "file": "memory.spec.ts", "line": 362, "column": 3 }, { "title": "MEM-CROSS-02: Agent identity persists across sessions", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 30, "parallelIndex": 1, "status": "passed", "duration": 7751, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:28.088Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "7ae46fcbe7df2182c676-30b4fd268b89e5984d66", "file": "memory.spec.ts", "line": 390, "column": 3 }, { "title": "MEM-CROSS-03: Model selection persists", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 30, "parallelIndex": 1, "status": "failed", "duration": 7394, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"claude-\u001b[7m3-haiku-20240307\u001b[27m\"\u001b[39m\nReceived: \u001b[31m\"claude-\u001b[7msonnet-4-20250514\u001b[27m\"\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"claude-\u001b[7m3-haiku-20240307\u001b[27m\"\u001b[39m\nReceived: \u001b[31m\"claude-\u001b[7msonnet-4-20250514\u001b[27m\"\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:447:33", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 33, "line": 447 }, "snippet": "\u001b[0m \u001b[90m 445 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 446 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 447 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcurrentModel)\u001b[33m.\u001b[39mtoBe(testModel)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 448 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 449 |\u001b[39m\n \u001b[90m 450 |\u001b[39m test(\u001b[32m'MEM-CROSS-04: Long conversation history maintained'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 33, "line": 447 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"claude-\u001b[7m3-haiku-20240307\u001b[27m\"\u001b[39m\nReceived: \u001b[31m\"claude-\u001b[7msonnet-4-20250514\u001b[27m\"\u001b[39m\n\n 445 | }>(page);\n 446 |\n> 447 | expect(state?.currentModel).toBe(testModel);\n | ^\n 448 | });\n 449 |\n 450 | test('MEM-CROSS-04: Long conversation history maintained', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:447:33" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:43.409Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:35.997Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-ac903-03-Model-selection-persists-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-ac903-03-Model-selection-persists-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-ac903-03-Model-selection-persists-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 33, "line": 447 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-3c9ea33760715b3bd328", "file": "memory.spec.ts", "line": 423, "column": 3 }, { "title": "MEM-CROSS-04: Long conversation history maintained", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 23, "parallelIndex": 4, "status": "failed", "duration": 7408, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m50\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m50\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:492:37", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 492 }, "snippet": "\u001b[0m \u001b[90m 490 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 491 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 492 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m50\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 493 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 494 |\u001b[39m\n \u001b[90m 495 |\u001b[39m test(\u001b[32m'MEM-CROSS-05: Memory survives browser close simulation'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 492 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m50\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 490 | }>(page);\n 491 |\n> 492 | expect(state?.messages?.length).toBe(50);\n | ^\n 493 | });\n 494 |\n 495 | test('MEM-CROSS-05: Memory survives browser close simulation', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:492:37" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:30.286Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:22.856Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-e5533-ersation-history-maintained-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-e5533-ersation-history-maintained-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-e5533-ersation-history-maintained-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 492 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-33a6f6be59dd7743ea5a", "file": "memory.spec.ts", "line": 450, "column": 3 }, { "title": "MEM-CROSS-05: Memory survives browser close simulation", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 33, "parallelIndex": 4, "status": "failed", "duration": 7649, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m0\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m0\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:537:42", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 42, "line": 537 }, "snippet": "\u001b[0m \u001b[90m 535 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 536 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 537 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 538 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39m[\u001b[35m0\u001b[39m]\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtitle)\u001b[33m.\u001b[39mtoContain(\u001b[32m'Important'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 539 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 540 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 42, "line": 537 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m0\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 535 | }>(page);\n 536 |\n> 537 | expect(state?.conversations?.length).toBeGreaterThan(0);\n | ^\n 538 | expect(state?.conversations?.[0]?.title).toContain('Important');\n 539 | });\n 540 | });\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:537:42" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:39.447Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:31.655Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-e3cb9-es-browser-close-simulation-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-e3cb9-es-browser-close-simulation-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Cro-e3cb9-es-browser-close-simulation-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 42, "line": 537 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-ec6979626f9b9d20b17a", "file": "memory.spec.ts", "line": 495, "column": 3 } ] }, { "title": "Memory System - Context Compression Tests", "file": "memory.spec.ts", "line": 545, "column": 6, "specs": [ { "title": "MEM-COMP-01: Large context triggers compression check", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 39, "parallelIndex": 4, "status": "passed", "duration": 4174, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:45.473Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:41.149Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "7ae46fcbe7df2182c676-f833459e6c00d6537bc1", "file": "memory.spec.ts", "line": 556, "column": 3 }, { "title": "MEM-COMP-02: Compression preserves key information", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 21, "parallelIndex": 6, "status": "failed", "duration": 3924, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected substring: \u001b[32m\"Alice\"\u001b[39m\nReceived string: \u001b[31m\"\"\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected substring: \u001b[32m\"Alice\"\u001b[39m\nReceived string: \u001b[31m\"\"\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:631:24", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 631 }, "snippet": "\u001b[0m \u001b[90m 629 |\u001b[39m\n \u001b[90m 630 |\u001b[39m \u001b[36mconst\u001b[39m allContent \u001b[33m=\u001b[39m state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmap(m \u001b[33m=>\u001b[39m m\u001b[33m.\u001b[39mcontent)\u001b[33m.\u001b[39mjoin(\u001b[32m' '\u001b[39m) \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 631 |\u001b[39m expect(allContent)\u001b[33m.\u001b[39mtoContain(\u001b[32m'Alice'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 632 |\u001b[39m expect(allContent)\u001b[33m.\u001b[39mtoContain(\u001b[32m'Python'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 633 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 634 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 631 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected substring: \u001b[32m\"Alice\"\u001b[39m\nReceived string: \u001b[31m\"\"\u001b[39m\n\n 629 |\n 630 | const allContent = state?.messages?.map(m => m.content).join(' ') || '';\n> 631 | expect(allContent).toContain('Alice');\n | ^\n 632 | expect(allContent).toContain('Python');\n 633 | });\n 634 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:631:24" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:27.611Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:23.670Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-bfb66-n-preserves-key-information-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-bfb66-n-preserves-key-information-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-bfb66-n-preserves-key-information-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 631 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-1158c82d3f9744d4a66f", "file": "memory.spec.ts", "line": 605, "column": 3 }, { "title": "MEM-COMP-03: Context window limits respected", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 32, "parallelIndex": 6, "status": "passed", "duration": 4124, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:29.449Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "7ae46fcbe7df2182c676-412ad4514158eaa87b0d", "file": "memory.spec.ts", "line": 635, "column": 3 }, { "title": "MEM-COMP-04: Summarization creates compact representation", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 32, "parallelIndex": 6, "status": "failed", "duration": 3965, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m30\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m30\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:703:37", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 703 }, "snippet": "\u001b[0m \u001b[90m 701 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 702 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 703 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m30\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 704 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 705 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 706 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 703 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m30\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 701 | }>(page);\n 702 |\n> 703 | expect(state?.messages?.length).toBe(30);\n | ^\n 704 | });\n 705 | });\n 706 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:703:37" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:37.727Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:33.745Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-3e622-ates-compact-representation-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-3e622-ates-compact-representation-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Con-3e622-ates-compact-representation-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 703 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-c85512009ff4940f09b6", "file": "memory.spec.ts", "line": 667, "column": 3 } ] }, { "title": "Memory System - Memory Extraction Tests", "file": "memory.spec.ts", "line": 710, "column": 6, "specs": [ { "title": "MEM-EXTRACT-01: Extract user preferences from conversation", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 29, "parallelIndex": 0, "status": "passed", "duration": 4071, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:29.200Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "7ae46fcbe7df2182c676-e2f55047decff5875af4", "file": "memory.spec.ts", "line": 721, "column": 3 }, { "title": "MEM-EXTRACT-02: Extract factual information", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 29, "parallelIndex": 0, "status": "failed", "duration": 3994, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected substring: \u001b[32m\"December 15th\"\u001b[39m\nReceived string: \u001b[31m\"\"\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected substring: \u001b[32m\"December 15th\"\u001b[39m\nReceived string: \u001b[31m\"\"\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:784:24", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 784 }, "snippet": "\u001b[0m \u001b[90m 782 |\u001b[39m\n \u001b[90m 783 |\u001b[39m \u001b[36mconst\u001b[39m allContent \u001b[33m=\u001b[39m state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmap(m \u001b[33m=>\u001b[39m m\u001b[33m.\u001b[39mcontent)\u001b[33m.\u001b[39mjoin(\u001b[32m' '\u001b[39m) \u001b[33m||\u001b[39m \u001b[32m''\u001b[39m\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 784 |\u001b[39m expect(allContent)\u001b[33m.\u001b[39mtoContain(\u001b[32m'December 15th'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 785 |\u001b[39m expect(allContent)\u001b[33m.\u001b[39mtoContain(\u001b[32m'5 developers'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 786 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 787 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 784 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected substring: \u001b[32m\"December 15th\"\u001b[39m\nReceived string: \u001b[31m\"\"\u001b[39m\n\n 782 |\n 783 | const allContent = state?.messages?.map(m => m.content).join(' ') || '';\n> 784 | expect(allContent).toContain('December 15th');\n | ^\n 785 | expect(allContent).toContain('5 developers');\n 786 | });\n 787 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:784:24" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:37.304Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:33.293Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Mem-53c3a-Extract-factual-information-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Mem-53c3a-Extract-factual-information-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Mem-53c3a-Extract-factual-information-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 784 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-2c670fc66b6fd41f9c06", "file": "memory.spec.ts", "line": 758, "column": 3 }, { "title": "MEM-EXTRACT-03: Memory importance scoring", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 36, "parallelIndex": 0, "status": "passed", "duration": 4139, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:42.942Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:38.648Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "7ae46fcbe7df2182c676-19d10f6bbfd1197e4e09", "file": "memory.spec.ts", "line": 788, "column": 3 }, { "title": "MEM-EXTRACT-04: Memory search retrieves relevant info", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 34, "parallelIndex": 2, "status": "failed", "duration": 3999, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeDefined\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeDefined\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:851:24", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 851 }, "snippet": "\u001b[0m \u001b[90m 849 |\u001b[39m\n \u001b[90m 850 |\u001b[39m \u001b[36mconst\u001b[39m apiMessage \u001b[33m=\u001b[39m state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mfind(m \u001b[33m=>\u001b[39m m\u001b[33m.\u001b[39mcontent\u001b[33m.\u001b[39mincludes(\u001b[32m'API key'\u001b[39m))\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 851 |\u001b[39m expect(apiMessage)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 852 |\u001b[39m expect(apiMessage\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcontent)\u001b[33m.\u001b[39mtoContain(\u001b[32m'sk-test-12345'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 853 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 854 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 851 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeDefined\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mundefined\u001b[39m\n\n 849 |\n 850 | const apiMessage = state?.messages?.find(m => m.content.includes('API key'));\n> 851 | expect(apiMessage).toBeDefined();\n | ^\n 852 | expect(apiMessage?.content).toContain('sk-test-12345');\n 853 | });\n 854 | });\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:851:24" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:38.287Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:34.135Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Mem-4b08d-rch-retrieves-relevant-info-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Mem-4b08d-rch-retrieves-relevant-info-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Mem-4b08d-rch-retrieves-relevant-info-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 24, "line": 851 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-380b58f3f110bfdabfa4", "file": "memory.spec.ts", "line": 825, "column": 3 } ] }, { "title": "Memory System - Integration Tests", "file": "memory.spec.ts", "line": 859, "column": 6, "specs": [ { "title": "MEM-INT-01: Full conversation flow with memory", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 38, "parallelIndex": 2, "status": "failed", "duration": 7656, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m2\u001b[39m\nReceived: \u001b[31m0\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m2\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:907:37", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 907 }, "snippet": "\u001b[0m \u001b[90m 905 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 906 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 907 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m2\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 908 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 909 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconversations\u001b[33m?\u001b[39m\u001b[33m.\u001b[39m[\u001b[35m0\u001b[39m]\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtitle)\u001b[33m.\u001b[39mtoBe(\u001b[32m'Memory Integration Test'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 910 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 907 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m2\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\n 905 | }>(page);\n 906 |\n> 907 | expect(state?.messages?.length).toBe(2);\n | ^\n 908 | expect(state?.conversations?.length).toBe(1);\n 909 | expect(state?.conversations?.[0]?.title).toBe('Memory Integration Test');\n 910 | });\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:907:37" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:48.102Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:40.274Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-aae46-nversation-flow-with-memory-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-aae46-nversation-flow-with-memory-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-aae46-nversation-flow-with-memory-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 37, "line": 907 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-76c690f9e170c3b7fb06", "file": "memory.spec.ts", "line": 861, "column": 3 }, { "title": "MEM-INT-02: Memory survives multiple navigations", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 43, "parallelIndex": 2, "status": "failed", "duration": 7735, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Navigation test 1774482953634-1sf80p0bb\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Navigation test 1774482953634-1sf80p0bb\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:958:43", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 958 }, "snippet": "\u001b[0m \u001b[90m 956 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 957 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 958 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39m[\u001b[35m0\u001b[39m]\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcontent)\u001b[33m.\u001b[39mtoBe(testContent)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 959 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 960 |\u001b[39m\n \u001b[90m 961 |\u001b[39m test(\u001b[32m'MEM-INT-03: Memory with multiple agents'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 958 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Navigation test 1774482953634-1sf80p0bb\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n 956 | }>(page);\n 957 |\n> 958 | expect(state?.messages?.[0]?.content).toBe(testContent);\n | ^\n 959 | });\n 960 |\n 961 | test('MEM-INT-03: Memory with multiple agents', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:958:43" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:57.568Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:49.661Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-564a0-rvives-multiple-navigations-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-564a0-rvives-multiple-navigations-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-564a0-rvives-multiple-navigations-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 958 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-d3be37de3c843ed9a410", "file": "memory.spec.ts", "line": 912, "column": 3 }, { "title": "MEM-INT-03: Memory with multiple agents", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 35, "parallelIndex": 3, "status": "failed", "duration": 4323, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"conv-qa\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"conv-qa\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:1025:36", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 1025 }, "snippet": "\u001b[0m \u001b[90m 1023 |\u001b[39m\n \u001b[90m 1024 |\u001b[39m expect(switchResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 1025 |\u001b[39m expect(switchResult\u001b[33m.\u001b[39mcurrentId)\u001b[33m.\u001b[39mtoBe(\u001b[32m'conv-qa'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 1026 |\u001b[39m expect(switchResult\u001b[33m.\u001b[39mmessagesCount)\u001b[33m.\u001b[39mtoBe(\u001b[35m2\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 1027 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 1028 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 1025 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"conv-qa\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n\n 1023 |\n 1024 | expect(switchResult.success).toBe(true);\n> 1025 | expect(switchResult.currentId).toBe('conv-qa');\n | ^\n 1026 | expect(switchResult.messagesCount).toBe(2);\n 1027 | });\n 1028 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:1025:36" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:39.457Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:34.984Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-af4ef-Memory-with-multiple-agents-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-af4ef-Memory-with-multiple-agents-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-af4ef-Memory-with-multiple-agents-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 36, "line": 1025 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-71e528809f3cf6446bc1", "file": "memory.spec.ts", "line": 961, "column": 3 }, { "title": "MEM-INT-04: Error recovery preserves memory", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 40, "parallelIndex": 3, "status": "failed", "duration": 4108, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Critical data 1774482944995-mnwmgxlqu\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Critical data 1774482944995-mnwmgxlqu\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:1079:43", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 1079 }, "snippet": "\u001b[0m \u001b[90m 1077 |\u001b[39m }\u001b[33m>\u001b[39m(page)\u001b[33m;\u001b[39m\n \u001b[90m 1078 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 1079 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages\u001b[33m?\u001b[39m\u001b[33m.\u001b[39m[\u001b[35m0\u001b[39m]\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcontent)\u001b[33m.\u001b[39mtoBe(importantContent)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 1080 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 1081 |\u001b[39m\n \u001b[90m 1082 |\u001b[39m test(\u001b[32m'MEM-INT-05: Memory cleanup on explicit delete'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 1079 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"Critical data 1774482944995-mnwmgxlqu\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n 1077 | }>(page);\n 1078 |\n> 1079 | expect(state?.messages?.[0]?.content).toBe(importantContent);\n | ^\n 1080 | });\n 1081 |\n 1082 | test('MEM-INT-05: Memory cleanup on explicit delete', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts:1079:43" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:45.403Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:41.160Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-89ccd-r-recovery-preserves-memory-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-89ccd-r-recovery-preserves-memory-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\memory-Memory-System---Int-89ccd-r-recovery-preserves-memory-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\memory.spec.ts", "column": 43, "line": 1079 } } ], "status": "unexpected" } ], "id": "7ae46fcbe7df2182c676-b58091662cc4e053ad8e", "file": "memory.spec.ts", "line": 1029, "column": 3 }, { "title": "MEM-INT-05: Memory cleanup on explicit delete", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 4128, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Memory System E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:51.180Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:46.903Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "7ae46fcbe7df2182c676-3b7ece3146ead295db9c", "file": "memory.spec.ts", "line": 1082, "column": 3 } ] } ] }, { "title": "settings.spec.ts", "file": "settings.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "Settings - Model Configuration Tests", "file": "settings.spec.ts", "line": 26, "column": 6, "specs": [ { "title": "SET-MODEL-01: Models list loads correctly in settings", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 37, "parallelIndex": 6, "status": "passed", "duration": 5797, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:39.377Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-3183e035410c843b10f3", "file": "settings.spec.ts", "line": 37, "column": 3 }, { "title": "SET-MODEL-02: Switch default model saves to configuration", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 37, "parallelIndex": 6, "status": "passed", "duration": 5050, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:45.377Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-6382ff45d124fec3b5a8", "file": "settings.spec.ts", "line": 71, "column": 3 }, { "title": "SET-MODEL-03: Model configuration persists across reload", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 37, "parallelIndex": 6, "status": "passed", "duration": 7612, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:50.442Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-6c3ae6f020c5bcfdf9a0", "file": "settings.spec.ts", "line": 110, "column": 3 }, { "title": "SET-MODEL-04: API configuration saves gateway URL", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 37, "parallelIndex": 6, "status": "passed", "duration": 5762, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Settings E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:03.862Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:58.073Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-6cd8d39a6f042dcd0d37", "file": "settings.spec.ts", "line": 135, "column": 3 }, { "title": "SET-MODEL-05: Invalid model selection shows error", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 5600, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:38.577Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-bf84a2cf5dec10b24c36", "file": "settings.spec.ts", "line": 171, "column": 3 } ] }, { "title": "Settings - Channel Configuration Tests", "file": "settings.spec.ts", "line": 190, "column": 6, "specs": [ { "title": "SET-CHAN-01: Channels list loads correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 3940, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:44.188Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-a0e7a7183a290d1bcdbc", "file": "settings.spec.ts", "line": 201, "column": 3 }, { "title": "SET-CHAN-02: Feishu channel status check", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 3979, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:48.138Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-ab3a2e1df089d71a31e6", "file": "settings.spec.ts", "line": 219, "column": 3 }, { "title": "SET-CHAN-03: Create new IM channel", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 3930, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Settings E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:56.080Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:52.132Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-62502cb044b7d4264a22", "file": "settings.spec.ts", "line": 237, "column": 3 }, { "title": "SET-CHAN-04: Update channel configuration", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 36, "parallelIndex": 0, "status": "passed", "duration": 3849, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:42.969Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-7d069af295d247fc3454", "file": "settings.spec.ts", "line": 268, "column": 3 }, { "title": "SET-CHAN-05: Delete channel", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 36, "parallelIndex": 0, "status": "passed", "duration": 4121, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:46.829Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-f5c2832518501cf85f37", "file": "settings.spec.ts", "line": 293, "column": 3 } ] }, { "title": "Settings - Skill Management Tests", "file": "settings.spec.ts", "line": 315, "column": 6, "specs": [ { "title": "SET-SKILL-01: Skills catalog loads correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 36, "parallelIndex": 0, "status": "passed", "duration": 4027, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:50.963Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-f0350bace2735bc9121f", "file": "settings.spec.ts", "line": 326, "column": 3 }, { "title": "SET-SKILL-02: Get skill details", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 36, "parallelIndex": 0, "status": "passed", "duration": 4060, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Settings E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:55:59.079Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:55.002Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-81a065ce3978d0a319d7", "file": "settings.spec.ts", "line": 348, "column": 3 }, { "title": "SET-SKILL-03: Create new skill", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 41, "parallelIndex": 1, "status": "passed", "duration": 4130, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:44.784Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-764c6a298aeedfd17ca4", "file": "settings.spec.ts", "line": 365, "column": 3 }, { "title": "SET-SKILL-04: Update skill configuration", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 41, "parallelIndex": 1, "status": "passed", "duration": 3967, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:49.064Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-527d4b2581f3ff6c1b2b", "file": "settings.spec.ts", "line": 394, "column": 3 }, { "title": "SET-SKILL-05: Delete skill", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 41, "parallelIndex": 1, "status": "passed", "duration": 3945, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:53.042Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-ef04614fcf2345fc18c5", "file": "settings.spec.ts", "line": 419, "column": 3 }, { "title": "SET-SKILL-06: Skill triggers configuration", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 41, "parallelIndex": 1, "status": "passed", "duration": 4882, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Settings E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:01.904Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:56.998Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-a0b8cb0db677a4a9428a", "file": "settings.spec.ts", "line": 437, "column": 3 } ] }, { "title": "Settings - General Settings Tests", "file": "settings.spec.ts", "line": 460, "column": 6, "specs": [ { "title": "SET-GEN-01: Quick config loads correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 39, "parallelIndex": 4, "status": "passed", "duration": 4102, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:45.509Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-e3b4845f868269984791", "file": "settings.spec.ts", "line": 471, "column": 3 }, { "title": "SET-GEN-02: Save user profile settings", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 39, "parallelIndex": 4, "status": "passed", "duration": 4086, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:49.626Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-14ac3f58ac817f1f4c89", "file": "settings.spec.ts", "line": 488, "column": 3 }, { "title": "SET-GEN-03: Workspace info loads correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 39, "parallelIndex": 4, "status": "passed", "duration": 4106, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:53.727Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-6fc9d14d574c98889244", "file": "settings.spec.ts", "line": 514, "column": 3 }, { "title": "SET-GEN-04: Theme preference saves correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 39, "parallelIndex": 4, "status": "passed", "duration": 5161, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Settings E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:03.034Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:57.849Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-84f6622b2d17ad8e80ec", "file": "settings.spec.ts", "line": 530, "column": 3 }, { "title": "SET-GEN-05: Plugin status check", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 4163, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:51.211Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-e8efbdbcc802123e27a1", "file": "settings.spec.ts", "line": 556, "column": 3 }, { "title": "SET-GEN-06: Scheduled tasks load correctly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 4086, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:55.391Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-84a062636e35795bd449", "file": "settings.spec.ts", "line": 579, "column": 3 }, { "title": "SET-GEN-07: Security status check", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 4362, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:59.491Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-359fb090886dfbc85e94", "file": "settings.spec.ts", "line": 596, "column": 3 } ] }, { "title": "Settings - Integration Tests", "file": "settings.spec.ts", "line": 616, "column": 6, "specs": [ { "title": "SET-INT-01: Full settings save and reload cycle", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 8593, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Settings E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:12.486Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:03.870Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-584131ad15c1e3345fe2", "file": "settings.spec.ts", "line": 618, "column": 3 }, { "title": "SET-INT-02: Settings navigation between tabs", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 6735, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:56.087Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-093c10c7fa08cfe5011e", "file": "settings.spec.ts", "line": 663, "column": 3 }, { "title": "SET-INT-03: Error handling for failed config save", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 4024, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Settings E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:06.881Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:02.835Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "d877ffdf71ec720167ae-63e1666c0e40d322d588", "file": "settings.spec.ts", "line": 696, "column": 3 } ] } ] }, { "title": "store-state.spec.ts", "file": "store-state.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "Store 初始化验证", "file": "store-state.spec.ts", "line": 28, "column": 6, "specs": [ { "title": "STORE-INIT-01: Chat Store 初始化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 45, "parallelIndex": 2, "status": "failed", "duration": 4263, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:41:23", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 41 }, "snippet": "\u001b[0m \u001b[90m 39 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mCHAT\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 40 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 41 |\u001b[39m expect(state)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 42 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 43 |\u001b[39m expect(\u001b[36mtypeof\u001b[39m state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39misStreaming)\u001b[33m.\u001b[39mtoBe(\u001b[32m'boolean'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 44 |\u001b[39m expect(\u001b[36mtypeof\u001b[39m state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcurrentModel)\u001b[33m.\u001b[39mtoBe(\u001b[32m'string'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 41 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n\n 39 | }>(page, STORE_NAMES.CHAT);\n 40 |\n> 41 | expect(state).not.toBeNull();\n | ^\n 42 | expect(Array.isArray(state?.messages)).toBe(true);\n 43 | expect(typeof state?.isStreaming).toBe('boolean');\n 44 | expect(typeof state?.currentModel).toBe('string');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:41:23" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:03.795Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:59.368Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-01-Chat-Store-初始化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-01-Chat-Store-初始化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-01-Chat-Store-初始化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 41 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-1a0f8b52b5ee07af227e", "file": "store-state.spec.ts", "line": 30, "column": 3 }, { "title": "STORE-INIT-02: Gateway Store 初始化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 48, "parallelIndex": 2, "status": "failed", "duration": 3860, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:59:23", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 59 }, "snippet": "\u001b[0m \u001b[90m 57 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mGATEWAY\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 58 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 59 |\u001b[39m expect(state)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 60 |\u001b[39m \u001b[90m// 连接状态应该是有效值\u001b[39m\n \u001b[90m 61 |\u001b[39m \u001b[36mconst\u001b[39m validStates \u001b[33m=\u001b[39m [\u001b[32m'connected'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'disconnected'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'connecting'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'reconnecting'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'handshaking'\u001b[39m]\u001b[33m;\u001b[39m\n \u001b[90m 62 |\u001b[39m expect(validStates)\u001b[33m.\u001b[39mtoContain(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconnectionState)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 59 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n\n 57 | }>(page, STORE_NAMES.GATEWAY);\n 58 |\n> 59 | expect(state).not.toBeNull();\n | ^\n 60 | // 连接状态应该是有效值\n 61 | const validStates = ['connected', 'disconnected', 'connecting', 'reconnecting', 'handshaking'];\n 62 | expect(validStates).toContain(state?.connectionState);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:59:23" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:09.629Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:05.628Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-02-Gateway-Store-初始化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-02-Gateway-Store-初始化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-02-Gateway-Store-初始化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 59 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-a540c0773a88f7e875b7", "file": "store-state.spec.ts", "line": 47, "column": 3 }, { "title": "STORE-INIT-03: Agent Store 初始化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 52, "parallelIndex": 2, "status": "failed", "duration": 3917, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:75:23", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 75 }, "snippet": "\u001b[0m \u001b[90m 73 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mAGENT\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 74 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 75 |\u001b[39m expect(state)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 76 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mclones))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 77 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 78 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 75 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n\n 73 | }>(page, STORE_NAMES.AGENT);\n 74 |\n> 75 | expect(state).not.toBeNull();\n | ^\n 76 | expect(Array.isArray(state?.clones)).toBe(true);\n 77 | });\n 78 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:75:23" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:15.032Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:10.967Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-03-Agent-Store-初始化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-03-Agent-Store-初始化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-03-Agent-Store-初始化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 75 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-4b00ea228353980d0f1b", "file": "store-state.spec.ts", "line": 65, "column": 3 }, { "title": "STORE-INIT-04: Hand Store 初始化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 53, "parallelIndex": 2, "status": "failed", "duration": 3981, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:90:23", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 90 }, "snippet": "\u001b[0m \u001b[90m 88 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mHAND\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 89 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 90 |\u001b[39m expect(state)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 91 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mhands))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 92 |\u001b[39m expect(\u001b[36mtypeof\u001b[39m state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mhandRuns)\u001b[33m.\u001b[39mtoBe(\u001b[32m'object'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 93 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 90 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n\n 88 | }>(page, STORE_NAMES.HAND);\n 89 |\n> 90 | expect(state).not.toBeNull();\n | ^\n 91 | expect(Array.isArray(state?.hands)).toBe(true);\n 92 | expect(typeof state?.handRuns).toBe('object');\n 93 | });\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:90:23" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:20.641Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:16.507Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-04-Hand-Store-初始化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-04-Hand-Store-初始化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-04-Hand-Store-初始化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 90 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-24ee8f58111e86d2a926", "file": "store-state.spec.ts", "line": 79, "column": 3 }, { "title": "STORE-INIT-05: Config Store 初始化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 44, "parallelIndex": 5, "status": "failed", "duration": 4083, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:105:23", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 105 }, "snippet": "\u001b[0m \u001b[90m 103 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mCONFIG\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 104 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 105 |\u001b[39m expect(state)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 106 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 107 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 108 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 105 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n\n 103 | }>(page, STORE_NAMES.CONFIG);\n 104 |\n> 105 | expect(state).not.toBeNull();\n | ^\n 106 | });\n 107 | });\n 108 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:105:23" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:02.444Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:58.338Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-05-Config-Store-初始化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-05-Config-Store-初始化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-初始化验证-STORE-INIT-05-Config-Store-初始化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 23, "line": 105 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-894aeae0d6c1eda878be", "file": "store-state.spec.ts", "line": 95, "column": 3 } ] }, { "title": "Store 持久化验证", "file": "store-state.spec.ts", "line": 112, "column": 6, "specs": [ { "title": "STORE-PERSIST-01: Chat Store 持久化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 46, "parallelIndex": 5, "status": "failed", "duration": 66319, "error": { "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================", "stack": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:120:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:197\n\n\u001b[0m \u001b[90m 195 |\u001b[39m \u001b[36mconst\u001b[39m [request] \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m \u001b[33mPromise\u001b[39m\u001b[33m.\u001b[39mall([\n \u001b[90m 196 |\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/agents/*/message**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m.\u001b[39m\u001b[36mcatch\u001b[39m(\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 197 |\u001b[39m () \u001b[33m=>\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/chat**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 198 |\u001b[39m )\u001b[33m,\u001b[39m\n \u001b[90m 199 |\u001b[39m sendButton\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m,\u001b[39m\n \u001b[90m 200 |\u001b[39m ])\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n\n at ..\\utils\\user-actions.ts:197\n\n 195 | const [request] = await Promise.all([\n 196 | page.waitForRequest('**/api/agents/*/message**', { timeout: options?.timeout ?? 30000 }).catch(\n> 197 | () => page.waitForRequest('**/api/chat**', { timeout: options?.timeout ?? 30000 })\n | ^\n 198 | ),\n 199 | sendButton.first().click(),\n 200 | ]);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:120:5" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:57:10.881Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:04.385Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-持久化验证-STORE-PERSIST-01-Chat-Store-持久化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-持久化验证-STORE-PERSIST-01-Chat-Store-持久化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-持久化验证-STORE-PERSIST-01-Chat-Store-持久化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-dd822d45f33dc2ea3e7b", "file": "store-state.spec.ts", "line": 114, "column": 3 }, { "title": "STORE-PERSIST-02: 配置持久化", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 70, "parallelIndex": 1, "status": "passed", "duration": 7086, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:57:12.093Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-822af5cb8084462db5a5", "file": "store-state.spec.ts", "line": 143, "column": 3 }, { "title": "STORE-PERSIST-03: 清除 Store 后重新初始化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 70, "parallelIndex": 1, "status": "failed", "duration": 6975, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:183:48", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 48, "line": 183 }, "snippet": "\u001b[0m \u001b[90m 181 |\u001b[39m\n \u001b[90m 182 |\u001b[39m \u001b[90m// Store 应该被重新初始化(messages 为空数组)\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 183 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(chatState\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mmessages))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 184 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 185 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 186 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 48, "line": 183 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 181 |\n 182 | // Store 应该被重新初始化(messages 为空数组)\n> 183 | expect(Array.isArray(chatState?.messages)).toBe(true);\n | ^\n 184 | });\n 185 | });\n 186 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:183:48" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:57:26.292Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:57:19.300Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-持久化验证-STORE-PERSIST-03-清除-Store-后重新初始化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-持久化验证-STORE-PERSIST-03-清除-Store-后重新初始化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Store-持久化验证-STORE-PERSIST-03-清除-Store-后重新初始化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 48, "line": 183 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-95ca3db3c3d1f5ef0e3c", "file": "store-state.spec.ts", "line": 165, "column": 3 } ] }, { "title": "Chat Store 状态转换验证", "file": "store-state.spec.ts", "line": 190, "column": 6, "specs": [ { "title": "CHAT-STATE-01: isStreaming 状态转换", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 36, "parallelIndex": 0, "status": "failed", "duration": 4150, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:202:39", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 39, "line": 202 }, "snippet": "\u001b[0m \u001b[90m 200 |\u001b[39m isStreaming\u001b[33m:\u001b[39m boolean\u001b[33m;\u001b[39m\n \u001b[90m 201 |\u001b[39m }\u001b[33m>\u001b[39m(page\u001b[33m,\u001b[39m \u001b[33mSTORE_NAMES\u001b[39m\u001b[33m.\u001b[39m\u001b[33mCHAT\u001b[39m)\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 202 |\u001b[39m expect(initialState\u001b[33m?\u001b[39m\u001b[33m.\u001b[39misStreaming)\u001b[33m.\u001b[39mtoBe(\u001b[36mfalse\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 203 |\u001b[39m\n \u001b[90m 204 |\u001b[39m \u001b[90m// 2. 发送消息\u001b[39m\n \u001b[90m 205 |\u001b[39m \u001b[36mawait\u001b[39m userActions\u001b[33m.\u001b[39msendChatMessage(page\u001b[33m,\u001b[39m \u001b[32m'测试消息'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 39, "line": 202 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mfalse\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n 200 | isStreaming: boolean;\n 201 | }>(page, STORE_NAMES.CHAT);\n> 202 | expect(initialState?.isStreaming).toBe(false);\n | ^\n 203 |\n 204 | // 2. 发送消息\n 205 | await userActions.sendChatMessage(page, '测试消息');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:202:39" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:03.293Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:55:59.115Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-01-isStreaming-状态转换-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-01-isStreaming-状态转换-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-01-isStreaming-状态转换-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 39, "line": 202 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-90f5e1b23ce69cc647fa", "file": "store-state.spec.ts", "line": 197, "column": 3 }, { "title": "CHAT-STATE-02: messages 数组状态变化", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 47, "parallelIndex": 0, "status": "failed", "duration": 66233, "error": { "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================", "stack": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:225:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:197\n\n\u001b[0m \u001b[90m 195 |\u001b[39m \u001b[36mconst\u001b[39m [request] \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m \u001b[33mPromise\u001b[39m\u001b[33m.\u001b[39mall([\n \u001b[90m 196 |\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/agents/*/message**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m.\u001b[39m\u001b[36mcatch\u001b[39m(\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 197 |\u001b[39m () \u001b[33m=>\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/chat**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 198 |\u001b[39m )\u001b[33m,\u001b[39m\n \u001b[90m 199 |\u001b[39m sendButton\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m,\u001b[39m\n \u001b[90m 200 |\u001b[39m ])\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n\n at ..\\utils\\user-actions.ts:197\n\n 195 | const [request] = await Promise.all([\n 196 | page.waitForRequest('**/api/agents/*/message**', { timeout: options?.timeout ?? 30000 }).catch(\n> 197 | () => page.waitForRequest('**/api/chat**', { timeout: options?.timeout ?? 30000 })\n | ^\n 198 | ),\n 199 | sendButton.first().click(),\n 200 | ]);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:225:5" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:57:11.641Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:05.278Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-02-messages-数组状态变化-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-02-messages-数组状态变化-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-02-messages-数组状态变化-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-a4d2ad61e1e0b47964dc", "file": "store-state.spec.ts", "line": 217, "column": 3 }, { "title": "CHAT-STATE-03: currentModel 状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 71, "parallelIndex": 0, "status": "failed", "duration": 3782, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeDefined\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeDefined\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:245:33", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 33, "line": 245 }, "snippet": "\u001b[0m \u001b[90m 243 |\u001b[39m\n \u001b[90m 244 |\u001b[39m \u001b[90m// 2. 验证模型是有效值\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 245 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcurrentModel)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 246 |\u001b[39m expect(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mcurrentModel\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 247 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 248 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 33, "line": 245 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeDefined\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mundefined\u001b[39m\n\n 243 |\n 244 | // 2. 验证模型是有效值\n> 245 | expect(state?.currentModel).toBeDefined();\n | ^\n 246 | expect(state?.currentModel.length).toBeGreaterThan(0);\n 247 | });\n 248 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:245:33" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:57:16.854Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:57:12.930Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-03-currentModel-状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-03-currentModel-状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-03-currentModel-状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 33, "line": 245 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-34ead13ec295a250c824", "file": "store-state.spec.ts", "line": 238, "column": 3 }, { "title": "CHAT-STATE-04: sessionKey 状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 72, "parallelIndex": 0, "status": "failed", "duration": 65866, "error": { "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================", "stack": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:251:5", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:197\n\n\u001b[0m \u001b[90m 195 |\u001b[39m \u001b[36mconst\u001b[39m [request] \u001b[33m=\u001b[39m \u001b[36mawait\u001b[39m \u001b[33mPromise\u001b[39m\u001b[33m.\u001b[39mall([\n \u001b[90m 196 |\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/agents/*/message**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\u001b[33m.\u001b[39m\u001b[36mcatch\u001b[39m(\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 197 |\u001b[39m () \u001b[33m=>\u001b[39m page\u001b[33m.\u001b[39mwaitForRequest(\u001b[32m'**/api/chat**'\u001b[39m\u001b[33m,\u001b[39m { timeout\u001b[33m:\u001b[39m options\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtimeout \u001b[33m?\u001b[39m\u001b[33m?\u001b[39m \u001b[35m30000\u001b[39m })\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 198 |\u001b[39m )\u001b[33m,\u001b[39m\n \u001b[90m 199 |\u001b[39m sendButton\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m,\u001b[39m\n \u001b[90m 200 |\u001b[39m ])\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 }, "message": "TimeoutError: page.waitForRequest: Timeout 30000ms exceeded while waiting for event \"request\"\n=========================== logs ===========================\nwaiting for request \"**/api/chat**\"\n============================================================\n\n at ..\\utils\\user-actions.ts:197\n\n 195 | const [request] = await Promise.all([\n 196 | page.waitForRequest('**/api/agents/*/message**', { timeout: options?.timeout ?? 30000 }).catch(\n> 197 | () => page.waitForRequest('**/api/chat**', { timeout: options?.timeout ?? 30000 })\n | ^\n 198 | ),\n 199 | sendButton.first().click(),\n 200 | ]);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:197:20\n at Object.sendChatMessage (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:195:23)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:251:5" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:58:23.968Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:57:17.977Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-04-sessionKey-状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-04-sessionKey-状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Chat-Store-状态转换验证-CHAT-STATE-04-sessionKey-状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts", "column": 20, "line": 197 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-d7c273a46f025de25490", "file": "store-state.spec.ts", "line": 249, "column": 3 } ] }, { "title": "Agent Store 状态转换验证", "file": "store-state.spec.ts", "line": 267, "column": 6, "specs": [ { "title": "AGENT-STATE-01: clones 数组状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 41, "parallelIndex": 1, "status": "failed", "duration": 4483, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:282:42", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 42, "line": 282 }, "snippet": "\u001b[0m \u001b[90m 280 |\u001b[39m\n \u001b[90m 281 |\u001b[39m \u001b[90m// 2. 验证格式\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 282 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mclones))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 283 |\u001b[39m\n \u001b[90m 284 |\u001b[39m \u001b[90m// 3. 每个 clone 应该有必需字段\u001b[39m\n \u001b[90m 285 |\u001b[39m \u001b[36mif\u001b[39m (state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mclones \u001b[33m&&\u001b[39m state\u001b[33m.\u001b[39mclones\u001b[33m.\u001b[39mlength \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 42, "line": 282 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 280 |\n 281 | // 2. 验证格式\n> 282 | expect(Array.isArray(state?.clones)).toBe(true);\n | ^\n 283 |\n 284 | // 3. 每个 clone 应该有必需字段\n 285 | if (state?.clones && state.clones.length > 0) {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:282:42" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:06.449Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:01.934Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Agent-Store-状态转换验证-AGENT-STATE-01-clones-数组状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Agent-Store-状态转换验证-AGENT-STATE-01-clones-数组状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Agent-Store-状态转换验证-AGENT-STATE-01-clones-数组状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 42, "line": 282 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-c1350b1f952bc16fcaeb", "file": "store-state.spec.ts", "line": 275, "column": 3 }, { "title": "AGENT-STATE-02: currentAgent 切换状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 49, "parallelIndex": 1, "status": "passed", "duration": 4439, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:07.756Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-dc458bc52f2ed533c090", "file": "store-state.spec.ts", "line": 292, "column": 3 } ] }, { "title": "Hand Store 状态转换验证", "file": "store-state.spec.ts", "line": 308, "column": 6, "specs": [ { "title": "HAND-STATE-01: hands 数组状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 49, "parallelIndex": 1, "status": "failed", "duration": 5895, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:329:41", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 41, "line": 329 }, "snippet": "\u001b[0m \u001b[90m 327 |\u001b[39m\n \u001b[90m 328 |\u001b[39m \u001b[90m// 2. 验证格式\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 329 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mhands))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 330 |\u001b[39m\n \u001b[90m 331 |\u001b[39m \u001b[90m// 3. 每个 hand 应该有必需字段\u001b[39m\n \u001b[90m 332 |\u001b[39m \u001b[36mif\u001b[39m (state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mhands \u001b[33m&&\u001b[39m state\u001b[33m.\u001b[39mhands\u001b[33m.\u001b[39mlength \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 41, "line": 329 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 327 |\n 328 | // 2. 验证格式\n> 329 | expect(Array.isArray(state?.hands)).toBe(true);\n | ^\n 330 |\n 331 | // 3. 每个 hand 应该有必需字段\n 332 | if (state?.hands && state.hands.length > 0) {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:329:41" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:18.256Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:12.344Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-01-hands-数组状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-01-hands-数组状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-01-hands-数组状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 41, "line": 329 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-85b52036b70cd3f8d4ab", "file": "store-state.spec.ts", "line": 317, "column": 3 }, { "title": "HAND-STATE-02: handRuns 记录状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 55, "parallelIndex": 1, "status": "failed", "duration": 5984, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"object\"\u001b[39m\nReceived: \u001b[31m\"undefined\"\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"object\"\u001b[39m\nReceived: \u001b[31m\"undefined\"\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:351:36", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 36, "line": 351 }, "snippet": "\u001b[0m \u001b[90m 349 |\u001b[39m\n \u001b[90m 350 |\u001b[39m \u001b[90m// 2. 验证格式\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 351 |\u001b[39m expect(\u001b[36mtypeof\u001b[39m state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mhandRuns)\u001b[33m.\u001b[39mtoBe(\u001b[32m'object'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 352 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 353 |\u001b[39m\n \u001b[90m 354 |\u001b[39m test(\u001b[32m'HAND-STATE-03: approvals 队列状态'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 36, "line": 351 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"object\"\u001b[39m\nReceived: \u001b[31m\"undefined\"\u001b[39m\n\n 349 |\n 350 | // 2. 验证格式\n> 351 | expect(typeof state?.handRuns).toBe('object');\n | ^\n 352 | });\n 353 |\n 354 | test('HAND-STATE-03: approvals 队列状态', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:351:36" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:25.518Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:19.407Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-02-handRuns-记录状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-02-handRuns-记录状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-02-handRuns-记录状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 36, "line": 351 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-084f978f17f09e364e62", "file": "store-state.spec.ts", "line": 344, "column": 3 }, { "title": "HAND-STATE-03: approvals 队列状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 39, "parallelIndex": 4, "status": "failed", "duration": 6149, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:361:45", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 45, "line": 361 }, "snippet": "\u001b[0m \u001b[90m 359 |\u001b[39m\n \u001b[90m 360 |\u001b[39m \u001b[90m// 2. 验证格式\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 361 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mapprovals))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 362 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 363 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 364 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 45, "line": 361 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 359 |\n 360 | // 2. 验证格式\n> 361 | expect(Array.isArray(state?.approvals)).toBe(true);\n | ^\n 362 | });\n 363 | });\n 364 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:361:45" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:09.266Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:03.092Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-03-approvals-队列状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-03-approvals-队列状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Hand-Store-状态转换验证-HAND-STATE-03-approvals-队列状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 45, "line": 361 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-7435891d35f6cda63c9d", "file": "store-state.spec.ts", "line": 354, "column": 3 } ] }, { "title": "Workflow Store 状态转换验证", "file": "store-state.spec.ts", "line": 368, "column": 6, "specs": [ { "title": "WF-STATE-01: workflows 数组状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 51, "parallelIndex": 4, "status": "failed", "duration": 4985, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:388:45", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 45, "line": 388 }, "snippet": "\u001b[0m \u001b[90m 386 |\u001b[39m\n \u001b[90m 387 |\u001b[39m \u001b[90m// 2. 验证格式\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 388 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mworkflows))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 389 |\u001b[39m\n \u001b[90m 390 |\u001b[39m \u001b[90m// 3. 每个 workflow 应该有必需字段\u001b[39m\n \u001b[90m 391 |\u001b[39m \u001b[36mif\u001b[39m (state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mworkflows \u001b[33m&&\u001b[39m state\u001b[33m.\u001b[39mworkflows\u001b[33m.\u001b[39mlength \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 45, "line": 388 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 386 |\n 387 | // 2. 验证格式\n> 388 | expect(Array.isArray(state?.workflows)).toBe(true);\n | ^\n 389 |\n 390 | // 3. 每个 workflow 应该有必需字段\n 391 | if (state?.workflows && state.workflows.length > 0) {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:388:45" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:15.728Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:10.600Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Workflow-Store-状态转换验证-WF-STATE-01-workflows-数组状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Workflow-Store-状态转换验证-WF-STATE-01-workflows-数组状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Workflow-Store-状态转换验证-WF-STATE-01-workflows-数组状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 45, "line": 388 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-1e2c12293e3082597875", "file": "store-state.spec.ts", "line": 377, "column": 3 } ] }, { "title": "Team Store 状态转换验证", "file": "store-state.spec.ts", "line": 402, "column": 6, "specs": [ { "title": "TEAM-STATE-01: teams 数组状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 54, "parallelIndex": 4, "status": "passed", "duration": 5427, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:17.355Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-59cee7b4308d5911c516", "file": "store-state.spec.ts", "line": 411, "column": 3 }, { "title": "TEAM-STATE-02: activeTeam 状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 54, "parallelIndex": 4, "status": "passed", "duration": 5386, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:28.358Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:22.952Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-ada509d8dbb4f6bd70d0", "file": "store-state.spec.ts", "line": 435, "column": 3 } ] }, { "title": "Connection Store 状态转换验证", "file": "store-state.spec.ts", "line": 452, "column": 6, "specs": [ { "title": "CONN-STATE-01: connectionState 状态", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 37, "parallelIndex": 6, "status": "failed", "duration": 4097, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: \u001b[32mundefined\u001b[39m\nReceived array: \u001b[31m[\"connected\", \"disconnected\", \"connecting\", \"reconnecting\", \"handshaking\"]\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: \u001b[32mundefined\u001b[39m\nReceived array: \u001b[31m[\"connected\", \"disconnected\", \"connecting\", \"reconnecting\", \"handshaking\"]\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:467:25", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 25, "line": 467 }, "snippet": "\u001b[0m \u001b[90m 465 |\u001b[39m \u001b[90m// 2. 验证状态是有效值\u001b[39m\n \u001b[90m 466 |\u001b[39m \u001b[36mconst\u001b[39m validStates \u001b[33m=\u001b[39m [\u001b[32m'connected'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'disconnected'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'connecting'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'reconnecting'\u001b[39m\u001b[33m,\u001b[39m \u001b[32m'handshaking'\u001b[39m]\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 467 |\u001b[39m expect(validStates)\u001b[33m.\u001b[39mtoContain(state\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mconnectionState)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 468 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 469 |\u001b[39m\n \u001b[90m 470 |\u001b[39m test(\u001b[32m'CONN-STATE-02: gatewayVersion 状态'\u001b[39m\u001b[33m,\u001b[39m \u001b[36masync\u001b[39m ({ page }) \u001b[33m=>\u001b[39m {\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 25, "line": 467 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: \u001b[32mundefined\u001b[39m\nReceived array: \u001b[31m[\"connected\", \"disconnected\", \"connecting\", \"reconnecting\", \"handshaking\"]\u001b[39m\n\n 465 | // 2. 验证状态是有效值\n 466 | const validStates = ['connected', 'disconnected', 'connecting', 'reconnecting', 'handshaking'];\n> 467 | expect(validStates).toContain(state?.connectionState);\n | ^\n 468 | });\n 469 |\n 470 | test('CONN-STATE-02: gatewayVersion 状态', async ({ page }) => {\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts:467:25" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:08.016Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:03.896Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Connection-Sto-6873e-STATE-01-connectionState-状态-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Connection-Sto-6873e-STATE-01-connectionState-状态-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\store-state-Connection-Sto-6873e-STATE-01-connectionState-状态-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\store-state.spec.ts", "column": 25, "line": 467 } } ], "status": "unexpected" } ], "id": "671a364594311209f3b3-5a0d65162e4b01d62821", "file": "store-state.spec.ts", "line": 459, "column": 3 }, { "title": "CONN-STATE-02: gatewayVersion 状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 50, "parallelIndex": 6, "status": "passed", "duration": 7184, "errors": [], "stdout": [ { "text": "Gateway version: undefined\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:09.533Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-562940f2a1d727ff1871", "file": "store-state.spec.ts", "line": 470, "column": 3 }, { "title": "CONN-STATE-03: error 状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 50, "parallelIndex": 6, "status": "passed", "duration": 3896, "errors": [], "stdout": [ { "text": "Connection error: undefined\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:16.860Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-582935d09ca8a294bd7f", "file": "store-state.spec.ts", "line": 483, "column": 3 } ] }, { "title": "Store 快照验证", "file": "store-state.spec.ts", "line": 498, "column": 6, "specs": [ { "title": "SNAPSHOT-01: 获取所有 Store 快照", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 50, "parallelIndex": 6, "status": "passed", "duration": 3822, "errors": [], "stdout": [ { "text": "Store snapshot keys: [ \u001b[32m'memory-stats-zclaw-main'\u001b[39m ]\n" }, { "text": "Store memory-stats-zclaw-main: object\n" }, { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:24.616Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:20.775Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-2fbefb3e29c169e9e864", "file": "store-state.spec.ts", "line": 500, "column": 3 }, { "title": "SNAPSHOT-02: Store 状态一致性", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 4008, "errors": [], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Store 状态验证测试完成\n" }, { "text": "========================================\n" }, { "text": "测试时间: 2026-03-25T23:56:10.941Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:06.918Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "671a364594311209f3b3-364cfc9f61cb580e9ee6", "file": "store-state.spec.ts", "line": 517, "column": 3 } ] } ] }, { "title": "tauri-core.spec.ts", "file": "tauri-core.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "ZCLAW Tauri 模式核心功能", "file": "tauri-core.spec.ts", "line": 24, "column": 6, "specs": [], "suites": [ { "title": "1. Tauri 运行时检测", "file": "tauri-core.spec.ts", "line": 30, "column": 8, "specs": [ { "title": "应该检测到 Tauri 运行时环境", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2557, "errors": [], "stdout": [ { "text": "[Tauri Check] isTauriRuntime: \u001b[33mfalse\u001b[39m\n" } ], "stderr": [ { "text": "[Tauri Check] Warning: Not running in Tauri environment\n" }, { "text": "[Tauri Check] Some tests may not work correctly\n" } ], "retry": 0, "startTime": "2026-03-25T23:56:10.979Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-a6cf19c123b2777ae672", "file": "tauri-core.spec.ts", "line": 31, "column": 5 }, { "title": "Tauri API 应该可用", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 2558, "errors": [], "stdout": [ { "text": "[Tauri API] Available: {\n available: \u001b[33mfalse\u001b[39m,\n error: \u001b[32m\"TypeError: Failed to resolve module specifier '@tauri-apps/api/core'\"\u001b[39m\n}\n" } ], "stderr": [ { "text": "[Tauri API] Not available: TypeError: Failed to resolve module specifier '@tauri-apps/api/core'\n" } ], "retry": 0, "startTime": "2026-03-25T23:56:12.517Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-f6af5e264cc48973ceb1", "file": "tauri-core.spec.ts", "line": 46, "column": 5 } ] }, { "title": "2. 内核状态验证", "file": "tauri-core.spec.ts", "line": 69, "column": 8, "specs": [ { "title": "内核初始化状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2513, "errors": [], "stdout": [ { "text": "[Kernel Status] {\n success: \u001b[33mfalse\u001b[39m,\n error: \u001b[32m\"TypeError: Failed to resolve module specifier '@tauri-apps/api/core'\"\u001b[39m\n}\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:13.548Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-7a51640143e5aeebfa59", "file": "tauri-core.spec.ts", "line": 70, "column": 5 }, { "title": "Agent 列表获取", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 2580, "errors": [], "stdout": [ { "text": "[Agent List] {\n success: \u001b[33mfalse\u001b[39m,\n error: \u001b[32m\"TypeError: Failed to resolve module specifier '@tauri-apps/api/core'\"\u001b[39m\n}\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:15.091Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-75d8bc88c3275815fd76", "file": "tauri-core.spec.ts", "line": 109, "column": 5 } ] }, { "title": "3. 连接状态", "file": "tauri-core.spec.ts", "line": 140, "column": 8, "specs": [ { "title": "应用应该正确显示连接状态", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 5786, "errors": [], "stdout": [ { "text": "[Connection State] { foundElements: \u001b[33m0\u001b[39m, texts: [] }\n" }, { "text": "[Page Text] \n 新对话分身自动化技能团队协作ZCLAW当前默认助手连接 Gateway 后创建用用户7141ZZCLAW详情ZCLAWGateway 未连接Welcome to ZCLAWPlease connect to Gateway first in Settings.glm-4-flashAgent 在本地运行,内容由 AI 生成\n \n \n\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:16.073Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-9b097ac0f1510d39910b", "file": "tauri-core.spec.ts", "line": 141, "column": 5 }, { "title": "设置按钮应该可用", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 2513, "errors": [], "stdout": [ { "text": "[Settings] Button not visible\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:17.685Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-ccd089d1063ca1d974b9", "file": "tauri-core.spec.ts", "line": 160, "column": 5 } ] }, { "title": "4. UI 布局验证", "file": "tauri-core.spec.ts", "line": 173, "column": 8, "specs": [ { "title": "主布局应该正确渲染", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 2530, "errors": [], "stdout": [ { "text": "[Layout] {\n hasApp: \u001b[33mtrue\u001b[39m,\n hasSidebar: \u001b[33mtrue\u001b[39m,\n hasMain: \u001b[33mtrue\u001b[39m,\n appClasses: \u001b[32m'h-screen flex overflow-hidden text-gray-800 text-sm bg-white dark:bg-gray-950'\u001b[39m\n}\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:20.212Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-29498c97f1df94b26bc4", "file": "tauri-core.spec.ts", "line": 174, "column": 5 }, { "title": "侧边栏导航应该存在", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 56, "parallelIndex": 2, "status": "passed", "duration": 2581, "errors": [], "stdout": [ { "text": "[Navigation] Button count: \u001b[33m7\u001b[39m\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:22.079Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-d2a79716921c1c981511", "file": "tauri-core.spec.ts", "line": 196, "column": 5 } ] }, { "title": "5. 聊天功能 (Tauri 模式)", "file": "tauri-core.spec.ts", "line": 206, "column": 8, "specs": [ { "title": "聊天输入框应该可用", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 2509, "errors": [], "stdout": [ { "text": "[Chat Input] Value: 你好,ZCLAW\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:21.874Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-255c59158459d586bf84", "file": "tauri-core.spec.ts", "line": 207, "column": 5 }, { "title": "模型选择器应该可用", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 2680, "errors": [], "stdout": [ { "text": "[Model Selector] Not visible\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:22.762Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-c6187b29d67f2387a540", "file": "tauri-core.spec.ts", "line": 222, "column": 5 } ] }, { "title": "6. 设置页面 (Tauri 模式)", "file": "tauri-core.spec.ts", "line": 237, "column": 8, "specs": [ { "title": "设置页面应该能打开", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "passed", "duration": 3641, "errors": [], "stdout": [ { "text": "[Settings] Content elements: \u001b[33m1\u001b[39m\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:24.394Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-398cded6816990c7c03f", "file": "tauri-core.spec.ts", "line": 238, "column": 5 }, { "title": "通用设置标签应该可见", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 50, "parallelIndex": 6, "status": "passed", "duration": 3215, "errors": [], "stdout": [ { "text": "[Settings Tabs] Count: \u001b[33m0\u001b[39m\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:24.662Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-c23964217a15dcb6ab28", "file": "tauri-core.spec.ts", "line": 256, "column": 5 } ] }, { "title": "7. 控制台日志检查", "file": "tauri-core.spec.ts", "line": 267, "column": 8, "specs": [ { "title": "应该没有严重 JavaScript 错误", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 56, "parallelIndex": 2, "status": "passed", "duration": 5908, "errors": [], "stdout": [ { "text": "[Console Errors] \u001b[33m0\u001b[39m\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:24.790Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-dfaf9d49700bc4302309", "file": "tauri-core.spec.ts", "line": 268, "column": 5 }, { "title": "Tauri 特定日志应该存在", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "passed", "duration": 4782, "errors": [], "stdout": [ { "text": "[Tauri Logs] \u001b[33m0\u001b[39m\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:25.462Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-10a5e4665daf77038f3e", "file": "tauri-core.spec.ts", "line": 297, "column": 5 } ] } ] }, { "title": "ZCLAW Tauri 设置页面测试", "file": "tauri-core.spec.ts", "line": 319, "column": 6, "specs": [ { "title": "模型与 API 设置", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 57, "parallelIndex": 1, "status": "passed", "duration": 1884, "errors": [], "stdout": [ { "text": "[Model Settings] Found: \u001b[33m4\u001b[39m\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:26.802Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-6aa4a80013de49a7748f", "file": "tauri-core.spec.ts", "line": 325, "column": 3 }, { "title": "安全设置", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 50, "parallelIndex": 6, "status": "passed", "duration": 1417, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:27.894Z", "annotations": [], "attachments": [] } ], "status": "expected" } ], "id": "01c9681e35d10fa3929e-93d3ae0be9bfacbf1708", "file": "tauri-core.spec.ts", "line": 335, "column": 3 } ] } ] }, { "title": "team-collaboration.spec.ts", "file": "team-collaboration.spec.ts", "column": 0, "line": 0, "specs": [], "suites": [ { "title": "Team Collaboration - Team Management Tests", "file": "team-collaboration.spec.ts", "line": 29, "column": 6, "specs": [ { "title": "TEAM-MGMT-01: Create new team with valid configuration", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 54, "parallelIndex": 4, "status": "failed", "duration": 5139, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:75:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 75 }, "snippet": "\u001b[0m \u001b[90m 73 |\u001b[39m }\u001b[33m,\u001b[39m teamData)\u001b[33m;\u001b[39m\n \u001b[90m 74 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 75 |\u001b[39m expect(createResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 76 |\u001b[39m expect(createResult\u001b[33m.\u001b[39mteam)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n \u001b[90m 77 |\u001b[39m expect(createResult\u001b[33m.\u001b[39mteam\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mname)\u001b[33m.\u001b[39mtoBe(teamData\u001b[33m.\u001b[39mname)\u001b[33m;\u001b[39m\n \u001b[90m 78 |\u001b[39m expect(createResult\u001b[33m.\u001b[39mteam\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mpattern)\u001b[33m.\u001b[39mtoBe(teamData\u001b[33m.\u001b[39mpattern)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 75 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 73 | }, teamData);\n 74 |\n> 75 | expect(createResult.success).toBe(true);\n | ^\n 76 | expect(createResult.team).toBeDefined();\n 77 | expect(createResult.team?.name).toBe(teamData.name);\n 78 | expect(createResult.team?.pattern).toBe(teamData.pattern);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:75:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:33.590Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:28.424Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-ba95c-am-with-valid-configuration-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-ba95c-am-with-valid-configuration-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-ba95c-am-with-valid-configuration-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 75 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-a1207fc7d6050c61d619", "file": "team-collaboration.spec.ts", "line": 40, "column": 3 }, { "title": "TEAM-MGMT-02: Team list loads and displays correctly", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 59, "parallelIndex": 4, "status": "failed", "duration": 5360, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:129:39", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 129 }, "snippet": "\u001b[0m \u001b[90m 127 |\u001b[39m\n \u001b[90m 128 |\u001b[39m expect(teamsState)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 129 |\u001b[39m expect(\u001b[33mArray\u001b[39m\u001b[33m.\u001b[39misArray(teamsState))\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 130 |\u001b[39m expect(teamsState\u001b[33m.\u001b[39mlength)\u001b[33m.\u001b[39mtoBe(\u001b[35m2\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 131 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 132 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 129 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 127 |\n 128 | expect(teamsState).not.toBeNull();\n> 129 | expect(Array.isArray(teamsState)).toBe(true);\n | ^\n 130 | expect(teamsState.length).toBe(2);\n 131 | });\n 132 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:129:39" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:40.800Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:35.266Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-5f15a-oads-and-displays-correctly-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-5f15a-oads-and-displays-correctly-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-5f15a-oads-and-displays-correctly-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 129 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-78462962632d6840af74", "file": "team-collaboration.spec.ts", "line": 82, "column": 3 }, { "title": "TEAM-MGMT-03: Select team sets active team", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 65, "parallelIndex": 4, "status": "failed", "duration": 5027, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:175:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 175 }, "snippet": "\u001b[0m \u001b[90m 173 |\u001b[39m }\u001b[33m,\u001b[39m teamId)\u001b[33m;\u001b[39m\n \u001b[90m 174 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 175 |\u001b[39m expect(selectResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 176 |\u001b[39m expect(selectResult\u001b[33m.\u001b[39mactiveTeam\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mid)\u001b[33m.\u001b[39mtoBe(teamId)\u001b[33m;\u001b[39m\n \u001b[90m 177 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 178 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 175 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 173 | }, teamId);\n 174 |\n> 175 | expect(selectResult.success).toBe(true);\n | ^\n 176 | expect(selectResult.activeTeam?.id).toBe(teamId);\n 177 | });\n 178 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:175:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:47.693Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:42.508Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-00e47-elect-team-sets-active-team-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-00e47-elect-team-sets-active-team-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-00e47-elect-team-sets-active-team-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 175 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-0cbe3c2be8588bc35179", "file": "team-collaboration.spec.ts", "line": 133, "column": 3 }, { "title": "TEAM-MGMT-04: Delete team removes from list", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 57, "parallelIndex": 1, "status": "failed", "duration": 5135, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:229:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 229 }, "snippet": "\u001b[0m \u001b[90m 227 |\u001b[39m }\u001b[33m,\u001b[39m teamId1)\u001b[33m;\u001b[39m\n \u001b[90m 228 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 229 |\u001b[39m expect(deleteResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 230 |\u001b[39m expect(deleteResult\u001b[33m.\u001b[39mremainingTeams)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 231 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 232 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 229 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 227 | }, teamId1);\n 228 |\n> 229 | expect(deleteResult.success).toBe(true);\n | ^\n 230 | expect(deleteResult.remainingTeams).toBe(1);\n 231 | });\n 232 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:229:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:34.052Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:28.886Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-20ce0-lete-team-removes-from-list-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-20ce0-lete-team-removes-from-list-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-20ce0-lete-team-removes-from-list-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 229 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-e358e64bad819baee140", "file": "team-collaboration.spec.ts", "line": 179, "column": 3 }, { "title": "TEAM-MGMT-05: Team pattern affects workflow execution", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 60, "parallelIndex": 1, "status": "failed", "duration": 5210, "error": { "message": "TypeError: teamsState.map is not a function", "stack": "TypeError: teamsState.map is not a function\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:283:33", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 33, "line": 283 }, "snippet": "\u001b[0m \u001b[90m 281 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 282 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 283 |\u001b[39m \u001b[36mconst\u001b[39m patterns \u001b[33m=\u001b[39m teamsState\u001b[33m.\u001b[39mmap((t\u001b[33m:\u001b[39m any) \u001b[33m=>\u001b[39m t\u001b[33m.\u001b[39mpattern)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 284 |\u001b[39m expect(patterns)\u001b[33m.\u001b[39mtoContain(\u001b[32m'sequential'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 285 |\u001b[39m expect(patterns)\u001b[33m.\u001b[39mtoContain(\u001b[32m'parallel'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 286 |\u001b[39m expect(patterns)\u001b[33m.\u001b[39mtoContain(\u001b[32m'pipeline'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 33, "line": 283 }, "message": "TypeError: teamsState.map is not a function\n\n 281 | });\n 282 |\n> 283 | const patterns = teamsState.map((t: any) => t.pattern);\n | ^\n 284 | expect(patterns).toContain('sequential');\n 285 | expect(patterns).toContain('parallel');\n 286 | expect(patterns).toContain('pipeline');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:283:33" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:41.516Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:36.103Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-878bc--affects-workflow-execution-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-878bc--affects-workflow-execution-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-878bc--affects-workflow-execution-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 33, "line": 283 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-da632904979431dd2e52", "file": "team-collaboration.spec.ts", "line": 233, "column": 3 } ] }, { "title": "Team Collaboration - Member Management Tests", "file": "team-collaboration.spec.ts", "line": 293, "column": 6, "specs": [ { "title": "TEAM-MEMBER-01: Add member to team", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 66, "parallelIndex": 1, "status": "failed", "duration": 5048, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:342:31", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 31, "line": 342 }, "snippet": "\u001b[0m \u001b[90m 340 |\u001b[39m }\u001b[33m,\u001b[39m { teamId\u001b[33m,\u001b[39m agentId\u001b[33m:\u001b[39m \u001b[32m'agent-test-1'\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 341 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 342 |\u001b[39m expect(addResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 343 |\u001b[39m expect(addResult\u001b[33m.\u001b[39mmember)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n \u001b[90m 344 |\u001b[39m expect(addResult\u001b[33m.\u001b[39mmember\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mrole)\u001b[33m.\u001b[39mtoBe(\u001b[32m'worker'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 345 |\u001b[39m expect(addResult\u001b[33m.\u001b[39mmember\u001b[33m?\u001b[39m\u001b[33m.\u001b[39magentId)\u001b[33m.\u001b[39mtoBe(\u001b[32m'agent-test-1'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 31, "line": 342 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 340 | }, { teamId, agentId: 'agent-test-1' });\n 341 |\n> 342 | expect(addResult.success).toBe(true);\n | ^\n 343 | expect(addResult.member).toBeDefined();\n 344 | expect(addResult.member?.role).toBe('worker');\n 345 | expect(addResult.member?.agentId).toBe('agent-test-1');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:342:31" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:48.611Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:43.407Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-606f1-EMBER-01-Add-member-to-team-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-606f1-EMBER-01-Add-member-to-team-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-606f1-EMBER-01-Add-member-to-team-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 31, "line": 342 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-2c102c2eef702c65da84", "file": "team-collaboration.spec.ts", "line": 304, "column": 3 }, { "title": "TEAM-MEMBER-02: Remove member from team", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 50, "parallelIndex": 6, "status": "failed", "duration": 5100, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:400:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 400 }, "snippet": "\u001b[0m \u001b[90m 398 |\u001b[39m }\u001b[33m,\u001b[39m { teamId\u001b[33m,\u001b[39m memberId })\u001b[33m;\u001b[39m\n \u001b[90m 399 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 400 |\u001b[39m expect(removeResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 401 |\u001b[39m expect(removeResult\u001b[33m.\u001b[39mmemberCount)\u001b[33m.\u001b[39mtoBe(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 402 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 403 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 400 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 398 | }, { teamId, memberId });\n 399 |\n> 400 | expect(removeResult.success).toBe(true);\n | ^\n 401 | expect(removeResult.memberCount).toBe(0);\n 402 | });\n 403 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:400:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:34.519Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:29.389Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-7aa79--02-Remove-member-from-team-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-7aa79--02-Remove-member-from-team-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-7aa79--02-Remove-member-from-team-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 400 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-d06fea2ad8440332c953", "file": "team-collaboration.spec.ts", "line": 348, "column": 3 }, { "title": "TEAM-MEMBER-03: Update member role", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 61, "parallelIndex": 6, "status": "failed", "duration": 5224, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:457:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 457 }, "snippet": "\u001b[0m \u001b[90m 455 |\u001b[39m }\u001b[33m,\u001b[39m { teamId\u001b[33m,\u001b[39m memberId })\u001b[33m;\u001b[39m\n \u001b[90m 456 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 457 |\u001b[39m expect(updateResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 458 |\u001b[39m expect(updateResult\u001b[33m.\u001b[39mnewRole)\u001b[33m.\u001b[39mtoBe(\u001b[32m'reviewer'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 459 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 460 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 457 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 455 | }, { teamId, memberId });\n 456 |\n> 457 | expect(updateResult.success).toBe(true);\n | ^\n 458 | expect(updateResult.newRole).toBe('reviewer');\n 459 | });\n 460 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:457:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:42.048Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:36.635Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-f3c43-EMBER-03-Update-member-role-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-f3c43-EMBER-03-Update-member-role-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-f3c43-EMBER-03-Update-member-role-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 457 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-c07012bf4f19cd82f266", "file": "team-collaboration.spec.ts", "line": 404, "column": 3 }, { "title": "TEAM-MEMBER-04: Member workload tracking", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 67, "parallelIndex": 6, "status": "failed", "duration": 4983, "error": { "message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)", "stack": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:512:38", "location": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 9 } }, "errors": [ { "location": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 9 }, "message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:512:38" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:48.966Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:43.786Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-94b2c-04-Member-workload-tracking-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-94b2c-04-Member-workload-tracking-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-94b2c-04-Member-workload-tracking-chromium\\error-context.md" } ], "errorLocation": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 9 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-ff18f9bc2c34c9f6f497", "file": "team-collaboration.spec.ts", "line": 461, "column": 3 }, { "title": "TEAM-MEMBER-05: Multiple members with different roles", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 42, "parallelIndex": 3, "status": "failed", "duration": 5016, "error": { "message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :5:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)", "stack": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :5:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at eval (eval at evaluate (:290:30), :5:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:589:35", "location": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 5 } }, "errors": [ { "location": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 5 }, "message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :5:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at eval (eval at evaluate (:290:30), :5:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:589:35" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:35.351Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:30.308Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-01efe-embers-with-different-roles-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-01efe-embers-with-different-roles-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-01efe-embers-with-different-roles-chromium\\error-context.md" } ], "errorLocation": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 5 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-3ae9a3e3b9853495edf0", "file": "team-collaboration.spec.ts", "line": 530, "column": 3 } ] }, { "title": "Team Collaboration - Task Management Tests", "file": "team-collaboration.spec.ts", "line": 610, "column": 6, "specs": [ { "title": "TEAM-TASK-01: Create task in team", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 62, "parallelIndex": 3, "status": "failed", "duration": 5033, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:665:32", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 32, "line": 665 }, "snippet": "\u001b[0m \u001b[90m 663 |\u001b[39m }\u001b[33m,\u001b[39m teamId)\u001b[33m;\u001b[39m\n \u001b[90m 664 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 665 |\u001b[39m expect(taskResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 666 |\u001b[39m expect(taskResult\u001b[33m.\u001b[39mtask)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n \u001b[90m 667 |\u001b[39m expect(taskResult\u001b[33m.\u001b[39mtask\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtitle)\u001b[33m.\u001b[39mtoBe(\u001b[32m'E2E Test Task'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 668 |\u001b[39m expect(taskResult\u001b[33m.\u001b[39mtask\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstatus)\u001b[33m.\u001b[39mtoBe(\u001b[32m'pending'\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 32, "line": 665 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 663 | }, teamId);\n 664 |\n> 665 | expect(taskResult.success).toBe(true);\n | ^\n 666 | expect(taskResult.task).toBeDefined();\n 667 | expect(taskResult.task?.title).toBe('E2E Test Task');\n 668 | expect(taskResult.task?.status).toBe('pending');\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:665:32" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:42.698Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:37.491Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-92584-TASK-01-Create-task-in-team-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-92584-TASK-01-Create-task-in-team-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-92584-TASK-01-Create-task-in-team-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 32, "line": 665 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-5aaa8201199d07f6016a", "file": "team-collaboration.spec.ts", "line": 621, "column": 3 }, { "title": "TEAM-TASK-02: Assign task to member", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 68, "parallelIndex": 3, "status": "failed", "duration": 4991, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:736:34", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 736 }, "snippet": "\u001b[0m \u001b[90m 734 |\u001b[39m }\u001b[33m,\u001b[39m { teamId\u001b[33m,\u001b[39m taskId\u001b[33m,\u001b[39m memberId })\u001b[33m;\u001b[39m\n \u001b[90m 735 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 736 |\u001b[39m expect(assignResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 737 |\u001b[39m expect(assignResult\u001b[33m.\u001b[39massigneeId)\u001b[33m.\u001b[39mtoBe(memberId)\u001b[33m;\u001b[39m\n \u001b[90m 738 |\u001b[39m expect(assignResult\u001b[33m.\u001b[39mtaskStatus)\u001b[33m.\u001b[39mtoBe(\u001b[32m'assigned'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 739 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 736 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 734 | }, { teamId, taskId, memberId });\n 735 |\n> 736 | expect(assignResult.success).toBe(true);\n | ^\n 737 | expect(assignResult.assigneeId).toBe(memberId);\n 738 | expect(assignResult.taskStatus).toBe('assigned');\n 739 | });\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:736:34" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:49.638Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:44.500Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-5574b-SK-02-Assign-task-to-member-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-5574b-SK-02-Assign-task-to-member-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-5574b-SK-02-Assign-task-to-member-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 34, "line": 736 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-f6809e2c0352b177aa80", "file": "team-collaboration.spec.ts", "line": 671, "column": 3 }, { "title": "TEAM-TASK-03: Update task status through workflow", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 56, "parallelIndex": 2, "status": "failed", "duration": 5088, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"in_progress\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"in_progress\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:793:35", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 35, "line": 793 }, "snippet": "\u001b[0m \u001b[90m 791 |\u001b[39m }\u001b[33m,\u001b[39m { teamId\u001b[33m,\u001b[39m taskId })\u001b[33m;\u001b[39m\n \u001b[90m 792 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 793 |\u001b[39m expect(progressResult\u001b[33m.\u001b[39mstatus)\u001b[33m.\u001b[39mtoBe(\u001b[32m'in_progress'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 794 |\u001b[39m expect(progressResult\u001b[33m.\u001b[39mstartedAt)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n \u001b[90m 795 |\u001b[39m\n \u001b[90m 796 |\u001b[39m \u001b[90m// Update status to completed\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 35, "line": 793 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"in_progress\"\u001b[39m\nReceived: \u001b[31mnull\u001b[39m\n\n 791 | }, { teamId, taskId });\n 792 |\n> 793 | expect(progressResult.status).toBe('in_progress');\n | ^\n 794 | expect(progressResult.startedAt).toBeDefined();\n 795 |\n 796 | // Update status to completed\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:793:35" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:35.876Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:30.756Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-7fdae-ask-status-through-workflow-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-7fdae-ask-status-through-workflow-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-7fdae-ask-status-through-workflow-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 35, "line": 793 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-9c7ff108da5bbc0c56ab", "file": "team-collaboration.spec.ts", "line": 741, "column": 3 }, { "title": "TEAM-TASK-04: Submit deliverable for review", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 63, "parallelIndex": 2, "status": "failed", "duration": 5073, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:874:39", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 874 }, "snippet": "\u001b[0m \u001b[90m 872 |\u001b[39m }\u001b[33m,\u001b[39m { teamId\u001b[33m,\u001b[39m taskId })\u001b[33m;\u001b[39m\n \u001b[90m 873 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 874 |\u001b[39m expect(deliverableResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 875 |\u001b[39m expect(deliverableResult\u001b[33m.\u001b[39mtaskStatus)\u001b[33m.\u001b[39mtoBe(\u001b[32m'review'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 876 |\u001b[39m expect(deliverableResult\u001b[33m.\u001b[39mhasDeliverable)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 877 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 874 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 872 | }, { teamId, taskId });\n 873 |\n> 874 | expect(deliverableResult.success).toBe(true);\n | ^\n 875 | expect(deliverableResult.taskStatus).toBe('review');\n 876 | expect(deliverableResult.hasDeliverable).toBe(true);\n 877 | });\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:874:39" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:42.975Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:37.751Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-746cc-bmit-deliverable-for-review-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-746cc-bmit-deliverable-for-review-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-746cc-bmit-deliverable-for-review-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 874 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-78cdb09fe109bd57a83f", "file": "team-collaboration.spec.ts", "line": 816, "column": 3 }, { "title": "TEAM-TASK-05: Task dependencies respected", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 69, "parallelIndex": 2, "status": "failed", "duration": 4993, "error": { "message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)", "stack": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:927:33", "location": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 9 } }, "errors": [ { "location": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 9 }, "message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at eval (eval at evaluate (:290:30), :9:26)\n at UtilityScript.evaluate (:292:16)\n at UtilityScript. (:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:927:33" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:49.881Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:44.718Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-d78b2-Task-dependencies-respected-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-d78b2-Task-dependencies-respected-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-d78b2-Task-dependencies-respected-chromium\\error-context.md" } ], "errorLocation": { "file": "eval at evaluate (:290:30), ", "column": 26, "line": 9 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-af7e734b3b4a698f6296", "file": "team-collaboration.spec.ts", "line": 879, "column": 3 } ] }, { "title": "Team Collaboration - Dev<->QA Loop Tests", "file": "team-collaboration.spec.ts", "line": 947, "column": 6, "specs": [ { "title": "TEAM-LOOP-01: Start Dev<->QA loop", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 19, "parallelIndex": 7, "status": "failed", "duration": 5039, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:1034:32", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 32, "line": 1034 }, "snippet": "\u001b[0m \u001b[90m 1032 |\u001b[39m }\u001b[33m,\u001b[39m { teamId\u001b[33m,\u001b[39m taskId\u001b[33m,\u001b[39m developerId\u001b[33m,\u001b[39m reviewerId })\u001b[33m;\u001b[39m\n \u001b[90m 1033 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 1034 |\u001b[39m expect(loopResult\u001b[33m.\u001b[39msuccess)\u001b[33m.\u001b[39mtoBe(\u001b[36mtrue\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 1035 |\u001b[39m expect(loopResult\u001b[33m.\u001b[39mloop)\u001b[33m.\u001b[39mtoBeDefined()\u001b[33m;\u001b[39m\n \u001b[90m 1036 |\u001b[39m expect(loopResult\u001b[33m.\u001b[39mloop\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mstate)\u001b[33m.\u001b[39mtoBe(\u001b[32m'developing'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 1037 |\u001b[39m expect(loopResult\u001b[33m.\u001b[39mloop\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mdeveloperId)\u001b[33m.\u001b[39mtoBe(developerId)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 32, "line": 1034 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 1032 | }, { teamId, taskId, developerId, reviewerId });\n 1033 |\n> 1034 | expect(loopResult.success).toBe(true);\n | ^\n 1035 | expect(loopResult.loop).toBeDefined();\n 1036 | expect(loopResult.loop?.state).toBe('developing');\n 1037 | expect(loopResult.loop?.developerId).toBe(developerId);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:1034:32" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:33.158Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:28.098Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-b9b06-LOOP-01-Start-Dev---QA-loop-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-b9b06-LOOP-01-Start-Dev---QA-loop-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-b9b06-LOOP-01-Start-Dev---QA-loop-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 32, "line": 1034 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-1e6422d61127e6eca7d7", "file": "team-collaboration.spec.ts", "line": 958, "column": 3 }, { "title": "TEAM-LOOP-02: Submit review with approval", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": -1, "parallelIndex": -1, "status": "skipped", "duration": 0, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:33.258Z", "annotations": [], "attachments": [] } ], "status": "skipped" } ], "id": "b0ac01aada894a169b10-b018cd4f8618cb08f919", "file": "team-collaboration.spec.ts", "line": 1041, "column": 3 }, { "title": "TEAM-LOOP-03: Submit review with revision request", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": -1, "parallelIndex": -1, "status": "skipped", "duration": 0, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:33.259Z", "annotations": [], "attachments": [] } ], "status": "skipped" } ], "id": "b0ac01aada894a169b10-14c4042db0542473943f", "file": "team-collaboration.spec.ts", "line": 1110, "column": 3 }, { "title": "TEAM-LOOP-04: Max iterations triggers escalation", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": -1, "parallelIndex": -1, "status": "skipped", "duration": 0, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:33.259Z", "annotations": [], "attachments": [] } ], "status": "skipped" } ], "id": "b0ac01aada894a169b10-d7e32bc96b946bd7a096", "file": "team-collaboration.spec.ts", "line": 1180, "column": 3 }, { "title": "TEAM-LOOP-05: Update loop state directly", "ok": true, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": -1, "parallelIndex": -1, "status": "skipped", "duration": 0, "errors": [], "stdout": [], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:33.259Z", "annotations": [], "attachments": [] } ], "status": "skipped" } ], "id": "b0ac01aada894a169b10-4ad682a6d0f6a5668b56", "file": "team-collaboration.spec.ts", "line": 1252, "column": 3 } ] }, { "title": "Team Collaboration - Metrics Tests", "file": "team-collaboration.spec.ts", "line": 1314, "column": 6, "specs": [ { "title": "TEAM-METRIC-01: Team metrics calculate correctly", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 58, "parallelIndex": 7, "status": "failed", "duration": 5152, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:1408:39", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 1408 }, "snippet": "\u001b[0m \u001b[90m 1406 |\u001b[39m }\u001b[33m,\u001b[39m teamId)\u001b[33m;\u001b[39m\n \u001b[90m 1407 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 1408 |\u001b[39m expect(metricsResult\u001b[33m.\u001b[39mmetrics)\u001b[33m.\u001b[39mnot\u001b[33m.\u001b[39mtoBeNull()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 1409 |\u001b[39m expect(metricsResult\u001b[33m.\u001b[39mmetrics\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtasksCompleted)\u001b[33m.\u001b[39mtoBe(\u001b[35m2\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 1410 |\u001b[39m expect(metricsResult\u001b[33m.\u001b[39mmetrics\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mpassRate)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 1411 |\u001b[39m expect(metricsResult\u001b[33m.\u001b[39mmetrics\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mefficiency)\u001b[33m.\u001b[39mtoBeGreaterThan(\u001b[35m0\u001b[39m)\u001b[33m;\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 1408 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mnot\u001b[2m.\u001b[22mtoBeNull\u001b[2m()\u001b[22m\n\nReceived: \u001b[31mnull\u001b[39m\n\n 1406 | }, teamId);\n 1407 |\n> 1408 | expect(metricsResult.metrics).not.toBeNull();\n | ^\n 1409 | expect(metricsResult.metrics?.tasksCompleted).toBe(2);\n 1410 | expect(metricsResult.metrics?.passRate).toBeGreaterThan(0);\n 1411 | expect(metricsResult.metrics?.efficiency).toBeGreaterThan(0);\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:1408:39" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:40.076Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:34.762Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-020a9-metrics-calculate-correctly-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-020a9-metrics-calculate-correctly-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-020a9-metrics-calculate-correctly-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 39, "line": 1408 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-6ae158a82cbf912304f3", "file": "team-collaboration.spec.ts", "line": 1325, "column": 3 }, { "title": "TEAM-METRIC-02: Metrics update after task completion", "ok": false, "tags": [], "tests": [ { "timeout": 120000, "annotations": [], "expectedStatus": "passed", "projectId": "chromium", "projectName": "chromium", "results": [ { "workerIndex": 64, "parallelIndex": 7, "status": "failed", "duration": 5111, "error": { "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:1474:51", "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 51, "line": 1474 }, "snippet": "\u001b[0m \u001b[90m 1472 |\u001b[39m }\u001b[33m,\u001b[39m teamId)\u001b[33m;\u001b[39m\n \u001b[90m 1473 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 1474 |\u001b[39m expect(metricsResult\u001b[33m.\u001b[39mmetrics\u001b[33m?\u001b[39m\u001b[33m.\u001b[39mtasksCompleted)\u001b[33m.\u001b[39mtoBe(\u001b[35m1\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 1475 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 1476 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 1477 |\u001b[39m\u001b[0m" }, "errors": [ { "location": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 51, "line": 1474 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n 1472 | }, teamId);\n 1473 |\n> 1474 | expect(metricsResult.metrics?.tasksCompleted).toBe(1);\n | ^\n 1475 | });\n 1476 | });\n 1477 |\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:1474:51" } ], "stdout": [ { "text": "\n========================================\n" }, { "text": "ZCLAW Team Collaboration E2E Tests Complete\n" }, { "text": "========================================\n" }, { "text": "Test Time: 2026-03-25T23:56:46.796Z\n" }, { "text": "========================================\n\n" } ], "stderr": [], "retry": 0, "startTime": "2026-03-25T23:56:41.502Z", "annotations": [], "attachments": [ { "name": "screenshot", "contentType": "image/png", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-ccb22-pdate-after-task-completion-chromium\\test-failed-1.png" }, { "name": "video", "contentType": "video/webm", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-ccb22-pdate-after-task-completion-chromium\\video.webm" }, { "name": "error-context", "contentType": "text/markdown", "path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\team-collaboration-Team-Co-ccb22-pdate-after-task-completion-chromium\\error-context.md" } ], "errorLocation": { "file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts", "column": 51, "line": 1474 } } ], "status": "unexpected" } ], "id": "b0ac01aada894a169b10-d1f5536e8b3df5a20a3a", "file": "team-collaboration.spec.ts", "line": 1414, "column": 3 } ] } ] } ], "errors": [], "stats": { "startTime": "2026-03-25T23:53:16.387Z", "duration": 307680.625, "expected": 174, "skipped": 5, "unexpected": 73, "flaky": 0 } }