Skip to content

WIP: feat(ai-native): harden ACP task startup and error recovery #7350

WIP: feat(ai-native): harden ACP task startup and error recovery

WIP: feat(ai-native): harden ACP task startup and error recovery #7350

Triggered via pull request August 18, 2026 09:29
Status Failure
Total duration 28m 5s
Artifacts 1

e2e.yml

on: pull_request
ubuntu-latest, Node.js 20.x
28m 0s
ubuntu-latest, Node.js 20.x
Fit to window
Zoom out
Zoom in

Annotations

9 errors, 6 warnings, and 1 notice
ubuntu-latest, Node.js 20.x
Process completed with exit code 1.
../../src/tests/terminal-file-tree-refresh.test.ts:43:7 › 终端文件树自动刷新 › 终端创建和删除文件后 Explorer 无需手动刷新即可同步: tools/playwright/src/tests/utils/acp-bdd-fixture.ts#L301
3) ../../src/tests/terminal-file-tree-refresh.test.ts:43:7 › 终端文件树自动刷新 › 终端创建和删除文件后 Explorer 无需手动刷新即可同步 TimeoutError: locator.waitFor: Timeout 30000ms exceeded. Call log: - waiting for locator('#agentic-chat-panel-header-maximize [role="button"]').first() to be visible - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div> - locator resolved to hidden <div tabindex="0" role="button" aria-pressed="true" a…>…</div>
../../src/tests/explorer-view.test.ts:335:7 › OpenSumi Explorer Panel › when a new file is created through explorer actions: tools/playwright/src/tree-node.ts#L214
2) ../../src/tests/explorer-view.test.ts:335:7 › OpenSumi Explorer Panel › when a new file is created through explorer actions, the rest of the expanded folders are still expanded Error: Timed out waiting for tree node collapsed state: expanded at ../../src/tree-node.ts:214 212 | } 213 | > 214 | throw new Error(`Timed out waiting for tree node collapsed state: ${collapsed ? 'collapsed' : 'expanded'}`); | ^ 215 | } 216 | 217 | private async clickToggle(parent: ElementHandle | null, dataId: string | null, fsPath?: string | null) { at OpenSumiExplorerFileStatNode.waitForCollapsedState (/home/runner/work/core/core/tools/playwright/src/tree-node.ts:214:11) at OpenSumiExplorerFileStatNode.expand (/home/runner/work/core/core/tools/playwright/src/tree-node.ts:281:5) at /home/runner/work/core/core/tools/playwright/src/tests/explorer-view.test.ts:370:5
../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口: tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts#L110
1) ../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口 Retry #5 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toContain(expected) // indexOf Expected substring: "/bdd_echo" Received string: "/ExplainExplain" 108 | const visibleCommands = await commandList.getByRole('option').allTextContents(); 109 | for (const command of activeCommands.result.commands) { > 110 | expect(visibleCommands.join('\n')).toContain(`/${command.name}`); | ^ 111 | } 112 | await page.keyboard.press('Escape'); 113 | at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts:110:42
../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口: tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts#L110
1) ../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口 Retry #4 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toContain(expected) // indexOf Expected substring: "/bdd_echo" Received string: "/ExplainExplain" 108 | const visibleCommands = await commandList.getByRole('option').allTextContents(); 109 | for (const command of activeCommands.result.commands) { > 110 | expect(visibleCommands.join('\n')).toContain(`/${command.name}`); | ^ 111 | } 112 | await page.keyboard.press('Escape'); 113 | at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts:110:42
../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口: tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts#L110
1) ../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口 Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toContain(expected) // indexOf Expected substring: "/bdd_echo" Received string: "/ExplainExplain" 108 | const visibleCommands = await commandList.getByRole('option').allTextContents(); 109 | for (const command of activeCommands.result.commands) { > 110 | expect(visibleCommands.join('\n')).toContain(`/${command.name}`); | ^ 111 | } 112 | await page.keyboard.press('Escape'); 113 | at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts:110:42
../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口: tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts#L110
1) ../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口 Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toContain(expected) // indexOf Expected substring: "/bdd_echo" Received string: "/ExplainExplain" 108 | const visibleCommands = await commandList.getByRole('option').allTextContents(); 109 | for (const command of activeCommands.result.commands) { > 110 | expect(visibleCommands.join('\n')).toContain(`/${command.name}`); | ^ 111 | } 112 | await page.keyboard.press('Escape'); 113 | at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts:110:42
../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口: tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts#L110
1) ../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口 Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toContain(expected) // indexOf Expected substring: "/bdd_echo" Received string: "/ExplainExplain" 108 | const visibleCommands = await commandList.getByRole('option').allTextContents(); 109 | for (const command of activeCommands.result.commands) { > 110 | expect(visibleCommands.join('\n')).toContain(`/${command.name}`); | ^ 111 | } 112 | await page.keyboard.press('Escape'); 113 | at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts:110:42
../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口: tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts#L110
1) ../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口 Error: expect(received).toContain(expected) // indexOf Expected substring: "/bdd_echo" Received string: "/ExplainExplain" 108 | const visibleCommands = await commandList.getByRole('option').allTextContents(); 109 | for (const command of activeCommands.result.commands) { > 110 | expect(visibleCommands.join('\n')).toContain(`/${command.name}`); | ^ 111 | } 112 | await page.keyboard.press('Escape'); 113 | at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-draft-footer.test.ts:110:42
ubuntu-latest, Node.js 20.x
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Slow Test: src/tests/search-view.test.ts#L0
src/tests/search-view.test.ts took 22.3s
Slow Test: src/tests/debug.test.ts#L0
src/tests/debug.test.ts took 24.2s
Slow Test: src/tests/acp-chat-agentic-task-workbench.test.ts#L0
src/tests/acp-chat-agentic-task-workbench.test.ts took 31.3s
Slow Test: src/tests/editor.test.ts#L0
src/tests/editor.test.ts took 1.5m
Slow Test: src/tests/acp-chat-agentic-error-taxonomy.test.ts#L0
src/tests/acp-chat-agentic-error-taxonomy.test.ts took 1.8m
🎭 Playwright Run Summary
1 failed ../../src/tests/acp-chat-agentic-draft-footer.test.ts:72:7 › ACP Chat Agentic 草稿页脚 › 新建 Task 草稿不会提前建 Session,且保留配置与命令入口 2 flaky ../../src/tests/explorer-view.test.ts:335:7 › OpenSumi Explorer Panel › when a new file is created through explorer actions, the rest of the expanded folders are still expanded ../../src/tests/terminal-file-tree-refresh.test.ts:43:7 › 终端文件树自动刷新 › 终端创建和删除文件后 Explorer 无需手动刷新即可同步 1 skipped 106 passed (21.4m)

Artifacts

Produced during runtime
Name Size Digest
playwright-report
1.56 MB
sha256:6497e134293b4ac6382dad5b629d0b4bc695b37bda3a18b3bb8f2fffa14697fb