Skip to content

Version Packages - #466

Open
patchcrow wants to merge 1 commit into
mainfrom
changeset-release/main
Open

patchcrow wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@patchcrow

Copy link
Copy Markdown
Collaborator

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@inkandswitch/patchwork-bootloader@0.8.8

Patch Changes

  • 7d4520f: A package that fails to import in the module-loader worker now reports why. Vite's preload helper, which wraps every dynamic import(), announced the failure with window.dispatchEvent, and in a worker that threw a ReferenceError in place of the import's own error. The patchwork() vite plugin now includes preloadErrorInWorkers(), which has the helper dispatch on globalThis instead, and fails the build if a vite version stops writing that line. The worker also sends the error's name and message along with its stack, since Safari's and Firefox's stacks leave them out; before, Safari logged only handlePreloadError@….

@inkandswitch/patchwork@0.8.9

Patch Changes

  • 7d4520f: A package that fails to import in the module-loader worker now reports why. Vite's preload helper, which wraps every dynamic import(), announced the failure with window.dispatchEvent, and in a worker that threw a ReferenceError in place of the import's own error. The patchwork() vite plugin now includes preloadErrorInWorkers(), which has the helper dispatch on globalThis instead, and fails the build if a vite version stops writing that line. The worker also sends the error's name and message along with its stack, since Safari's and Firefox's stacks leave them out; before, Safari logged only handlePreloadError@….
  • Updated dependencies [7d4520f]
    • @inkandswitch/patchwork-bootloader@0.8.8

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Benchmarks: Patchwork with this PR against main

805da59 against main at 7d4520f, Patchwork as it ships (patchwork mode), in chromium, firefox and webkit, each on its own runner with main and the PR measured one after the other (run). Lower is better throughout. A row is in the table when every run of the PR came out on the same side of every run of main, with the medians more than 20% apart; every benchmark is below it.

This run fails: the PR fails a check main passes.

  • webkit: …the server confirmed every edit within 5s failed in run 2 of the PR's 3; main passed it in all 3 runs. Run 2: 10 of 10 edits unconfirmed; the first, edit 1: server never confirmed automerge:YzVUmV1siLVEgU1W3kt4C8E4EtC: it holds heads GfmRVHr4…,15ZPjMJZ…, the tab 15ZPjMJZ…
browser benchmark main PR change
chromium …server confirmed every edit (40 tabs) 2/3 ok ok fixed
chromium …longest main-thread stall in tab 0 during the edits 53 ms (40–53) 18 ms (16–22) −66% better
webkit …the server confirmed every edit within 5s ok 2/3 ok fails 1 of 3
every benchmark: the median of 3 runs of main and 3 runs of the PR, their range in brackets
browser benchmark main PR change
chromium boot → repo, first tab (1 tabs) 252 ms (245–262) 254 ms (247–255) +1%
chromium boot → server connected, first tab (1 tabs) 301 ms (300–307) 299 ms (289–300) −1%
chromium renderer memory, all tabs + workers (1 tabs) 360 MB (356–368) 369 MB (369–373) +3%
chromium renderer processes (1 tabs) 3 3
chromium boot → repo, first tab (3 tabs) 279 ms (273–301) 262 ms (260–281) −6%
chromium boot → repo, last tab (3 tabs) 193 ms (187–198) 193 ms (190–198) −0%
chromium boot → server connected, first tab (3 tabs) 344 ms (342–365) 341 ms (331–361) −1%
chromium renderer memory, all tabs + workers (3 tabs) 717 MB (706–725) 729 MB (701–736) +2%
chromium renderer processes (3 tabs) 5 5
chromium boot → repo, first tab (10 tabs) 264 ms (252–268) 271 ms (269–290) +3%
chromium boot → repo, last tab (10 tabs) 205 ms (203–207) 212 ms (196–222) +3%
chromium boot → server connected, first tab (10 tabs) 326 ms (321–329) 326 ms (323–346) +0%
chromium renderer memory, all tabs + workers (10 tabs) 1886 MB (1885–1925) 1895 MB (1879–1937) +0%
chromium renderer processes (10 tabs) 12 12
chromium sync still works after the first tab closes ok ok
chromium edit → seen + confirmed, after first tab closed 53 ms (53–55) 54 ms (52–63) +2%
chromium server link seen down while offline ok ok
chromium …and the server did not see the offline edits ok ok
chromium tabs converged while offline, over a local channel ok ok
chromium offline edits in two tabs both survive reconnect ok ok
chromium reconnect → tabs converged (only where they hadn't already) – –
chromium …and a fresh tab sees both ok ok
chromium boot → doc open, tab 1 411 ms (410–439) 409 ms (404–431) −1%
chromium boot → doc open, tab 2 348 ms (342–354) 351 ms (351–357) +1%
chromium boot → doc open, tab 10 325 ms (317–342) 308 ms (303–334) −5%
chromium open 40 tabs, wall clock 9591 ms (9567–9605) 9635 ms (9628–9692) +0%
chromium boot → repo, last of 40 tabs 76 ms (72–79) 70 ms (61–78) −8%
chromium boot → linked, last of 40 tabs – –
chromium boot → server connected, last of 40 tabs 247 ms (235–248) 236 ms (234–256) −5%
chromium renderer memory, 40 tabs 7304 MB (6982–7344) 7305 MB (7268–7426) +0%
chromium renderer processes, 40 tabs 42 42
chromium 39 tabs find the doc: median 840 ms (838–878) 859 ms (825–871) +2%
chromium 39 tabs find the doc: slowest 917 ms (910–952) 944 ms (943–1010) +3%
chromium …all 39 found it ok ok
chromium …finds that needed a retry (of 39) 0 0
chromium edit → seen in 39 tabs: median tab 65 ms (64–80) 62 ms (61–67) −5%
chromium edit → seen in 39 tabs: slowest tab 145 ms (142–152) 141 ms (130–147) −3%
chromium …tabs that saw every edit (of 39) 39 39
chromium edit → server holds our heads (40 tabs) 162 ms (159–165) 156 ms (156–158) −4%
chromium …server confirmed every edit (40 tabs) 2/3 ok ok fixed
chromium …longest main-thread stall in tab 0 during the edits 53 ms (40–53) 18 ms (16–22) −66% better
chromium sync rounds per sibling edit, non-editing tab 0 0
chromium server bytes received per edit per tab – –
chromium storage writes (saveBatch) per edit per tab – –
chromium worker errors (40 tabs) – –
chromium a fresh tab finds a closed tab's doc (no server) ok ok
chromium …time to find it, from storage 55 ms (48–64) 41 ms (39–59) −25%
chromium …and every edit made before the close is in it ok ok
chromium edits from tabs closed right after editing all survive ok ok
chromium …or at least 5s later ok ok
chromium find a doc another tab just created 54 ms (53–62) 57 ms (53–59) +5%
chromium …and every such find() succeeded within 5s ok ok
chromium …finds that settled unavailable first (of 2) 0 0
chromium edit → seen in 2 other tabs 7 ms (7–7) 7 ms (6–7) −1%
chromium …every edit reached every other tab within 5s ok ok
chromium edit → server holds our heads 24 ms (24–24) 24 ms (24–24) +1%
chromium …the server confirmed every edit within 5s ok ok
chromium …and a stranger gets the whole doc from the server ok ok
chromium renderer memory, 1 tab 368 MB (351–368) 370 MB (361–374) +1%
chromium renderer memory, 10 tabs 1900 MB (1899–1900) 1890 MB (1861–1931) −1%
firefox boot → repo, first tab (1 tabs) 481 ms (476–498) 506 ms (498–510) +5%
firefox boot → server connected, first tab (1 tabs) 882 ms (847–887) 878 ms (872–904) −0%
firefox renderer memory, all tabs + workers (1 tabs) – –
firefox renderer processes (1 tabs) – –
firefox boot → repo, first tab (3 tabs) 490 ms (484–515) 493 ms (480–519) +1%
firefox boot → repo, last tab (3 tabs) 378 ms (359–391) 349 ms (346–373) −8%
firefox boot → server connected, first tab (3 tabs) 940 ms (923–988) 963 ms (903–1009) +3%
firefox renderer memory, all tabs + workers (3 tabs) – –
firefox renderer processes (3 tabs) – –
firefox boot → repo, first tab (10 tabs) 524 ms (520–529) 490 ms (488–544) −6%
firefox boot → repo, last tab (10 tabs) 358 ms (346–413) 367 ms (365–374) +2%
firefox boot → server connected, first tab (10 tabs) 967 ms (951–1008) 985 ms (919–1298) +2%
firefox renderer memory, all tabs + workers (10 tabs) – –
firefox renderer processes (10 tabs) – –
firefox sync still works after the first tab closes ok ok
firefox edit → seen + confirmed, after first tab closed 167 ms (149–167) 158 ms (156–158) −5%
firefox server link seen down while offline ok ok
firefox …and the server did not see the offline edits ok ok
firefox tabs converged while offline, over a local channel ok ok
firefox offline edits in two tabs both survive reconnect ok ok
firefox reconnect → tabs converged (only where they hadn't already) – –
firefox …and a fresh tab sees both ok ok
firefox boot → doc open, tab 1 1028 ms (1002–1102) 996 ms (982–1129) −3%
firefox boot → doc open, tab 2 463 ms (457–470) 467 ms (449–588) +1%
firefox boot → doc open, tab 10 427 ms (417–427) 431 ms (431–709) +1%
firefox open 40 tabs, wall clock 22856 ms (22318–23180) 23262 ms (22585–28600) +2%
firefox boot → repo, last of 40 tabs 169 ms (163–171) 176 ms (175–353) +4%
firefox boot → linked, last of 40 tabs – –
firefox boot → server connected, last of 40 tabs 587 ms (584–602) 804 ms (572–897) +37%
firefox renderer memory, 40 tabs – –
firefox renderer processes, 40 tabs – –
firefox 39 tabs find the doc: median 373 ms (363–383) 365 ms (362–370) −2%
firefox 39 tabs find the doc: slowest 382 ms (366–385) 379 ms (371–384) −1%
firefox …all 39 found it ok ok
firefox …finds that needed a retry (of 39) 0 0
firefox edit → seen in 39 tabs: median tab 116 ms (113–117) 117 ms (112–119) +1%
firefox edit → seen in 39 tabs: slowest tab 191 ms (179–228) 203 ms (184–206) +6%
firefox …tabs that saw every edit (of 39) 39 39
firefox edit → server holds our heads (40 tabs) 345 ms (334–362) 343 ms (339–349) −1%
firefox …server confirmed every edit (40 tabs) ok ok
firefox …longest main-thread stall in tab 0 during the edits 114 ms (109–116) 117 ms (109–123) +2%
firefox sync rounds per sibling edit, non-editing tab 0 0
firefox server bytes received per edit per tab – –
firefox storage writes (saveBatch) per edit per tab – –
firefox worker errors (40 tabs) – –
firefox a fresh tab finds a closed tab's doc (no server) ok ok
firefox …time to find it, from storage 30 ms (26–34) 26 ms (24–27) −13%
firefox …and every edit made before the close is in it ok ok
firefox edits from tabs closed right after editing all survive ok ok
firefox …or at least 5s later ok ok
firefox find a doc another tab just created 29 ms (29–36) 31 ms (29–33) +6%
firefox …and every such find() succeeded within 5s ok ok
firefox …finds that settled unavailable first (of 2) 0 0
firefox edit → seen in 2 other tabs 15 ms (15–16) 15 ms (15–16) +1%
firefox …every edit reached every other tab within 5s ok ok
firefox edit → server holds our heads 113 ms (113–118) 118 ms (117–119) +4%
firefox …the server confirmed every edit within 5s ok ok
firefox …and a stranger gets the whole doc from the server ok ok
webkit boot → repo, first tab (1 tabs) 445 ms (401–446) 438 ms (388–439) −2%
webkit boot → server connected, first tab (1 tabs) 565 ms (535–572) 550 ms (523–555) −3%
webkit renderer memory, all tabs + workers (1 tabs) – –
webkit renderer processes (1 tabs) – –
webkit boot → repo, first tab (3 tabs) 461 ms (456–570) 460 ms (437–462) −0%
webkit boot → repo, last tab (3 tabs) 337 ms (330–355) 321 ms (318–327) −5%
webkit boot → server connected, first tab (3 tabs) 591 ms (581–740) 593 ms (567–613) +0%
webkit renderer memory, all tabs + workers (3 tabs) – –
webkit renderer processes (3 tabs) – –
webkit boot → repo, first tab (10 tabs) 443 ms (423–473) 442 ms (426–449) −0%
webkit boot → repo, last tab (10 tabs) 339 ms (328–360) 343 ms (334–365) +1%
webkit boot → server connected, first tab (10 tabs) 574 ms (556–693) 581 ms (557–588) +1%
webkit renderer memory, all tabs + workers (10 tabs) – –
webkit renderer processes (10 tabs) – –
webkit sync still works after the first tab closes ok ok
webkit edit → seen + confirmed, after first tab closed 81 ms (81–87) 82 ms (78–90) +1%
webkit server link seen down while offline ok ok
webkit …and the server did not see the offline edits ok ok
webkit tabs converged while offline, over a local channel ok ok
webkit offline edits in two tabs both survive reconnect ok ok
webkit reconnect → tabs converged (only where they hadn't already) – –
webkit …and a fresh tab sees both ok ok
webkit boot → doc open, tab 1 696 ms (664–703) 692 ms (658–715) −1%
webkit boot → doc open, tab 2 450 ms (431–481) 465 ms (463–472) +3%
webkit boot → doc open, tab 10 504 ms (497–508) 483 ms (473–498) −4%
webkit open 40 tabs, wall clock 28318 ms (27916–28510) 28528 ms (28453–28822) +1%
webkit boot → repo, last of 40 tabs 176 ms (172–198) 179 ms (176–207) +2%
webkit boot → linked, last of 40 tabs – –
webkit boot → server connected, last of 40 tabs 504 ms (477–521) 507 ms (498–520) +1%
webkit renderer memory, 40 tabs – –
webkit renderer processes, 40 tabs – –
webkit 39 tabs find the doc: median 500 ms (469–513) 498 ms (452–533) −0%
webkit 39 tabs find the doc: slowest 742 ms (611–796) 785 ms (592–805) +6%
webkit …all 39 found it ok ok
webkit …finds that needed a retry (of 39) 0 0
webkit edit → seen in 39 tabs: median tab 88 ms (86–100) 88 ms (87–107)
webkit edit → seen in 39 tabs: slowest tab 254 ms (210–256) 252 ms (229–280) −1%
webkit …tabs that saw every edit (of 39) 39 39
webkit edit → server holds our heads (40 tabs) 285 ms (284–295) 294 ms (294–301) +3%
webkit …server confirmed every edit (40 tabs) ok ok
webkit …longest main-thread stall in tab 0 during the edits 65 ms (29–91) 66 ms (42–86) +2%
webkit sync rounds per sibling edit, non-editing tab 0 0
webkit server bytes received per edit per tab – –
webkit storage writes (saveBatch) per edit per tab – –
webkit worker errors (40 tabs) – –
webkit a fresh tab finds a closed tab's doc (no server) ok ok
webkit …time to find it, from storage 87 ms (70–88) 70 ms (70–86) −20%
webkit …and every edit made before the close is in it ok ok
webkit edits from tabs closed right after editing all survive ok ok
webkit …or at least 5s later ok ok
webkit find a doc another tab just created 44 ms (34–48) 40 ms (38–45) −9%
webkit …and every such find() succeeded within 5s ok ok
webkit …finds that settled unavailable first (of 2) 0 0
webkit edit → seen in 2 other tabs 12 ms (12–14) 11 ms (11–15) −12%
webkit …every edit reached every other tab within 5s ok ok
webkit edit → server holds our heads 61 ms (60–62) 58 ms (56–60) −4%
webkit …the server confirmed every edit within 5s ok 2/3 ok fails 1 of 3
webkit …and a stranger gets the whole doc from the server ok ok

@github-actions

Copy link
Copy Markdown
Contributor

✅ Patchwork glance ready

https://patchwork-preview-466.patchwork.inkandswitch.com

A peek at inkandswitch/patchwork.inkandswitch.com, built with the @inkandswitch/patchwork- packages as of this PR at 805da59.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant