fix(viewer): preserve live HTML previews #19268
ci.yml
on: pull_request
Resolve runner profiles
10s
Matrix: daemon_unit_tests
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Matrix: web_workspace_tests
Preflight
1m 51s
Workspace unit tests
46s
Windows tools-pack payload tests
0s
E2E Vitest
3m 7s
Runtime summary
4s
Annotations
6 errors, 3 warnings, and 9 notices
|
UI P0 (project-workspace-editor)
Process completed with exit code 1.
|
|
[chromium] › ui/app-manual-edit.test.ts:814:1 › [P0] @critical edited HTML file restores selected tab and preview after reload:
e2e/ui/app-manual-edit.test.ts#L843
2) [chromium] › ui/app-manual-edit.test.ts:814:1 › [P0] @critical edited HTML file restores selected tab and preview after reload
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toHaveCount(expected) failed
Locator: locator('[data-testid="file-workspace"] [data-testid="manual-edit-mode-toggle"]:visible')
Expected: 1
Received: 2
Timeout: 10000ms
Call log:
- Expect "toHaveCount" with timeout 10000ms
- waiting for locator('[data-testid="file-workspace"] [data-testid="manual-edit-mode-toggle"]:visible')
24 × locator resolved to 2 elements
- unexpected value "2"
841 | '[data-testid="file-workspace"] [data-testid="manual-edit-mode-toggle"]:visible',
842 | );
> 843 | await expect(activeEditToggle).toHaveCount(1);
| ^
844 | await activeEditToggle.click();
845 | await selectPreviewElementThroughBridge(page, frame, '[data-od-id="hero-title"]', 'Parameters');
846 | const parameters = inspectorSection(page, 'Parameters');
at /home/runner/_work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:843:34
|
|
[chromium] › ui/app-manual-edit.test.ts:814:1 › [P0] @critical edited HTML file restores selected tab and preview after reload:
e2e/ui/app-manual-edit.test.ts#L843
2) [chromium] › ui/app-manual-edit.test.ts:814:1 › [P0] @critical edited HTML file restores selected tab and preview after reload
Error: expect(locator).toHaveCount(expected) failed
Locator: locator('[data-testid="file-workspace"] [data-testid="manual-edit-mode-toggle"]:visible')
Expected: 1
Received: 2
Timeout: 10000ms
Call log:
- Expect "toHaveCount" with timeout 10000ms
- waiting for locator('[data-testid="file-workspace"] [data-testid="manual-edit-mode-toggle"]:visible')
24 × locator resolved to 2 elements
- unexpected value "2"
841 | '[data-testid="file-workspace"] [data-testid="manual-edit-mode-toggle"]:visible',
842 | );
> 843 | await expect(activeEditToggle).toHaveCount(1);
| ^
844 | await activeEditToggle.click();
845 | await selectPreviewElementThroughBridge(page, frame, '[data-od-id="hero-title"]', 'Parameters');
846 | const parameters = inspectorSection(page, 'Parameters');
at /home/runner/_work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:843:34
|
|
[chromium] › ui/app-design-files.test.ts:1013:1 › [P0] @critical white-screen monitoring recovers layout stalls and confirms persistent blanks:
e2e/ui/app-design-files.test.ts#L1081
1) [chromium] › ui/app-design-files.test.ts:1013:1 › [P0] @critical white-screen monitoring recovers layout stalls and confirms persistent blanks
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: 1
Received: 0
Call Log:
- Timeout 7500ms exceeded while waiting on the predicate
1079 | () => capturedWhiteScreenEvents(safetyEvents).length,
1080 | { timeout: PREVIEW_WHITE_SCREEN_CONFIRMATION_MS + T.short },
> 1081 | ).toBe(1);
| ^
1082 | const [whiteScreen] = capturedWhiteScreenEvents(safetyEvents);
1083 | expect(whiteScreen?.properties).toMatchObject({
1084 | blank_observation_count: 2,
at /home/runner/_work/open-design/open-design/e2e/ui/app-design-files.test.ts:1081:5
|
|
[chromium] › ui/app-design-files.test.ts:1013:1 › [P0] @critical white-screen monitoring recovers layout stalls and confirms persistent blanks:
e2e/ui/app-design-files.test.ts#L1081
1) [chromium] › ui/app-design-files.test.ts:1013:1 › [P0] @critical white-screen monitoring recovers layout stalls and confirms persistent blanks
Error: expect(received).toBe(expected) // Object.is equality
Expected: 1
Received: 0
Call Log:
- Timeout 7500ms exceeded while waiting on the predicate
1079 | () => capturedWhiteScreenEvents(safetyEvents).length,
1080 | { timeout: PREVIEW_WHITE_SCREEN_CONFIRMATION_MS + T.short },
> 1081 | ).toBe(1);
| ^
1082 | const [whiteScreen] = capturedWhiteScreenEvents(safetyEvents);
1083 | expect(whiteScreen?.properties).toMatchObject({
1084 | blank_observation_count: 2,
at /home/runner/_work/open-design/open-design/e2e/ui/app-design-files.test.ts:1081:5
|
|
Validate workspace
Process completed with exit code 1.
|
|
Detect validation scopes
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E Vitest
merge_group changed-file resolution failed; falling back to the full plan: Error: merge_group compare result reached GitHub's 300-file ceiling
|
|
E2E Vitest
merge_group changed-file resolution failed; falling back to the full plan: Error: Command failed: /opt/hostedtoolcache/node/24.13.0/x64/bin/node /tmp/scopes-test-m5KNL6/gh-stub.mjs api repos/nexu-io/open-design/compare/1111111111111111111111111111111111111111...2222222222222222222222222222222222222222
|
|
🎭 Playwright Run Summary
19 passed (1.6m)
|
|
🎭 Playwright Run Summary
18 passed (2.3m)
|
|
🎭 Playwright Run Summary
4 passed (2.4m)
|
|
🎭 Playwright Run Summary
25 passed (2.7m)
|
|
🎭 Playwright Run Summary
29 passed (2.8m)
|
|
🎭 Playwright Run Summary
4 passed (56.5s)
|
|
🎭 Playwright Run Summary
23 passed (2.4m)
|
|
🎭 Playwright Run Summary
79 passed (4.8m)
|
|
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
handoff-report-visual-pr
|
437 Bytes |
sha256:0e0bed9281b985a6410af9edb2d2de30c986da6c664e408ad7dd65ed12465ac1
|
|
|
ui-p0-ci-32343449092-entry-settings
|
403 KB |
sha256:2e67517150dc2766742e618ca7371ef6e66b74ad12421b96d1eae5d42bdf8442
|
|
|
ui-p0-ci-32343449092-project-collab
|
310 KB |
sha256:6ab63f83ba5568d194795e0209c00c6d1753811f27fd9a2b380de201e78026a8
|
|
|
ui-p0-ci-32343449092-project-runtime
|
287 KB |
sha256:781f2e38f1d84e7c48f26b29d44c0ee09099ed8ffd3e4bab0b386e5ccf986566
|
|
|
ui-p0-ci-32343449092-project-runtime-domain
|
343 KB |
sha256:325132a934aa35fcc0d027b0c3deda438562c83da92443a09d786942d87ce41a
|
|
|
ui-p0-ci-32343449092-project-workspace
|
353 KB |
sha256:dcf8bcec80e109cb5311b125002e896d8e9eea1e39ff2d712a4f62d4864bf48e
|
|
|
ui-p0-ci-32343449092-project-workspace-editor
|
22.2 MB |
sha256:e206cfd67281e35d1ac2e93b14b806a89d3e1566afafd3bea1cb96b295de8992
|
|
|
ui-p0-ci-32343449092-workspace-restoration
|
381 KB |
sha256:6e47cc34358a10f3eea95277e0c0754354be85198f8742e6fde9ccc10ec4a70f
|
|
|
visual-pr-capture-7156-32343449092-entry-navigation
|
6.01 MB |
sha256:79122b0a66132b648e52cbf34024ab67c0fe10d5dcd671430f3b719a2e3d96ec
|
|
|
visual-pr-capture-7156-32343449092-settings-workspace
|
3.16 MB |
sha256:c22ceb75491bbdcbae150248c952be0fc03edd3582c1221ab2f43adb44c4afc2
|
|