Skip to content

fix(core): optimize plugin traversals for large documents BLO-1111 #7133

fix(core): optimize plugin traversals for large documents BLO-1111

fix(core): optimize plugin traversals for large documents BLO-1111 #7133

Triggered via pull request March 30, 2026 07:36
Status Success
Total duration 7m 43s
Artifacts 15

build.yml

on: pull_request
Matrix: playwright
Merge Playwright Reports
43s
Merge Playwright Reports
Fit to window
Zoom out
Zoom in

Annotations

3 errors, 9 warnings, and 7 notices
[chromium] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:77:7 › Check Keyboard Handlers' Behaviour › Check Enter preserves nested blocks for empty block: tests/src/utils/editor.ts#L47
3) [chromium] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:77:7 › Check Keyboard Handlers' Behaviour › Check Enter preserves nested blocks for empty block Error: expect(string).toMatchSnapshot(expected) @@ -23,91 +23,22 @@ ] }, { "type": "blockContainer", "attrs": { - "id": "4" + "id": "1" }, "content": [ { "type": "paragraph", "attrs": { "backgroundColor": "default", "textColor": "default", "textAlignment": "left" } - }, - { - "type": "blockGroup", - "content": [ - { - "type": "blockContainer", - "attrs": { - "id": "1" - }, - "content": [ - { - "type": "heading", - "attrs": { - "backgroundColor": "default", - "textColor": "default", - "textAlignment": "left", - "level": 2, - "isToggleable": false - }, - "content": [ - { - "type": "text", - "text": "Heading" - } - ] - } - ] - }, - { - "type": "blockContainer", - "attrs": { - "id": "2" - }, - "content": [ - { - "type": "heading", - "attrs": { - "backgroundColor": "default", - "textColor": "default", - "textAlignment": "left", - "level": 3, - "isToggleable": false - }, - "content": [ - { - "type": "text", - "text": "Heading" - } - ] - } - ] - } - ] } ] - }, - { - "type": "blockContainer", - "attrs": { - "id": "3" - }, - "content": [ - { - "type": "paragraph", - "attrs": { - "backgroundColor": "default", - "textColor": "default", - "textAlignment": "left" - } - } - ] } ] } ] } Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts-snapshots/enterPreservesNestedBlocksEmpty-json-chromium-linux.json Received: /__w/BlockNote/BlockNote/tests/test-results/keyboardhandlers-keyboardh-5461c-sted-blocks-for-empty-block-chromium/enterPreservesNestedBlocksEmpty-json-actual.json at ../utils/editor.ts:47 45 | // Remove id from docs 46 | const doc = JSON.stringify(await getDoc(page), null, 2); > 47 | expect(doc).toMatchSnapshot(`${name}.json`); | ^ 48 | } 49 | at compareDocToSnapshot (/__w/BlockNote/BlockNote/tests/src/utils/editor.ts:47:15) a
[chromium] › src/end-to-end/customblocks/customblocks.test.ts:24:7 › Check custom block functionality › Should be able to interactively update React custom blocks: tests/src/end-to-end/customblocks/customblocks.test.ts#L33
2) [chromium] › src/end-to-end/customblocks/customblocks.test.ts:24:7 › Check custom block functionality › Should be able to interactively update React custom blocks Error: expect(Buffer).toMatchSnapshot(expected) 9468 pixels (ratio 0.02 of all image pixels) are different. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/customblocks/customblocks.test.ts-snapshots/react-interactivity-chromium-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/customblocks-customblocks--ee421--update-React-custom-blocks-chromium/react-interactivity-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/customblocks-customblocks--ee421--update-React-custom-blocks-chromium/react-interactivity-diff.png 31 | 32 | await compareDocToSnapshot(page, "reactInteractivity"); > 33 | expect(await page.screenshot()).toMatchSnapshot("react-interactivity.png"); | ^ 34 | }); 35 | }); 36 | at /__w/BlockNote/BlockNote/tests/src/end-to-end/customblocks/customblocks.test.ts:33:37
[chromium] › src/end-to-end/customblocks/customblocks.test.ts:10:7 › Check custom block functionality › Should be able to interactively update vanilla custom blocks: tests/src/end-to-end/customblocks/customblocks.test.ts#L19
1) [chromium] › src/end-to-end/customblocks/customblocks.test.ts:10:7 › Check custom block functionality › Should be able to interactively update vanilla custom blocks Error: expect(Buffer).toMatchSnapshot(expected) 8041 pixels (ratio 0.01 of all image pixels) are different. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/customblocks/customblocks.test.ts-snapshots/vanilla-interactivity-chromium-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/customblocks-customblocks--8679c-pdate-vanilla-custom-blocks-chromium/vanilla-interactivity-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/customblocks-customblocks--8679c-pdate-vanilla-custom-blocks-chromium/vanilla-interactivity-diff.png 17 | 18 | await compareDocToSnapshot(page, "vanillaInteractivity"); > 19 | expect(await page.screenshot()).toMatchSnapshot( | ^ 20 | "vanilla-interactivity.png", 21 | ); 22 | }); at /__w/BlockNote/BlockNote/tests/src/end-to-end/customblocks/customblocks.test.ts:19:37
Playwright Build
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Playwright Tests - chromium (2/2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Playwright Tests - firefox (2/2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Playwright Tests - webkit (2/2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Playwright Tests - firefox (1/2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Playwright Tests - chromium (1/2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Build
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Playwright Tests - webkit (1/2)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Merge Playwright Reports
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/download-artifact@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
40 passed (34.2s)
🎭 Playwright Run Summary
40 passed (47.2s)
🎭 Playwright Run Summary
40 passed (1.0m)
🎭 Playwright Run Summary
12 skipped 72 passed (1.4m)
🎭 Playwright Run Summary
3 flaky [chromium] › src/end-to-end/customblocks/customblocks.test.ts:10:7 › Check custom block functionality › Should be able to interactively update vanilla custom blocks [chromium] › src/end-to-end/customblocks/customblocks.test.ts:24:7 › Check custom block functionality › Should be able to interactively update React custom blocks [chromium] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:77:7 › Check Keyboard Handlers' Behaviour › Check Enter preserves nested blocks for empty block 2 skipped 79 passed (1.5m)
Build
{ "workflowData": { "owner": "TypeCellOS", "repo": "BlockNote", "sha": "6d2f367674f7011a99c8dcaf1ef134122592047f", "ref": "2600" }, "key": "74HqCPCHmG", "runId": 23733329570, "webhookDebug": { "action": "requested", "head_branch": "fix/performance-improvements", "head_repository_full_name": "TypeCellOS/BlockNote", "full_name": "TypeCellOS/BlockNote", "isPullRequest": true, "prNumber": 2600, "prNumberType": "number", "isNewPullRequest": true, "isOldPullRequest": false, "prKey": "TypeCellOS/BlockNote:fix/performance-improvements", "oldPrDataHash": "Rr0UGefkf8", "lookupKey": "TypeCellOS/BlockNote:fix/performance-improvements", "data": { "owner": "TypeCellOS", "repo": "BlockNote", "sha": "6d2f367674f7011a99c8dcaf1ef134122592047f", "ref": "2600" } } }
🎭 Playwright Run Summary
10 skipped 74 passed (1.9m)

Artifacts

Produced during runtime
Name Size Digest
blob-report-chromium-1 Expired
5.7 MB
sha256:e7affd753e7c3612f2dad41fad57839dde30a0fc4ded11123e399996828c9da6
blob-report-chromium-2 Expired
48.6 KB
sha256:7c313b66e4c882fbf37fc6723bb837daadda5125ed3c1efa37c08a7f423f5261
blob-report-firefox-1 Expired
103 KB
sha256:c067dd5f2eafe9e0e004494a5fd01a06e4122a797b05d46e689a0b6ec8201ec3
blob-report-firefox-2 Expired
49.5 KB
sha256:d6de12986a8036add69af8a3544e2aca4ec98b0d081920d8f9fcb2075f87db97
blob-report-webkit-1 Expired
109 KB
sha256:aceab9a6145bf70a5df851112b1f71f6c7c936b047abcf3be0a05b20e1eea068
blob-report-webkit-2 Expired
49.5 KB
sha256:5485d6bccb3dd567e6421f5f050b0047fe33e78f023a2f31acfa4a162a2c77a0
playwright-build Expired
26.2 MB
sha256:b5e4d739ba3a55bb78af60cedde5bb7e334e07eb57df724631beb6cdd9681148
playwright-report-chromium-1 Expired
6.18 MB
sha256:4eac7c833f88a2f5918a3629ce7ae3f96c9d038a0a6b84eb1a3d3b27d9af3581
playwright-report-chromium-2 Expired
207 KB
sha256:08bdc1f20dadffe3fed5a8f5ef197fd396d34a35dca7f97e012c28990b7c15f5
playwright-report-firefox-1 Expired
240 KB
sha256:cda299a4d7a32edee6afeeb6a72a5154594088f7858eb23882e2fb050e7f9d2d
playwright-report-firefox-2 Expired
207 KB
sha256:c2cf2bd76970cc95aee2f78332b6a1e307987835a0fa0925b0673e1659a1ade9
playwright-report-merged Expired
6.25 MB
sha256:d15020dd84a3c7a7f1b96a73802c6187dee4498a0145526e9fbe9e1ef2e9d456
playwright-report-webkit-1 Expired
244 KB
sha256:57fd42fe513d0e2bbad7a361f836576c085a3163467e7e0996a28ba69eb9a0b4
playwright-report-webkit-2 Expired
208 KB
sha256:f185d7bc7e950beed32464696447364f2def69674a589dae8c9af698cd63f7b1
relative-ci-artifacts-editor
46.8 KB
sha256:7f5de218310cbc8c4f6071c92e826d62ca8acf78ea824f738c379c65f7573c64