Skip to content

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

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

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

Triggered via pull request March 30, 2026 08:44
Status Success
Total duration 9m 46s
Artifacts 15

build.yml

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

Annotations

4 errors, 9 warnings, and 7 notices
[firefox] › src/end-to-end/shadcn/shadcn.test.ts:28:7 › Check ShadCN UI › Check link toolbar: tests/src/end-to-end/shadcn/shadcn.test.ts#L41
1) [firefox] › src/end-to-end/shadcn/shadcn.test.ts:28:7 › Check ShadCN UI › Check link toolbar ── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(Buffer).toMatchSnapshot(expected) 209 pixels (ratio 0.01 of all image pixels) are different. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/shadcn/shadcn.test.ts-snapshots/shadcn-link-toolbar-firefox-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/shadcn-shadcn-Check-ShadCN-UI-Check-link-toolbar-firefox-retry1/shadcn-link-toolbar-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/shadcn-shadcn-Check-ShadCN-UI-Check-link-toolbar-firefox-retry1/shadcn-link-toolbar-diff.png 39 | 40 | await page.waitForTimeout(700); > 41 | expect(await page.screenshot()).toMatchSnapshot("shadcn-link-toolbar.png"); | ^ 42 | }); 43 | test("Check slash menu", async ({ page }) => { 44 | await focusOnEditor(page); at /__w/BlockNote/BlockNote/tests/src/end-to-end/shadcn/shadcn.test.ts:41:37
[firefox] › src/end-to-end/shadcn/shadcn.test.ts:28:7 › Check ShadCN UI › Check link toolbar: tests/src/end-to-end/shadcn/shadcn.test.ts#L41
1) [firefox] › src/end-to-end/shadcn/shadcn.test.ts:28:7 › Check ShadCN UI › Check link toolbar ── Error: expect(Buffer).toMatchSnapshot(expected) 209 pixels (ratio 0.01 of all image pixels) are different. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/shadcn/shadcn.test.ts-snapshots/shadcn-link-toolbar-firefox-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/shadcn-shadcn-Check-ShadCN-UI-Check-link-toolbar-firefox/shadcn-link-toolbar-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/shadcn-shadcn-Check-ShadCN-UI-Check-link-toolbar-firefox/shadcn-link-toolbar-diff.png 39 | 40 | await page.waitForTimeout(700); > 41 | expect(await page.screenshot()).toMatchSnapshot("shadcn-link-toolbar.png"); | ^ 42 | }); 43 | test("Check slash menu", async ({ page }) => { 44 | await focusOnEditor(page); at /__w/BlockNote/BlockNote/tests/src/end-to-end/shadcn/shadcn.test.ts:41:37
[chromium] › src/end-to-end/ariakit/ariakit.test.ts:28:7 › Check Ariakit UI › Check link toolbar: tests/src/end-to-end/ariakit/ariakit.test.ts#L41
1) [chromium] › src/end-to-end/ariakit/ariakit.test.ts:28:7 › Check Ariakit UI › Check link toolbar Error: expect(Buffer).toMatchSnapshot(expected) 294 pixels (ratio 0.01 of all image pixels) are different. Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/ariakit/ariakit.test.ts-snapshots/ariakit-link-toolbar-chromium-linux.png Received: /__w/BlockNote/BlockNote/tests/test-results/ariakit-ariakit-Check-Ariakit-UI-Check-link-toolbar-chromium/ariakit-link-toolbar-actual.png Diff: /__w/BlockNote/BlockNote/tests/test-results/ariakit-ariakit-Check-Ariakit-UI-Check-link-toolbar-chromium/ariakit-link-toolbar-diff.png 39 | 40 | await page.waitForTimeout(500); > 41 | expect(await page.screenshot()).toMatchSnapshot("ariakit-link-toolbar.png"); | ^ 42 | }); 43 | test("Check slash menu", async ({ page }) => { 44 | await focusOnEditor(page); at /__w/BlockNote/BlockNote/tests/src/end-to-end/ariakit/ariakit.test.ts:41:37
[webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:275:7 › Check Keyboard Handlers' Behaviour › Check Delete end of block with multiple children: tests/src/utils/editor.ts#L47
1) [webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:275:7 › Check Keyboard Handlers' Behaviour › Check Delete end of block with multiple children Error: expect(string).toMatchSnapshot(expected) @@ -18,21 +18,21 @@ "textAlignment": "left" }, "content": [ { "type": "text", - "text": "ParagraphParagraph" + "text": "Paragraph" } ] }, { "type": "blockGroup", "content": [ { "type": "blockContainer", "attrs": { - "id": "2" + "id": "1" }, "content": [ { "type": "paragraph", "attrs": { @@ -41,11 +41,11 @@ "textAlignment": "left" }, "content": [ { "type": "text", - "text": "Paragraph" + "text": "ParagraphParagraph" } ] } ] } Expected: /__w/BlockNote/BlockNote/tests/src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts-snapshots/deleteMultipleChildren-json-webkit-linux.json Received: /__w/BlockNote/BlockNote/tests/test-results/keyboardhandlers-keyboardh-14f97-lock-with-multiple-children-webkit/deleteMultipleChildren-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) at /__w/BlockNote/BlockNote/tests/src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:288:5
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 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 - 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 (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/
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/
Build
{ "workflowData": { "owner": "TypeCellOS", "repo": "BlockNote", "sha": "6d2f367674f7011a99c8dcaf1ef134122592047f", "ref": "2600" }, "key": "AAit8nITBm", "runId": 23735944681, "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
40 passed (35.8s)
🎭 Playwright Run Summary
40 passed (1.0m)
🎭 Playwright Run Summary
1 flaky [firefox] › src/end-to-end/shadcn/shadcn.test.ts:28:7 › Check ShadCN UI › Check link toolbar ─── 39 passed (53.6s)
🎭 Playwright Run Summary
12 skipped 72 passed (1.4m)
🎭 Playwright Run Summary
1 flaky [chromium] › src/end-to-end/ariakit/ariakit.test.ts:28:7 › Check Ariakit UI › Check link toolbar 2 skipped 81 passed (1.2m)
🎭 Playwright Run Summary
1 flaky [webkit] › src/end-to-end/keyboardhandlers/keyboardhandlers.test.ts:275:7 › Check Keyboard Handlers' Behaviour › Check Delete end of block with multiple children 10 skipped 73 passed (2.5m)

Artifacts

Produced during runtime
Name Size Digest
blob-report-chromium-1 Expired
310 KB
sha256:a3b2b144e543bf2fb0eb57e2e39c0d25fb9d18323c2b72029af9e85bffdab772
blob-report-chromium-2 Expired
48.7 KB
sha256:af9e86a335c98d2f2932be50d140176870b44c0dc9b8205e158765088510ad41
blob-report-firefox-1 Expired
103 KB
sha256:1e60967adf64c8fe284c7b1c02a7399824916904b3ae4ecc2d458c6c4bbb1101
blob-report-firefox-2 Expired
218 KB
sha256:41514ff393059188aeba1534d465d721bff94d5fbcc319c4caa3999adee6609e
blob-report-webkit-1 Expired
5.21 MB
sha256:d4b1ab172907459aad24e72349cbdf04ab63cd8a79ba1ff70f448a87db890070
blob-report-webkit-2 Expired
49.8 KB
sha256:fbda40e1613ec4ea7dae9956520e65d85997732f00372b390ef6021cf84b86ae
playwright-build Expired
26.1 MB
sha256:dcb03e5405475bbb718103ff4c39c9bfc661071bec070a1e64d965e6f8ed8dc6
playwright-report-chromium-1 Expired
827 KB
sha256:64625585fd0f640557a8f30fe37435f0663e0310adc4f9eebec24db201f14faf
playwright-report-chromium-2 Expired
207 KB
sha256:9cad1114ef5d59edde2c0fe973337e6ab57bc1c4b8c1721c886b81044b6e2a77
playwright-report-firefox-1 Expired
240 KB
sha256:f2370008e9c128575c424890f59011603bf471fd29a8abed983f3583a0a8cce1
playwright-report-firefox-2 Expired
751 KB
sha256:920677ae71c0d5aa28f57e924163ca1f6ae57a2f8f1ebcf9700f60f3c5903948
playwright-report-merged Expired
6.11 MB
sha256:42fa4a76f67d3cd3acd5d74e06f35d4f810fc5e4211f915699027f5d794b9f2e
playwright-report-webkit-1 Expired
5.71 MB
sha256:fccdc30e84bd869a311d947a6e10dfb84f4549cbcab880882bc5a0b40d015b4e
playwright-report-webkit-2 Expired
208 KB
sha256:0996c71d6df74994b43a8a63d78e60ba44c87ba57be1db51b8fda938dc379026
relative-ci-artifacts-editor
46.8 KB
sha256:8490e6356fb6829816a3401ec7629350074f42748c37423448709be4ed6f31af