Skip to content

fix(viewer): preserve live HTML previews #19268

fix(viewer): preserve live HTML previews

fix(viewer): preserve live HTML previews #19268

Triggered via pull request August 20, 2026 07:19
Status Failure
Total duration 8m 12s
Artifacts 10

ci.yml

on: pull_request
Resolve runner profiles
10s
Resolve runner profiles
Detect validation scopes
25s
Detect validation scopes
Static gate
15s
Static gate
Matrix: daemon_unit_tests
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Matrix: web_workspace_tests
Preflight
1m 51s
Preflight
Workspace unit tests
46s
Workspace unit tests
Windows tools-pack payload tests
0s
Windows tools-pack payload tests
E2E Vitest
3m 7s
E2E Vitest
Validate workspace
2s
Validate workspace
Runtime summary
4s
Runtime summary
Fit to window
Zoom out
Zoom in

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)
🎭 Playwright Run Summary
2 failed [chromium] › ui/app-design-files.test.ts:1013:1 › [P0] @critical white-screen monitoring recovers layout stalls and confirms persistent blanks [chromium] › ui/app-manual-edit.test.ts:814:1 › [P0] @critical edited HTML file restores selected tab and preview after reload 12 passed (6.0m)

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