diff --git a/.changeset/watch-says-heads.md b/.changeset/watch-says-heads.md deleted file mode 100644 index d0254f07b..000000000 --- a/.changeset/watch-says-heads.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@inkandswitch/patchwork-bootloader": patch -"@inkandswitch/patchwork-filesystem": patch ---- - -A restart of the automerge worker no longer makes every tab look up every package at once. Those lookups reached the worker while it was shutting down, and answering them pushed the replacement over its memory threshold, so it recycled again. That kept the worker restarting about every 30s, with package lookups failing with HTTP 556 until the page was reloaded. - -The sync node's `changed` now carries its heads for the sedimentree. They're attached only once the tree holds every record that caused the change. Otherwise `changed` comes without them. The node also answers each `watch` with the heads it has, so a replacement node tells watchers what it holds, including anything the node before it stored. `PortSyncRemote.reconnect()` re-sends its watches and no longer calls every watcher. - -These are Subduction's heads, not the document's: once a document has a long history they include ancestors of its automerge heads. So they only say whether anything arrived, never which version to load. `watchDocument(url, onChange)` calls `onChange(seen)` with a summary of what the node holds, or with no argument when the node doesn't say. `PackageTracker.watch`'s `onChange` takes the same optional `seen`. `ModuleWatcher` looks a package up when `seen` changes or is absent, and does nothing when a restarted node says the same as before. - -A reload also waits for its import to finish before the next one starts, so the changes that land meanwhile collapse into one more import at the latest heads. diff --git a/core/bootloader/CHANGELOG.md b/core/bootloader/CHANGELOG.md index 3ef3a0250..039e30d53 100644 --- a/core/bootloader/CHANGELOG.md +++ b/core/bootloader/CHANGELOG.md @@ -1,5 +1,20 @@ # @inkandswitch/patchwork-bootloader +## 0.8.6 + +### Patch Changes + +- 3585501: A restart of the automerge worker no longer makes every tab look up every package at once. Those lookups reached the worker while it was shutting down, and answering them pushed the replacement over its memory threshold, so it recycled again. That kept the worker restarting about every 30s, with package lookups failing with HTTP 556 until the page was reloaded. + + The sync node's `changed` now carries its heads for the sedimentree. They're attached only once the tree holds every record that caused the change. Otherwise `changed` comes without them. The node also answers each `watch` with the heads it has, so a replacement node tells watchers what it holds, including anything the node before it stored. `PortSyncRemote.reconnect()` re-sends its watches and no longer calls every watcher. + + These are Subduction's heads, not the document's: once a document has a long history they include ancestors of its automerge heads. So they only say whether anything arrived, never which version to load. `watchDocument(url, onChange)` calls `onChange(seen)` with a summary of what the node holds, or with no argument when the node doesn't say. `PackageTracker.watch`'s `onChange` takes the same optional `seen`. `ModuleWatcher` looks a package up when `seen` changes or is absent, and does nothing when a restarted node says the same as before. + + A reload also waits for its import to finish before the next one starts, so the changes that land meanwhile collapse into one more import at the latest heads. + +- Updated dependencies [3585501] + - @inkandswitch/patchwork-filesystem@0.2.15 + ## 0.8.5 ### Patch Changes diff --git a/core/bootloader/package.json b/core/bootloader/package.json index 9b8eec2ca..b402ba470 100644 --- a/core/bootloader/package.json +++ b/core/bootloader/package.json @@ -5,7 +5,7 @@ "url": "git+https://github.com/inkandswitch/patchwork-system.git", "directory": "core/bootloader" }, - "version": "0.8.5", + "version": "0.8.6", "author": "chee", "type": "module", "license": "MIT", diff --git a/core/filesystem/CHANGELOG.md b/core/filesystem/CHANGELOG.md index 3e34b0d3b..408668b55 100644 --- a/core/filesystem/CHANGELOG.md +++ b/core/filesystem/CHANGELOG.md @@ -1,5 +1,17 @@ # @inkandswitch/patchwork-filesystem +## 0.2.15 + +### Patch Changes + +- 3585501: A restart of the automerge worker no longer makes every tab look up every package at once. Those lookups reached the worker while it was shutting down, and answering them pushed the replacement over its memory threshold, so it recycled again. That kept the worker restarting about every 30s, with package lookups failing with HTTP 556 until the page was reloaded. + + The sync node's `changed` now carries its heads for the sedimentree. They're attached only once the tree holds every record that caused the change. Otherwise `changed` comes without them. The node also answers each `watch` with the heads it has, so a replacement node tells watchers what it holds, including anything the node before it stored. `PortSyncRemote.reconnect()` re-sends its watches and no longer calls every watcher. + + These are Subduction's heads, not the document's: once a document has a long history they include ancestors of its automerge heads. So they only say whether anything arrived, never which version to load. `watchDocument(url, onChange)` calls `onChange(seen)` with a summary of what the node holds, or with no argument when the node doesn't say. `PackageTracker.watch`'s `onChange` takes the same optional `seen`. `ModuleWatcher` looks a package up when `seen` changes or is absent, and does nothing when a restarted node says the same as before. + + A reload also waits for its import to finish before the next one starts, so the changes that land meanwhile collapse into one more import at the latest heads. + ## 0.2.14 ### Patch Changes diff --git a/core/filesystem/package.json b/core/filesystem/package.json index 404c26f79..a28716fc9 100644 --- a/core/filesystem/package.json +++ b/core/filesystem/package.json @@ -6,7 +6,7 @@ "directory": "core/filesystem" }, "type": "module", - "version": "0.2.14", + "version": "0.2.15", "author": "Ink & Switch", "description": "", "main": "dist/index.js",