Skip to content

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

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

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

Triggered via pull request September 1, 2026 07:23
Status Failure
Total duration 18m 12s
Artifacts 1

e2e.yml

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

Annotations

10 errors, 2 warnings, and 1 notice
../../src/tests/acp-chat-agentic-layout-interop.test.ts:140:7 › ACP Chat Agentic 布局互操作 › 打开文件、只读工具、重载和布局往返后仍保持可用: tools/playwright/src/tests/utils/acp-bdd-fixture.ts#L272
4) ../../src/tests/acp-chat-agentic-layout-interop.test.ts:140:7 › ACP Chat Agentic 布局互操作 › 打开文件、只读工具、重载和布局往返后仍保持可用 TimeoutError: page.waitForFunction: Timeout 30000ms exceeded. at ../../src/tests/utils/acp-bdd-fixture.ts:272 270 | export async function ensureAgenticLayout(page: Page): Promise<void> { 271 | await showAgenticWorkbench(page); > 272 | await page.waitForFunction( | ^ 273 | () => { 274 | const aiChat = document.querySelector('.AI-Chat-slot')?.getBoundingClientRect(); 275 | const workbench = document.querySelector('#workbench-editor')?.getBoundingClientRect(); at ensureAgenticLayout (/home/runner/work/core/core/tools/playwright/src/tests/utils/acp-bdd-fixture.ts:272:14) at loadAcpBddFixtureWorkbench (/home/runner/work/core/core/tools/playwright/src/tests/utils/acp-bdd-fixture.ts:460:7) at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-layout-interop.test.ts:124:15
../../src/tests/acp-chat-agentic-error-taxonomy.test.ts:369:7 › ACP Chat Agentic Error Taxonomy and Recovery › Error Guidance: OpenCode service failure is actionable and keeps bounded diagnostics: tools/playwright/src/tests/utils/acp-bdd-fixture.ts#L272
3) ../../src/tests/acp-chat-agentic-error-taxonomy.test.ts:369:7 › ACP Chat Agentic Error Taxonomy and Recovery › Error Guidance: OpenCode service failure is actionable and keeps bounded diagnostics TimeoutError: page.waitForFunction: Timeout 30000ms exceeded. at ../../src/tests/utils/acp-bdd-fixture.ts:272 270 | export async function ensureAgenticLayout(page: Page): Promise<void> { 271 | await showAgenticWorkbench(page); > 272 | await page.waitForFunction( | ^ 273 | () => { 274 | const aiChat = document.querySelector('.AI-Chat-slot')?.getBoundingClientRect(); 275 | const workbench = document.querySelector('#workbench-editor')?.getBoundingClientRect(); at ensureAgenticLayout (/home/runner/work/core/core/tools/playwright/src/tests/utils/acp-bdd-fixture.ts:272:14) at loadAcpBddFixtureWorkbench (/home/runner/work/core/core/tools/playwright/src/tests/utils/acp-bdd-fixture.ts:460:7) at withFixture (/home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-error-taxonomy.test.ts:60:19) at /home/runner/work/core/core/tools/playwright/src/tests/acp-chat-agentic-error-taxonomy.test.ts:370:5
../../src/tests/editor.test.ts:80:7 › OpenSumi Editor › editor dirty status should be update immediately after typing and saving: tools/playwright/src/tests/editor.test.ts#L88
2) ../../src/tests/editor.test.ts:80:7 › OpenSumi Editor › editor dirty status should be update immediately after typing and saving Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeTruthy() Received: false 86 | ); 87 | let isDirty = await editor.isDirty(); > 88 | expect(isDirty).toBeTruthy(); | ^ 89 | await editor.save(); 90 | await app.page.waitForTimeout(2000); 91 | isDirty = await editor.isDirty(); at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:88:21
../../src/tests/editor.test.ts:80:7 › OpenSumi Editor › editor dirty status should be update immediately after typing and saving: tools/playwright/src/tests/editor.test.ts#L88
2) ../../src/tests/editor.test.ts:80:7 › OpenSumi Editor › editor dirty status should be update immediately after typing and saving Error: expect(received).toBeTruthy() Received: false 86 | ); 87 | let isDirty = await editor.isDirty(); > 88 | expect(isDirty).toBeTruthy(); | ^ 89 | await editor.save(); 90 | await app.page.waitForTimeout(2000); 91 | isDirty = await editor.isDirty(); at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:88:21
../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview: tools/playwright/src/tests/editor.test.ts#L69
1) ../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview Retry #5 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeTruthy() Received: false 67 | editor = await app.openEditor(OpenSumiTextEditor, explorer, 'editor.js'); 68 | const isPreview = await editor.isPreview(); > 69 | expect(isPreview).toBeTruthy(); | ^ 70 | await editor.close(); 71 | }); 72 | at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:69:23
../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview: tools/playwright/src/tests/editor.test.ts#L69
1) ../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview Retry #4 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeTruthy() Received: false 67 | editor = await app.openEditor(OpenSumiTextEditor, explorer, 'editor.js'); 68 | const isPreview = await editor.isPreview(); > 69 | expect(isPreview).toBeTruthy(); | ^ 70 | await editor.close(); 71 | }); 72 | at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:69:23
../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview: tools/playwright/src/tests/editor.test.ts#L69
1) ../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeTruthy() Received: false 67 | editor = await app.openEditor(OpenSumiTextEditor, explorer, 'editor.js'); 68 | const isPreview = await editor.isPreview(); > 69 | expect(isPreview).toBeTruthy(); | ^ 70 | await editor.close(); 71 | }); 72 | at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:69:23
../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview: tools/playwright/src/tests/editor.test.ts#L69
1) ../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeTruthy() Received: false 67 | editor = await app.openEditor(OpenSumiTextEditor, explorer, 'editor.js'); 68 | const isPreview = await editor.isPreview(); > 69 | expect(isPreview).toBeTruthy(); | ^ 70 | await editor.close(); 71 | }); 72 | at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:69:23
../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview: tools/playwright/src/tests/editor.test.ts#L69
1) ../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBeTruthy() Received: false 67 | editor = await app.openEditor(OpenSumiTextEditor, explorer, 'editor.js'); 68 | const isPreview = await editor.isPreview(); > 69 | expect(isPreview).toBeTruthy(); | ^ 70 | await editor.close(); 71 | }); 72 | at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:69:23
../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview: tools/playwright/src/tests/editor.test.ts#L69
1) ../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview Error: expect(received).toBeTruthy() Received: false 67 | editor = await app.openEditor(OpenSumiTextEditor, explorer, 'editor.js'); 68 | const isPreview = await editor.isPreview(); > 69 | expect(isPreview).toBeTruthy(); | ^ 70 | await editor.close(); 71 | }); 72 | at /home/runner/work/core/core/tools/playwright/src/tests/editor.test.ts:69:23
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/debug.test.ts#L0
src/tests/debug.test.ts took 23.5s
🎭 Playwright Run Summary
2 failed ../../src/tests/editor.test.ts:66:7 › OpenSumi Editor › open editor.js on the editor with preview ../../src/tests/editor.test.ts:80:7 › OpenSumi Editor › editor dirty status should be update immediately after typing and saving 2 flaky ../../src/tests/acp-chat-agentic-error-taxonomy.test.ts:369:7 › ACP Chat Agentic Error Taxonomy and Recovery › Error Guidance: OpenCode service failure is actionable and keeps bounded diagnostics ../../src/tests/acp-chat-agentic-layout-interop.test.ts:140:7 › ACP Chat Agentic 布局互操作 › 打开文件、只读工具、重载和布局往返后仍保持可用 59 did not run 51 passed (11.4m)

Artifacts

Produced during runtime
Name Size Digest
playwright-report
1.47 MB
sha256:3210ec28d46d66aee5030145dea17af5d25ebfd0c6f33a361955aa1ab9644420