Files
zclaw_openfang/desktop/tests/e2e/test-results/results.json
iven 3ff08faa56 release(v0.2.0): streaming, MCP protocol, Browser Hand, security enhancements
## Major Features

### Streaming Response System
- Implement LlmDriver trait with `stream()` method returning async Stream
- Add SSE parsing for Anthropic and OpenAI API streaming
- Integrate Tauri event system for frontend streaming (`stream:chunk` events)
- Add StreamChunk types: Delta, ToolStart, ToolEnd, Complete, Error

### MCP Protocol Implementation
- Add MCP JSON-RPC 2.0 types (mcp_types.rs)
- Implement stdio-based MCP transport (mcp_transport.rs)
- Support tool discovery, execution, and resource operations

### Browser Hand Implementation
- Complete browser automation with Playwright-style actions
- Support Navigate, Click, Type, Scrape, Screenshot, Wait actions
- Add educational Hands: Whiteboard, Slideshow, Speech, Quiz

### Security Enhancements
- Implement command whitelist/blacklist for shell_exec tool
- Add SSRF protection with private IP blocking
- Create security.toml configuration file

## Test Improvements
- Fix test import paths (security-utils, setup)
- Fix vi.mock hoisting issues with vi.hoisted()
- Update test expectations for validateUrl and sanitizeFilename
- Add getUnsupportedLocalGatewayStatus mock

## Documentation Updates
- Update architecture documentation
- Improve configuration reference
- Add quick-start guide updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 03:24:24 +08:00

13636 lines
671 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 9121,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:14.108Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "91fd37acece20ae22b70-49dd5c3740cccbc8289a",
"file": "app-verification.spec.ts",
"line": 34,
"column": 5
},
{
"title": "页面标题正确",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 8910,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:14.139Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"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": 19021,
"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-22T01:44:14.122Z",
"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": 9048,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:14.135Z",
"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": 9142,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:14.115Z",
"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": 8747,
"errors": [],
"stdout": [
{
"text": "Chat input found: true\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:14.149Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "91fd37acece20ae22b70-b7108a2c388d349a1c85",
"file": "app-verification.spec.ts",
"line": 108,
"column": 5
},
{
"title": "消息发送功能",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 9321,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:14.096Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "91fd37acece20ae22b70-3e0629d374dfd7c691dd",
"file": "app-verification.spec.ts",
"line": 128,
"column": 5
},
{
"title": "会话列表渲染",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 8638,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:14.120Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"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": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 1833,
"errors": [],
"stdout": [
{
"text": "Found 0 hand cards\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:23.469Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "91fd37acece20ae22b70-64da3b28dc87e3b848e6",
"file": "app-verification.spec.ts",
"line": 170,
"column": 5
},
{
"title": "Hand 触发按钮",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 5,
"parallelIndex": 5,
"status": "failed",
"duration": 12891,
"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-22T01:44:23.576Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-4-Hands-系统UI-Hand-触发按钮-chromium\\test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-4-Hands-系统UI-Hand-触发按钮-chromium\\video.webm"
},
{
"name": "error-context",
"contentType": "text/markdown",
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\app-verification-ZCLAW-前端功能验证-4-Hands-系统UI-Hand-触发按钮-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-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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 2007,
"errors": [],
"stdout": [
{
"text": "Task list found: true\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:23.711Z",
"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": 3,
"parallelIndex": 3,
"status": "passed",
"duration": 2150,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:23.922Z",
"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": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 2778,
"errors": [],
"stdout": [
{
"text": "Team create button available\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:23.959Z",
"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": 4,
"parallelIndex": 4,
"status": "passed",
"duration": 2655,
"errors": [],
"stdout": [
{
"text": "Found 0 team members\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:24.008Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 2666,
"errors": [],
"stdout": [
{
"text": "Found 0 status indicators\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:24.154Z",
"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": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 2212,
"errors": [],
"stdout": [
{
"text": "Found 3 settings tabs\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:25.334Z",
"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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 2235,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:25.742Z",
"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": 3,
"parallelIndex": 3,
"status": "passed",
"duration": 2228,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:26.102Z",
"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": 1765,
"errors": [],
"stdout": [
{
"text": "Right panel content found: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:26.691Z",
"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": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 2729,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:26.767Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 1541,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:26.850Z",
"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": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 1954,
"errors": [],
"stdout": [
{
"text": "Mobile menu found: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:27.573Z",
"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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 2022,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:27.990Z",
"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": 2246,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:28.362Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 2469,
"errors": [],
"stdout": [
{
"text": "Page load time: 1014ms\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:28.423Z",
"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": 4,
"parallelIndex": 4,
"status": "passed",
"duration": 1499,
"errors": [],
"stdout": [
{
"text": "DOM nodes: 147\n"
},
{
"text": "Memory used: 22MB\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:28.479Z",
"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": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 2486,
"errors": [],
"stdout": [
{
"text": "Console errors: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:29.514Z",
"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": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 3536,
"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-22T01:44:29.545Z",
"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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 6650,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:30.079Z",
"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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 7304,
"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-22T01:44:44.082Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:36.745Z",
"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": 3,
"parallelIndex": 3,
"status": "passed",
"duration": 4110,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:30.730Z",
"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": 3,
"parallelIndex": 3,
"status": "passed",
"duration": 3974,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Core Feature E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:44:38.841Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:34.852Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 4139,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:30.950Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 6219,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Core Feature E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:44:41.347Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:35.108Z",
"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": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 7668,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:32.037Z",
"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": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 7760,
"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-22T01:44:47.488Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:39.714Z",
"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": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 7219,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:33.138Z",
"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": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 9262,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Core Feature E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:44:49.645Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:40.368Z",
"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": 5848,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:30.063Z",
"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": 5681,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:35.929Z",
"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": 5548,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:41.626Z",
"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": 5444,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:47.189Z",
"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": 5400,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:52.645Z",
"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": 5398,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:58.060Z",
"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": 5347,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Core Feature E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:45:08.831Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:03.468Z",
"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": 8,
"parallelIndex": 2,
"status": "passed",
"duration": 7941,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:35.317Z",
"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": 8,
"parallelIndex": 2,
"status": "passed",
"duration": 10318,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Core Feature E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:44:53.775Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:43.425Z",
"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": 9,
"parallelIndex": 5,
"status": "failed",
"duration": 66886,
"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-22T01:45:45.027Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:38.029Z",
"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": 16,
"parallelIndex": 5,
"status": "failed",
"duration": 67619,
"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-22T01:46:54.571Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:46.802Z",
"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": 41,
"parallelIndex": 5,
"status": "passed",
"duration": 4409,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 数据流验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:47:01.117Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:56.542Z",
"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": 3,
"parallelIndex": 3,
"status": "failed",
"duration": 67174,
"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-22T01:45:46.086Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:38.887Z",
"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": 17,
"parallelIndex": 3,
"status": "passed",
"duration": 7274,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:47.928Z",
"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": 17,
"parallelIndex": 3,
"status": "passed",
"duration": 10225,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 数据流验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:05.575Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:55.328Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 4567,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:41.397Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 4450,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:45.975Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 11829,
"errors": [],
"stdout": [
{
"text": "Hand cards found: 0\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 数据流验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:02.291Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:50.439Z",
"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": 1,
"parallelIndex": 1,
"status": "skipped",
"duration": 5888,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:44.125Z",
"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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 5863,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:50.032Z",
"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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 4918,
"errors": [],
"stdout": [
{
"text": "Workflows in Store: 0, in UI: 0\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 数据流验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:00.841Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:55.907Z",
"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": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 5547,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:47.520Z",
"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": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 11285,
"errors": [],
"stdout": [
{
"text": "Skill API requests: 2\n"
},
{
"text": "Skills in UI: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:53.077Z",
"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": 0,
"parallelIndex": 0,
"status": "failed",
"duration": 5343,
"error": {
"message": "Error: locator.isVisible: Error: strict mode violation: locator('input[placeholder*=\"搜索\"]').or(locator('input[type=\"search\"]')) resolved to 2 elements:\n 1) <input value=\"\" type=\"text\" placeholder=\"搜索...\" class=\"w-full pl-9 pr-8 py-2 bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg text-sm focus:outline-none focus:border-gray-400 focus:ring-1 focus:ring-gray-400 transition-all text-gray-700 dark:text-gray-300 placeholder-gray-400\"/> aka getByRole('textbox', { name: '搜索...' })\n 2) <input value=\"\" type=\"text\" placeholder=\"搜索技能、能力、触发词...\" class=\"w-full pl-9 pr-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-gray-400 focus:border-transparent text-sm\"/> 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) <input value=\"\" type=\"text\" placeholder=\"搜索...\" class=\"w-full pl-9 pr-8 py-2 bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg text-sm focus:outline-none focus:border-gray-400 focus:ring-1 focus:ring-gray-400 transition-all text-gray-700 dark:text-gray-300 placeholder-gray-400\"/> aka getByRole('textbox', { name: '搜索...' })\n 2) <input value=\"\" type=\"text\" placeholder=\"搜索技能、能力、触发词...\" class=\"w-full pl-9 pr-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-gray-400 focus:border-transparent text-sm\"/> 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) <input value=\"\" type=\"text\" placeholder=\"搜索...\" class=\"w-full pl-9 pr-8 py-2 bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg text-sm focus:outline-none focus:border-gray-400 focus:ring-1 focus:ring-gray-400 transition-all text-gray-700 dark:text-gray-300 placeholder-gray-400\"/> aka getByRole('textbox', { name: '搜索...' })\n 2) <input value=\"\" type=\"text\" placeholder=\"搜索技能、能力、触发词...\" class=\"w-full pl-9 pr-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-gray-400 focus:border-transparent text-sm\"/> 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-22T01:45:09.735Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:04.375Z",
"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": 7,
"parallelIndex": 7,
"status": "passed",
"duration": 5329,
"errors": [],
"stdout": [
{
"text": "Teams in Store: 0, in UI: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:49.714Z",
"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": 7,
"parallelIndex": 7,
"status": "failed",
"duration": 15649,
"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-22T01:45:10.729Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:55.059Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 4342,
"errors": [],
"stdout": [
{
"text": "Settings visible: true\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 数据流验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:16.555Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:12.044Z",
"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": 8,
"parallelIndex": 2,
"status": "passed",
"duration": 4733,
"errors": [],
"stdout": [
{
"text": "Model options: 0\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 数据流验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:44:58.576Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:53.822Z",
"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": 8,
"parallelIndex": 2,
"status": "passed",
"duration": 382,
"errors": [],
"stdout": [
{
"text": "Offline state page content: \n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:58.609Z",
"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": 8,
"parallelIndex": 2,
"status": "passed",
"duration": 9231,
"errors": [],
"stdout": [
{
"text": "Connection: undefined -> undefined\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:44:59.008Z",
"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": 8,
"parallelIndex": 2,
"status": "failed",
"duration": 9296,
"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-22T01:45:17.567Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:08.251Z",
"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": 12,
"parallelIndex": 2,
"status": "passed",
"duration": 6987,
"errors": [],
"stdout": [
{
"text": "Error shown: false\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 边界情况验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:25.902Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:18.806Z",
"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": 1,
"parallelIndex": 1,
"status": "passed",
"duration": 6948,
"errors": [],
"stdout": [
{
"text": "Rate limit handling verified\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:00.865Z",
"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": 1,
"parallelIndex": 1,
"status": "failed",
"duration": 59314,
"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: 45415ms\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 边界情况验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:07.163Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [
{
"text": "Sidebar not found\n"
}
],
"retry": 0,
"startTime": "2026-03-22T01:45:07.827Z",
"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": 22,
"parallelIndex": 1,
"status": "failed",
"duration": 4274,
"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-22T01:46:13.164Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:08.727Z",
"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": 23,
"parallelIndex": 1,
"status": "failed",
"duration": 13933,
"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 <button disabled tabindex=\"0\" aria-label=\"发送消息\" class=\"font-medium transition-colors duration-fast focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed text-xs w-8 h-8 rounded-full p-0 flex items-center justify-center bg-orange-500 hover:bg-orange-600 text-white disabled:opacity-50\">…</button>\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 <button disabled tabindex=\"0\" aria-label=\"发送消息\" class=\"font-medium transition-colors duration-fast focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed text-xs w-8 h-8 rounded-full p-0 flex items-center justify-center bg-orange-500 hover:bg-orange-600 text-white disabled:opacity-50\">…</button>\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 <button disabled tabindex=\"0\" aria-label=\"发送消息\" class=\"font-medium transition-colors duration-fast focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed text-xs w-8 h-8 rounded-full p-0 flex items-center justify-center bg-orange-500 hover:bg-orange-600 text-white disabled:opacity-50\">…</button>\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-22T01:46:28.756Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:14.641Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 5931,
"errors": [],
"stdout": [
{
"text": "Special characters message sent\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:02.319Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 6153,
"errors": [],
"stdout": [
{
"text": "Unicode message visible: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:08.267Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 5866,
"errors": [],
"stdout": [
{
"text": "Code block visible: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:14.435Z",
"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": 6,
"parallelIndex": 6,
"status": "passed",
"duration": 6380,
"errors": [],
"stdout": [
{
"text": "Empty state shown: true\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 边界情况验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:26.707Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:20.312Z",
"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": 14532,
"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 <button disabled tabindex=\"0\" aria-label=\"发送消息\" class=\"font-medium transition-colors duration-fast focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed text-xs w-8 h-8 rounded-full p-0 flex items-center justify-center bg-orange-500 hover:bg-orange-600 text-white disabled:opacity-50\">…</button>\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 <button disabled tabindex=\"0\" aria-label=\"发送消息\" class=\"font-medium transition-colors duration-fast focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed text-xs w-8 h-8 rounded-full p-0 flex items-center justify-center bg-orange-500 hover:bg-orange-600 text-white disabled:opacity-50\">…</button>\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 <button disabled tabindex=\"0\" aria-label=\"发送消息\" class=\"font-medium transition-colors duration-fast focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed text-xs w-8 h-8 rounded-full p-0 flex items-center justify-center bg-orange-500 hover:bg-orange-600 text-white disabled:opacity-50\">…</button>\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-22T01:45:23.436Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:08.880Z",
"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": 13,
"parallelIndex": 4,
"status": "failed",
"duration": 7689,
"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-22T01:45:32.623Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:24.821Z",
"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": 14,
"parallelIndex": 4,
"status": "passed",
"duration": 14698,
"errors": [],
"stdout": [
{
"text": "Errors after rapid switching: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:33.815Z",
"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": 14,
"parallelIndex": 4,
"status": "failed",
"duration": 10580,
"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-22T01:45:59.232Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:48.628Z",
"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": 10,
"parallelIndex": 0,
"status": "passed",
"duration": 11759,
"errors": [],
"stdout": [
{
"text": "DOM nodes: 147 -> 187\n"
},
{
"text": "JS heap: 31200000 -> 31200000\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:11.000Z",
"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": 10,
"parallelIndex": 0,
"status": "passed",
"duration": 14285,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:22.867Z",
"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": 10,
"parallelIndex": 0,
"status": "passed",
"duration": 4059,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:37.164Z",
"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": 10,
"parallelIndex": 0,
"status": "passed",
"duration": 4980,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 边界情况验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:46.235Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:41.236Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 3751,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:16.581Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 3880,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:20.344Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 5874,
"errors": [],
"stdout": [
{
"text": "XSS test passed - no alert shown\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:24.236Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 5837,
"errors": [],
"stdout": [
{
"text": "HTML input test completed\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 边界情况验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:35.979Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:30.122Z",
"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": 12,
"parallelIndex": 2,
"status": "passed",
"duration": 5235,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:25.909Z",
"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": 12,
"parallelIndex": 2,
"status": "failed",
"duration": 14983,
"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-22T01:45:46.165Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:31.158Z",
"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": 18,
"parallelIndex": 2,
"status": "passed",
"duration": 5801,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 边界情况验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:45:53.927Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:47.970Z",
"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": 6,
"parallelIndex": 6,
"status": "failed",
"duration": 12790,
"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-22T01:45:39.547Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:26.741Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 2397,
"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-22T01:45:40.837Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 7632,
"errors": [],
"stdout": [
{
"text": "Connection logs: []\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:43.376Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 2268,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:51.023Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 7762,
"errors": [],
"stdout": [
{
"text": "Messages found: 1\n"
},
{
"text": "User message visible: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:53.305Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 2438,
"errors": [],
"stdout": [
{
"text": "Conversation items found: 0\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:03.550Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:01.088Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 2710,
"errors": [],
"stdout": [
{
"text": "Messages after new chat: 1\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:36.018Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 8898,
"errors": [],
"stdout": [
{
"text": "Streaming indicator visible: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:38.744Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 5596,
"errors": [],
"stdout": [
{
"text": "Error message shown: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:47.659Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 3391,
"errors": [],
"stdout": [
{
"text": "Clone/Agent items found: 1\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:53.267Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 2662,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:56.676Z",
"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": 11,
"parallelIndex": 7,
"status": "passed",
"duration": 2501,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:01.873Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:59.349Z",
"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": 10,
"parallelIndex": 0,
"status": "passed",
"duration": 2354,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:46.290Z",
"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": 10,
"parallelIndex": 0,
"status": "failed",
"duration": 5688,
"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-22T01:45:54.363Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:48.657Z",
"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": 19,
"parallelIndex": 0,
"status": "passed",
"duration": 3328,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:55.806Z",
"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": 19,
"parallelIndex": 0,
"status": "passed",
"duration": 3434,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:59.297Z",
"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": 19,
"parallelIndex": 0,
"status": "passed",
"duration": 3359,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:02.743Z",
"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": 19,
"parallelIndex": 0,
"status": "passed",
"duration": 3356,
"errors": [],
"stdout": [
{
"text": "Workflow items found: 0\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:09.492Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:06.115Z",
"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": 18,
"parallelIndex": 2,
"status": "passed",
"duration": 3770,
"errors": [],
"stdout": [
{
"text": "Workflow editor visible: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:53.991Z",
"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": 18,
"parallelIndex": 2,
"status": "passed",
"duration": 3296,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:45:57.774Z",
"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": 18,
"parallelIndex": 2,
"status": "passed",
"duration": 3551,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:01.080Z",
"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": 18,
"parallelIndex": 2,
"status": "passed",
"duration": 3575,
"errors": [],
"stdout": [
{
"text": "Team items found: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:04.652Z",
"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": 18,
"parallelIndex": 2,
"status": "passed",
"duration": 3398,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:08.247Z",
"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": 18,
"parallelIndex": 2,
"status": "passed",
"duration": 3569,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:15.257Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:11.664Z",
"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": 20,
"parallelIndex": 4,
"status": "passed",
"duration": 3515,
"errors": [],
"stdout": [
{
"text": "Swarm dashboard visible: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:00.890Z",
"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": 20,
"parallelIndex": 4,
"status": "passed",
"duration": 3666,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:04.520Z",
"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": 20,
"parallelIndex": 4,
"status": "passed",
"duration": 3386,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:08.201Z",
"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": 20,
"parallelIndex": 4,
"status": "passed",
"duration": 2843,
"errors": [],
"stdout": [
{
"text": "Settings layout visible: true\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:11.601Z",
"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": 20,
"parallelIndex": 4,
"status": "passed",
"duration": 3003,
"errors": [],
"stdout": [
{
"text": "Username input visible: true\n"
},
{
"text": "Theme selector visible: false\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:14.457Z",
"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": 20,
"parallelIndex": 4,
"status": "passed",
"duration": 3265,
"errors": [],
"stdout": [
{
"text": "Model options found: 0\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:20.778Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:17.480Z",
"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": 11,
"parallelIndex": 7,
"status": "failed",
"duration": 2887,
"error": {
"message": "Error: locator.isVisible: Error: strict mode violation: locator('[class*=\"gateway\"]').or(getByText(/gateway|服务器|server/i)) resolved to 3 elements:\n 1) <h2 class=\"text-sm font-medium text-gray-500 uppercase tracking-wide mb-3\">Gateway 连接</h2> aka getByRole('heading', { name: 'Gateway 连接' })\n 2) <div class=\"text-xs text-red-500 bg-red-50 rounded-lg p-2\">Failed to connect to OpenFang: REST API error: 50…</div> aka getByText('Failed to connect to OpenFang')\n 3) <button class=\"text-sm bg-orange-500 text-white rounded-lg px-4 py-1.5 hover:bg-orange-600 disabled:opacity-50\">连接 Gateway</button> 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) <h2 class=\"text-sm font-medium text-gray-500 uppercase tracking-wide mb-3\">Gateway 连接</h2> aka getByRole('heading', { name: 'Gateway 连接' })\n 2) <div class=\"text-xs text-red-500 bg-red-50 rounded-lg p-2\">Failed to connect to OpenFang: REST API error: 50…</div> aka getByText('Failed to connect to OpenFang')\n 3) <button class=\"text-sm bg-orange-500 text-white rounded-lg px-4 py-1.5 hover:bg-orange-600 disabled:opacity-50\">连接 Gateway</button> 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) <h2 class=\"text-sm font-medium text-gray-500 uppercase tracking-wide mb-3\">Gateway 连接</h2> aka getByRole('heading', { name: 'Gateway 连接' })\n 2) <div class=\"text-xs text-red-500 bg-red-50 rounded-lg p-2\">Failed to connect to OpenFang: REST API error: 50…</div> aka getByText('Failed to connect to OpenFang')\n 3) <button class=\"text-sm bg-orange-500 text-white rounded-lg px-4 py-1.5 hover:bg-orange-600 disabled:opacity-50\">连接 Gateway</button> 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-22T01:46:04.800Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:01.884Z",
"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": 21,
"parallelIndex": 7,
"status": "passed",
"duration": 3008,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:06.757Z",
"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": 21,
"parallelIndex": 7,
"status": "passed",
"duration": 2434,
"errors": [],
"stdout": [
{
"text": "Right panel visible\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:09.908Z",
"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": 21,
"parallelIndex": 7,
"status": "passed",
"duration": 2563,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:12.360Z",
"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": 21,
"parallelIndex": 7,
"status": "passed",
"duration": 2384,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:14.943Z",
"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": 21,
"parallelIndex": 7,
"status": "passed",
"duration": 2494,
"errors": [],
"stdout": [
{
"text": "Onboarding visible: false\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:19.874Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:17.344Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 8730,
"errors": [],
"stdout": [
{
"text": "Total messages: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:03.558Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 8164,
"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-22T01:46:12.304Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 6326,
"errors": [],
"stdout": [
{
"text": "Messages after reload: 1\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:20.487Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 2417,
"errors": [],
"stdout": [
{
"text": "Page load time: 2113ms\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:26.825Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 2406,
"errors": [],
"stdout": [
{
"text": "DOM nodes: 147\n"
},
{
"text": "JS heap: 22MB\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:29.256Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 3424,
"errors": [],
"stdout": [
{
"text": "Errors after rapid switching: 0\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:35.115Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:31.676Z",
"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": 17,
"parallelIndex": 3,
"status": "passed",
"duration": 4347,
"errors": [],
"stdout": [
{
"text": "After extended use - DOM: 186, localStorage keys: 3\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:05.623Z",
"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": 17,
"parallelIndex": 3,
"status": "passed",
"duration": 3515,
"errors": [],
"stdout": [
{
"text": "Focused element visible: true\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:09.984Z",
"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": 17,
"parallelIndex": 3,
"status": "passed",
"duration": 2429,
"errors": [],
"stdout": [
{
"text": "Buttons without accessible name: 0 out of 11\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:13.512Z",
"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": 17,
"parallelIndex": 3,
"status": "passed",
"duration": 3333,
"errors": [],
"stdout": [
{
"text": "Focus returned after Escape: false\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW 前端功能验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:46:19.307Z\n"
},
{
"text": "截图目录: test-results/screenshots\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:15.953Z",
"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": 19,
"parallelIndex": 0,
"status": "failed",
"duration": 5045,
"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-22T01:46:14.604Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:09.537Z",
"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": 24,
"parallelIndex": 0,
"status": "failed",
"duration": 7491,
"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-22T01:46:24.084Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:16.463Z",
"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": 27,
"parallelIndex": 0,
"status": "failed",
"duration": 4621,
"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-22T01:46:30.358Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:25.581Z",
"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": 18,
"parallelIndex": 2,
"status": "failed",
"duration": 4081,
"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-22T01:46:19.419Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:15.317Z",
"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": 25,
"parallelIndex": 2,
"status": "failed",
"duration": 4018,
"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-22T01:46:25.617Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:21.473Z",
"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": 2,
"status": "passed",
"duration": 4010,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Memory System E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:46:31.710Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:27.547Z",
"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": 17,
"parallelIndex": 3,
"status": "failed",
"duration": 4640,
"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_1774143983086-z7dzz30vu\"\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_1774143983086-z7dzz30vu\"\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_1774143983086-z7dzz30vu\"\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-22T01:46:24.006Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:19.344Z",
"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": 26,
"parallelIndex": 3,
"status": "passed",
"duration": 7591,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:25.544Z",
"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": 26,
"parallelIndex": 3,
"status": "failed",
"duration": 7490,
"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-22T01:46:40.785Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:33.270Z",
"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": 21,
"parallelIndex": 7,
"status": "failed",
"duration": 7586,
"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-22T01:46:27.541Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:19.927Z",
"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": 30,
"parallelIndex": 7,
"status": "failed",
"duration": 7570,
"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-22T01:46:36.694Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:28.999Z",
"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": 36,
"parallelIndex": 7,
"status": "passed",
"duration": 4183,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Memory System E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:46:42.822Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:38.508Z",
"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": 20,
"parallelIndex": 4,
"status": "failed",
"duration": 3990,
"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-22T01:46:24.854Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:20.839Z",
"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": 28,
"parallelIndex": 4,
"status": "passed",
"duration": 4146,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:26.550Z",
"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": 28,
"parallelIndex": 4,
"status": "failed",
"duration": 3946,
"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-22T01:46:34.808Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:30.840Z",
"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": 31,
"parallelIndex": 1,
"status": "passed",
"duration": 3966,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:30.497Z",
"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": 31,
"parallelIndex": 1,
"status": "failed",
"duration": 3988,
"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-22T01:46:38.592Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:34.580Z",
"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": 37,
"parallelIndex": 1,
"status": "passed",
"duration": 4114,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Memory System E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:46:44.206Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:39.989Z",
"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": 32,
"parallelIndex": 0,
"status": "failed",
"duration": 4031,
"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-22T01:46:36.172Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:32.011Z",
"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": 35,
"parallelIndex": 0,
"status": "failed",
"duration": 7792,
"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-22T01:46:45.835Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:37.909Z",
"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": 40,
"parallelIndex": 0,
"status": "failed",
"duration": 8003,
"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 1774144011412-r2b9nca1e\"\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 1774144011412-r2b9nca1e\"\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 1774144011412-r2b9nca1e\"\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-22T01:46:55.514Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:47.316Z",
"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": 29,
"parallelIndex": 2,
"status": "failed",
"duration": 4019,
"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-22T01:46:35.755Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:31.717Z",
"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": 34,
"parallelIndex": 2,
"status": "failed",
"duration": 4107,
"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 1774144001280-f2qd4nfwx\"\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 1774144001280-f2qd4nfwx\"\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 1774144001280-f2qd4nfwx\"\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-22T01:46:41.677Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:37.453Z",
"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": 39,
"parallelIndex": 2,
"status": "passed",
"duration": 4325,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Memory System E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:46:47.995Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:43.543Z",
"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": 33,
"parallelIndex": 4,
"status": "passed",
"duration": 5672,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:36.312Z",
"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": 33,
"parallelIndex": 4,
"status": "passed",
"duration": 5182,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:42.119Z",
"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": 33,
"parallelIndex": 4,
"status": "passed",
"duration": 7645,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:47.322Z",
"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": 33,
"parallelIndex": 4,
"status": "passed",
"duration": 5678,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Settings E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:47:00.688Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:54.984Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 5638,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:35.156Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 4014,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:40.810Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 3944,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:44.841Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 4013,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Settings E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:46:52.831Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:48.799Z",
"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": 38,
"parallelIndex": 3,
"status": "passed",
"duration": 4083,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:42.585Z",
"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": 38,
"parallelIndex": 3,
"status": "passed",
"duration": 4042,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:46.818Z",
"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": 38,
"parallelIndex": 3,
"status": "passed",
"duration": 4144,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:50.872Z",
"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": 38,
"parallelIndex": 3,
"status": "passed",
"duration": 4077,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Settings E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:46:59.123Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:55.030Z",
"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": 36,
"parallelIndex": 7,
"status": "passed",
"duration": 4012,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:42.856Z",
"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": 36,
"parallelIndex": 7,
"status": "passed",
"duration": 4157,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:46.882Z",
"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": 36,
"parallelIndex": 7,
"status": "passed",
"duration": 4329,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:51.052Z",
"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": 36,
"parallelIndex": 7,
"status": "passed",
"duration": 5092,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Settings E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:47:00.513Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:55.398Z",
"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": 37,
"parallelIndex": 1,
"status": "passed",
"duration": 4078,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:44.239Z",
"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": 37,
"parallelIndex": 1,
"status": "passed",
"duration": 4098,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:48.332Z",
"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": 37,
"parallelIndex": 1,
"status": "passed",
"duration": 4193,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:52.449Z",
"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": 37,
"parallelIndex": 1,
"status": "passed",
"duration": 5196,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Settings E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:47:01.872Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:56.658Z",
"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": 39,
"parallelIndex": 2,
"status": "passed",
"duration": 4202,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:48.036Z",
"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": 39,
"parallelIndex": 2,
"status": "passed",
"duration": 4092,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:52.252Z",
"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": 39,
"parallelIndex": 2,
"status": "passed",
"duration": 4074,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:56.357Z",
"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": 39,
"parallelIndex": 2,
"status": "passed",
"duration": 8607,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Settings E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:47:09.076Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:00.451Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 6870,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:52.838Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 3965,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Settings E2E Tests Complete\n"
},
{
"text": "========================================\n"
},
{
"text": "Test Time: 2026-03-22T01:47:03.706Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:59.720Z",
"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": 42,
"parallelIndex": 0,
"status": "failed",
"duration": 3987,
"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-22T01:47:01.675Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:57.558Z",
"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": 43,
"parallelIndex": 0,
"status": "failed",
"duration": 3948,
"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-22T01:47:07.134Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:03.067Z",
"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": 48,
"parallelIndex": 0,
"status": "failed",
"duration": 4127,
"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-22T01:47:13.241Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:08.986Z",
"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": 51,
"parallelIndex": 0,
"status": "failed",
"duration": 4116,
"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-22T01:47:19.130Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:14.863Z",
"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": 38,
"parallelIndex": 3,
"status": "failed",
"duration": 3939,
"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-22T01:47:03.111Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:46:59.153Z",
"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": 44,
"parallelIndex": 3,
"status": "failed",
"duration": 66212,
"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-22T01:48:10.984Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:04.646Z",
"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": 67,
"parallelIndex": 0,
"status": "passed",
"duration": 7196,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:48:12.205Z",
"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": 67,
"parallelIndex": 0,
"status": "failed",
"duration": 7079,
"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-22T01:48:26.610Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:48:19.513Z",
"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": 7,
"status": "failed",
"duration": 4091,
"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-22T01:47:04.681Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:00.568Z",
"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": 45,
"parallelIndex": 7,
"status": "failed",
"duration": 66396,
"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-22T01:48:12.879Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:06.368Z",
"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": 68,
"parallelIndex": 1,
"status": "failed",
"duration": 3805,
"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-22T01:48:17.948Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:48:14.031Z",
"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": 69,
"parallelIndex": 1,
"status": "failed",
"duration": 66030,
"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-22T01:49:25.251Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:48:19.099Z",
"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": 33,
"parallelIndex": 4,
"status": "failed",
"duration": 4783,
"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-22T01:47:05.586Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:00.770Z",
"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": 46,
"parallelIndex": 4,
"status": "passed",
"duration": 4605,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:07.106Z",
"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": 46,
"parallelIndex": 4,
"status": "failed",
"duration": 5785,
"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-22T01:47:17.648Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:11.847Z",
"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": 54,
"parallelIndex": 4,
"status": "failed",
"duration": 5945,
"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-22T01:47:24.904Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:18.840Z",
"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": 41,
"parallelIndex": 5,
"status": "failed",
"duration": 6106,
"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-22T01:47:07.294Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:01.154Z",
"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": 49,
"parallelIndex": 5,
"status": "failed",
"duration": 5257,
"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-22T01:47:14.587Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:09.151Z",
"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": 53,
"parallelIndex": 5,
"status": "passed",
"duration": 5408,
"errors": [],
"stdout": [],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:16.520Z",
"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": 53,
"parallelIndex": 5,
"status": "passed",
"duration": 5384,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Store 状态验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:47:27.469Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:22.069Z",
"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": 1,
"status": "failed",
"duration": 3961,
"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-22T01:47:05.892Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:01.909Z",
"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": 47,
"parallelIndex": 1,
"status": "passed",
"duration": 7570,
"errors": [],
"stdout": [
{
"text": "Gateway version: undefined\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:07.437Z",
"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": 47,
"parallelIndex": 1,
"status": "passed",
"duration": 4119,
"errors": [],
"stdout": [
{
"text": "Connection error: undefined\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:15.195Z",
"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": 47,
"parallelIndex": 1,
"status": "passed",
"duration": 3976,
"errors": [],
"stdout": [
{
"text": "Store snapshot keys: []\n"
},
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Store 状态验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:47:23.336Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:19.339Z",
"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": 15,
"parallelIndex": 6,
"status": "passed",
"duration": 4155,
"errors": [],
"stdout": [
{
"text": "\n========================================\n"
},
{
"text": "ZCLAW Store 状态验证测试完成\n"
},
{
"text": "========================================\n"
},
{
"text": "测试时间: 2026-03-22T01:47:07.923Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:03.750Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "671a364594311209f3b3-364cfc9f61cb580e9ee6",
"file": "store-state.spec.ts",
"line": 517,
"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": 39,
"parallelIndex": 2,
"status": "failed",
"duration": 5013,
"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-22T01:47:14.181Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:09.139Z",
"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": 52,
"parallelIndex": 2,
"status": "failed",
"duration": 5061,
"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-22T01:47:21.409Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:16.229Z",
"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": 57,
"parallelIndex": 2,
"status": "failed",
"duration": 4978,
"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-22T01:47:28.007Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:22.913Z",
"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": 50,
"parallelIndex": 6,
"status": "failed",
"duration": 5180,
"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-22T01:47:19.666Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:14.318Z",
"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": 56,
"parallelIndex": 6,
"status": "failed",
"duration": 4975,
"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-22T01:47:26.295Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:21.190Z",
"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": 60,
"parallelIndex": 6,
"status": "failed",
"duration": 5065,
"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-22T01:47:33.230Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:28.006Z",
"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": 55,
"parallelIndex": 0,
"status": "failed",
"duration": 4931,
"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-22T01:47:25.812Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:20.770Z",
"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": 59,
"parallelIndex": 0,
"status": "failed",
"duration": 5040,
"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-22T01:47:32.597Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:27.410Z",
"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": 64,
"parallelIndex": 0,
"status": "failed",
"duration": 5029,
"error": {
"message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)",
"stack": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:512:38",
"location": {
"file": "eval at evaluate (:290:30), <anonymous>",
"column": 26,
"line": 9
}
},
"errors": [
{
"location": {
"file": "eval at evaluate (:290:30), <anonymous>",
"column": 26,
"line": 9
},
"message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>: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-22T01:47:39.309Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:34.141Z",
"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), <anonymous>",
"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": 47,
"parallelIndex": 1,
"status": "failed",
"duration": 4947,
"error": {
"message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:5:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)",
"stack": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:5:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at eval (eval at evaluate (:290:30), <anonymous>:5:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:589:35",
"location": {
"file": "eval at evaluate (:290:30), <anonymous>",
"column": 26,
"line": 5
}
},
"errors": [
{
"location": {
"file": "eval at evaluate (:290:30), <anonymous>",
"column": 26,
"line": 5
},
"message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:5:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at eval (eval at evaluate (:290:30), <anonymous>:5:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>: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-22T01:47:28.367Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:23.391Z",
"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), <anonymous>",
"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": 61,
"parallelIndex": 1,
"status": "failed",
"duration": 4920,
"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-22T01:47:34.753Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:29.726Z",
"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": 65,
"parallelIndex": 1,
"status": "failed",
"duration": 4871,
"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-22T01:47:41.005Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:36.021Z",
"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": 58,
"parallelIndex": 4,
"status": "failed",
"duration": 4916,
"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-22T01:47:31.276Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:26.239Z",
"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": 62,
"parallelIndex": 2,
"status": "failed",
"duration": 4928,
"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-22T01:47:37.664Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:32.610Z",
"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": 66,
"parallelIndex": 2,
"status": "failed",
"duration": 4909,
"error": {
"message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)",
"stack": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\team-collaboration.spec.ts:927:33",
"location": {
"file": "eval at evaluate (:290:30), <anonymous>",
"column": 26,
"line": 9
}
},
"errors": [
{
"location": {
"file": "eval at evaluate (:290:30), <anonymous>",
"column": 26,
"line": 9
},
"message": "Error: page.evaluate: TypeError: teams.find is not a function\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at eval (eval at evaluate (:290:30), <anonymous>:9:26)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>: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-22T01:47:43.940Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:38.917Z",
"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), <anonymous>",
"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": 15,
"parallelIndex": 6,
"status": "failed",
"duration": 4917,
"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-22T01:47:12.908Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:07.972Z",
"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-22T01:47:13.042Z",
"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-22T01:47:13.042Z",
"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-22T01:47:13.042Z",
"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-22T01:47:13.042Z",
"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": 53,
"parallelIndex": 5,
"status": "failed",
"duration": 4965,
"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-22T01:47:32.511Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:27.522Z",
"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": 63,
"parallelIndex": 4,
"status": "failed",
"duration": 4980,
"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-22T01:47:39.136Z\n"
},
{
"text": "========================================\n\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-03-22T01:47:34.028Z",
"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-22T01:44:10.233Z",
"duration": 315299.88800000004,
"expected": 161,
"skipped": 5,
"unexpected": 70,
"flaky": 0
}
}