Major changes: - Shift from "OpenFang desktop client" to "independent AI Agent desktop app" - Add decision principle: "Is this useful for ZCLAW? Does it affect ZCLAW?" - Simplify project structure and tech stack sections - Replace OpenClaw vs OpenFang comparison with unified backend approach - Consolidate troubleshooting from scattered sections into organized FAQ - Update Hands system documentation with 8 capabilities and status - Stream
1121 lines
42 KiB
JSON
1121 lines
42 KiB
JSON
{
|
|
"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": 7
|
|
},
|
|
"preserveOutput": "always",
|
|
"projects": [
|
|
{
|
|
"outputDir": "G:/ZClaw_openfang/desktop/tests/e2e/test-results/artifacts",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 7
|
|
},
|
|
"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": 7
|
|
},
|
|
"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": 7
|
|
},
|
|
"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": 7
|
|
},
|
|
"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": "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": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 0,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 5405,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:34.254Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-529df80525619b807bdd",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 41,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "CHAT-DF-02: 流式响应数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 0,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 3955,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:39.845Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"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": 0,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 4121,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "\n========================================\n"
|
|
},
|
|
{
|
|
"text": "ZCLAW 数据流验证测试完成\n"
|
|
},
|
|
{
|
|
"text": "========================================\n"
|
|
},
|
|
{
|
|
"text": "测试时间: 2026-03-20T09:35:47.964Z\n"
|
|
},
|
|
{
|
|
"text": "========================================\n\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:43.824Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-dbc5e2812f9944422f07",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 106,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "CHAT-DF-04: 新建对话数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 7724,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:34.270Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"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": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 7001,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:42.208Z",
|
|
"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": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 9912,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "\n========================================\n"
|
|
},
|
|
{
|
|
"text": "ZCLAW 数据流验证测试完成\n"
|
|
},
|
|
{
|
|
"text": "========================================\n"
|
|
},
|
|
{
|
|
"text": "测试时间: 2026-03-20T09:35:59.152Z\n"
|
|
},
|
|
{
|
|
"text": "========================================\n\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:49.222Z",
|
|
"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": 2,
|
|
"parallelIndex": 2,
|
|
"status": "passed",
|
|
"duration": 6011,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:34.270Z",
|
|
"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": 2,
|
|
"parallelIndex": 2,
|
|
"status": "passed",
|
|
"duration": 4330,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:40.489Z",
|
|
"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": 2,
|
|
"parallelIndex": 2,
|
|
"status": "passed",
|
|
"duration": 92732,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "Hand cards found: 0\n"
|
|
},
|
|
{
|
|
"text": "\n========================================\n"
|
|
},
|
|
{
|
|
"text": "ZCLAW 数据流验证测试完成\n"
|
|
},
|
|
{
|
|
"text": "========================================\n"
|
|
},
|
|
{
|
|
"text": "测试时间: 2026-03-20T09:37:17.583Z\n"
|
|
},
|
|
{
|
|
"text": "========================================\n\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
},
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:44.831Z",
|
|
"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": 340,
|
|
"column": 12
|
|
}
|
|
}
|
|
],
|
|
"expectedStatus": "skipped",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 3,
|
|
"parallelIndex": 3,
|
|
"status": "skipped",
|
|
"duration": 49673,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:34.289Z",
|
|
"annotations": [
|
|
{
|
|
"type": "skip",
|
|
"location": {
|
|
"file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts",
|
|
"line": 340,
|
|
"column": 12
|
|
}
|
|
}
|
|
],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "skipped"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-008a28dfecdca8116b5e",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 332,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "HAND-DF-03: Hand 参数表单数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 3,
|
|
"parallelIndex": 3,
|
|
"status": "passed",
|
|
"duration": 48175,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:36:24.185Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-b66d34fc9491564fc927",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 368,
|
|
"column": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "工作流数据流验证",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 399,
|
|
"column": 6,
|
|
"specs": [
|
|
{
|
|
"title": "WF-DF-01: 工作流列表数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 3,
|
|
"parallelIndex": 3,
|
|
"status": "passed",
|
|
"duration": 46977,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "Workflows in Store: 0, in UI: 0\n"
|
|
},
|
|
{
|
|
"text": "\n========================================\n"
|
|
},
|
|
{
|
|
"text": "ZCLAW 数据流验证测试完成\n"
|
|
},
|
|
{
|
|
"text": "========================================\n"
|
|
},
|
|
{
|
|
"text": "测试时间: 2026-03-20T09:37:59.376Z\n"
|
|
},
|
|
{
|
|
"text": "========================================\n\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:37:12.379Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-6df14a43ab8759e33bd6",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 408,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "WF-DF-02: 创建工作流数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 4,
|
|
"parallelIndex": 4,
|
|
"status": "passed",
|
|
"duration": 49317,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:34.320Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-59f8391df50172ae70fa",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 424,
|
|
"column": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "技能市场数据流验证",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 455,
|
|
"column": 6,
|
|
"specs": [
|
|
{
|
|
"title": "SKILL-DF-01: 技能列表数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 4,
|
|
"parallelIndex": 4,
|
|
"status": "passed",
|
|
"duration": 92425,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "Skill API requests: 2\n"
|
|
},
|
|
{
|
|
"text": "Skills in UI: 0\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
},
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:36:23.861Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-e69ec1b43be92916482e",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 464,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "SKILL-DF-02: 搜索技能数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 4,
|
|
"parallelIndex": 4,
|
|
"status": "passed",
|
|
"duration": 46705,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "\n========================================\n"
|
|
},
|
|
{
|
|
"text": "ZCLAW 数据流验证测试完成\n"
|
|
},
|
|
{
|
|
"text": "========================================\n"
|
|
},
|
|
{
|
|
"text": "测试时间: 2026-03-20T09:38:43.017Z\n"
|
|
},
|
|
{
|
|
"text": "========================================\n\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:37:56.298Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-a0cd80e0a96d2f898e69",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 484,
|
|
"column": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "团队协作数据流验证",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 507,
|
|
"column": 6,
|
|
"specs": [
|
|
{
|
|
"title": "TEAM-DF-01: 团队列表数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 5,
|
|
"status": "passed",
|
|
"duration": 49068,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "Teams in Store: 0, in UI: 0\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:34.306Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-d013afd3a6f16ec55da2",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 516,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "TEAM-DF-02: 创建团队数据流",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 5,
|
|
"status": "passed",
|
|
"duration": 47539,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:36:23.612Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-2b9c3212b5e2bc418924",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 531,
|
|
"column": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "设置数据流验证",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 554,
|
|
"column": 6,
|
|
"specs": [
|
|
{
|
|
"title": "SET-DF-01: 打开设置数据流",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 5,
|
|
"status": "failed",
|
|
"duration": 56400,
|
|
"error": {
|
|
"message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('aside button').filter({ hasText: /设置|settings|⚙/i }).or(locator('.p-3.border-t button')).first()\u001b[22m\n",
|
|
"stack": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('aside button').filter({ hasText: /设置|settings|⚙/i }).or(locator('.p-3.border-t button')).first()\u001b[22m\n\n at Object.openSettings (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:717:31)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:563:23",
|
|
"location": {
|
|
"file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts",
|
|
"column": 31,
|
|
"line": 717
|
|
},
|
|
"snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:717\n\n\u001b[0m \u001b[90m 715 |\u001b[39m )\u001b[33m;\u001b[39m\n \u001b[90m 716 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 717 |\u001b[39m \u001b[36mawait\u001b[39m settingsBtn\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 718 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForTimeout(\u001b[35m500\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 719 |\u001b[39m }\u001b[33m,\u001b[39m\n \u001b[90m 720 |\u001b[39m\u001b[0m"
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts",
|
|
"column": 31,
|
|
"line": 717
|
|
},
|
|
"message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('aside button').filter({ hasText: /设置|settings|⚙/i }).or(locator('.p-3.border-t button')).first()\u001b[22m\n\n\n at ..\\utils\\user-actions.ts:717\n\n 715 | );\n 716 |\n> 717 | await settingsBtn.first().click();\n | ^\n 718 | await page.waitForTimeout(500);\n 719 | },\n 720 |\n at Object.openSettings (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:717:31)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:563:23"
|
|
}
|
|
],
|
|
"stdout": [
|
|
{
|
|
"text": "\n========================================\n"
|
|
},
|
|
{
|
|
"text": "ZCLAW 数据流验证测试完成\n"
|
|
},
|
|
{
|
|
"text": "========================================\n"
|
|
},
|
|
{
|
|
"text": "测试时间: 2026-03-20T09:38:07.589Z\n"
|
|
},
|
|
{
|
|
"text": "========================================\n\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:37:11.168Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "screenshot",
|
|
"contentType": "image/png",
|
|
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-设置数据流验证-SET-DF-01-打开设置数据流-chromium\\test-failed-1.png"
|
|
},
|
|
{
|
|
"name": "video",
|
|
"contentType": "video/webm",
|
|
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-设置数据流验证-SET-DF-01-打开设置数据流-chromium\\video.webm"
|
|
},
|
|
{
|
|
"name": "error-context",
|
|
"contentType": "text/markdown",
|
|
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-设置数据流验证-SET-DF-01-打开设置数据流-chromium\\error-context.md"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts",
|
|
"column": 31,
|
|
"line": 717
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-8b134df5feeb02852417",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 561,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "SET-DF-02: 模型配置数据流",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 6,
|
|
"parallelIndex": 6,
|
|
"status": "failed",
|
|
"duration": 58675,
|
|
"error": {
|
|
"message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('aside button').filter({ hasText: /设置|settings|⚙/i }).or(locator('.p-3.border-t button')).first()\u001b[22m\n",
|
|
"stack": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('aside button').filter({ hasText: /设置|settings|⚙/i }).or(locator('.p-3.border-t button')).first()\u001b[22m\n\n at Object.openSettings (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:717:31)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:577:23",
|
|
"location": {
|
|
"file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts",
|
|
"column": 31,
|
|
"line": 717
|
|
},
|
|
"snippet": "\u001b[90m at \u001b[39m..\\utils\\user-actions.ts:717\n\n\u001b[0m \u001b[90m 715 |\u001b[39m )\u001b[33m;\u001b[39m\n \u001b[90m 716 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 717 |\u001b[39m \u001b[36mawait\u001b[39m settingsBtn\u001b[33m.\u001b[39mfirst()\u001b[33m.\u001b[39mclick()\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 718 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForTimeout(\u001b[35m500\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 719 |\u001b[39m }\u001b[33m,\u001b[39m\n \u001b[90m 720 |\u001b[39m\u001b[0m"
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts",
|
|
"column": 31,
|
|
"line": 717
|
|
},
|
|
"message": "TimeoutError: locator.click: Timeout 10000ms exceeded.\nCall log:\n\u001b[2m - waiting for locator('aside button').filter({ hasText: /设置|settings|⚙/i }).or(locator('.p-3.border-t button')).first()\u001b[22m\n\n\n at ..\\utils\\user-actions.ts:717\n\n 715 | );\n 716 |\n> 717 | await settingsBtn.first().click();\n | ^\n 718 | await page.waitForTimeout(500);\n 719 | },\n 720 |\n at Object.openSettings (G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts:717:31)\n at G:\\ZClaw_openfang\\desktop\\tests\\e2e\\specs\\data-flow.spec.ts:577:23"
|
|
}
|
|
],
|
|
"stdout": [
|
|
{
|
|
"text": "\n========================================\n"
|
|
},
|
|
{
|
|
"text": "ZCLAW 数据流验证测试完成\n"
|
|
},
|
|
{
|
|
"text": "========================================\n"
|
|
},
|
|
{
|
|
"text": "测试时间: 2026-03-20T09:36:33.246Z\n"
|
|
},
|
|
{
|
|
"text": "========================================\n\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "Sidebar not found\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-03-20T09:35:34.342Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "screenshot",
|
|
"contentType": "image/png",
|
|
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-设置数据流验证-SET-DF-02-模型配置数据流-chromium\\test-failed-1.png"
|
|
},
|
|
{
|
|
"name": "video",
|
|
"contentType": "video/webm",
|
|
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-设置数据流验证-SET-DF-02-模型配置数据流-chromium\\video.webm"
|
|
},
|
|
{
|
|
"name": "error-context",
|
|
"contentType": "text/markdown",
|
|
"path": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\test-results\\artifacts\\data-flow-设置数据流验证-SET-DF-02-模型配置数据流-chromium\\error-context.md"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "G:\\ZClaw_openfang\\desktop\\tests\\e2e\\utils\\user-actions.ts",
|
|
"column": 31,
|
|
"line": 717
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "bdcac940a81c3235ce13-6df5d90e5b85ad4debff",
|
|
"file": "data-flow.spec.ts",
|
|
"line": 575,
|
|
"column": 3
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"errors": [],
|
|
"stats": {
|
|
"startTime": "2026-03-20T09:35:32.580Z",
|
|
"duration": 190515.528,
|
|
"expected": 16,
|
|
"skipped": 1,
|
|
"unexpected": 2,
|
|
"flaky": 0
|
|
}
|
|
} |