diff --git a/.changeset/adopt-inserted-subtrees.md b/.changeset/adopt-inserted-subtrees.md
deleted file mode 100644
index b6342298..00000000
--- a/.changeset/adopt-inserted-subtrees.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Adopt complete subtrees, including initialized template content, during cross-document insertion so descendant and attribute mutations use the destination document.
diff --git a/.changeset/bright-attrs-update.md b/.changeset/bright-attrs-update.md
deleted file mode 100644
index 574b00c2..00000000
--- a/.changeset/bright-attrs-update.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Dispatch attribute hooks when mutating an attached attribute's value or nodeValue.
diff --git a/.changeset/bright-selectors-match.md b/.changeset/bright-selectors-match.md
deleted file mode 100644
index 36b7613e..00000000
--- a/.changeset/bright-selectors-match.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Correct chained combinators, whitespace, exact attribute equality, and scoped relative `:has()` selectors, including leading combinators, nested functional pseudo-classes, and ASCII-case-insensitive pseudo-class names.
diff --git a/.changeset/calm-tools-initialize.md b/.changeset/calm-tools-initialize.md
deleted file mode 100644
index ba8f6b38..00000000
--- a/.changeset/calm-tools-initialize.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Add the missing `CustomElementRegistry.initialize()` compatibility method so TypeScript 7 type checks cleanly.
diff --git a/.changeset/calm-types-erase.md b/.changeset/calm-types-erase.md
deleted file mode 100644
index dd377244..00000000
--- a/.changeset/calm-types-erase.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Make the Polyfill source compatible with type stripping by replacing TypeScript enums and a parameter property with erasable syntax.
diff --git a/.changeset/clean-attribute-links.md b/.changeset/clean-attribute-links.md
deleted file mode 100644
index bc7ad063..00000000
--- a/.changeset/clean-attribute-links.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Preserve attribute ownership and linked-list integrity when attributes are reinstalled, replaced, removed, or reused.
diff --git a/.changeset/clear-documents-reject.md b/.changeset/clear-documents-reject.md
deleted file mode 100644
index 1deaef16..00000000
--- a/.changeset/clear-documents-reject.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Throw a named `NotSupportedError` when cloning a document or importing one with `Document.importNode()`.
diff --git a/.changeset/correct-child-replace-with.md b/.changeset/correct-child-replace-with.md
deleted file mode 100644
index 377a186e..00000000
--- a/.changeset/correct-child-replace-with.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Make `ChildNode.replaceWith()`, `before()`, and `after()` validate all arguments before changing existing trees, preserve sibling argument order, and commit each operation before custom-element reactions run.
diff --git a/.changeset/correct-event-dispatch-lifecycle.md b/.changeset/correct-event-dispatch-lifecycle.md
deleted file mode 100644
index fe46be29..00000000
--- a/.changeset/correct-event-dispatch-lifecycle.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Correct event dispatch lifecycle state, isolate composed paths, and defer listener registrations added during dispatch.
diff --git a/.changeset/distinguish-dom-errors.md b/.changeset/distinguish-dom-errors.md
deleted file mode 100644
index 92723c65..00000000
--- a/.changeset/distinguish-dom-errors.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Throw named DOM errors for invalid tree mutations and selector syntax.
diff --git a/.changeset/document-text-content-semantics.md b/.changeset/document-text-content-semantics.md
deleted file mode 100644
index c21e9b34..00000000
--- a/.changeset/document-text-content-semantics.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Return `null` from `Document.textContent` and ignore assignments to preserve the initialized document structure.
diff --git a/.changeset/element-query-methods.md b/.changeset/element-query-methods.md
deleted file mode 100644
index 8826c5da..00000000
--- a/.changeset/element-query-methods.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@remote-dom/polyfill': minor
----
-
-Add `getElementById()` to `Document` and `DocumentFragment`, with reflected `Element.id` properties. Add `getElementsByTagName()` to `Document` and `Element`, supporting HTML, non-HTML, and wildcard descendant searches. `querySelector` and `querySelectorAll` accept a pre-parsed `Matcher[]` in addition to string selectors, with `MatcherType`, `Combinator`, `Matcher`, and `Part` exported from `selectors.ts`; `getElementById` and `getElementsByTagName` delegate to this shared selector engine instead of independent tree-walk implementations.
-
-Fixed `insertBefore()` leaving the previous sibling pointing at the reference node when inserting before a middle child, causing `NEXT` traversals (including `getElementById`) to skip the inserted subtree even though `childNodes` contained it, and return the inserted child as required by the DOM specification. Fixed `appendChild()` to return the appended child and `NodeList.item()` to return `null` for out-of-range indexes. Fixed case-insensitive HTML tag-name matching in the selector engine so `querySelector('DIV')` now matches `
` per the CSS spec. Fixed CSS-escaping issues so `getElementById` matches ids containing special characters (`.`, `:`, `#`, etc.) literally instead of treating them as selector syntax.
diff --git a/.changeset/empty-parent-text-content.md b/.changeset/empty-parent-text-content.md
deleted file mode 100644
index 8c52eff6..00000000
--- a/.changeset/empty-parent-text-content.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Clear parent children without creating an empty text node when assigning an empty `textContent` value, and finish the complete replacement before running custom-element reactions.
diff --git a/.changeset/fair-listeners-register.md b/.changeset/fair-listeners-register.md
deleted file mode 100644
index 5e83889f..00000000
--- a/.changeset/fair-listeners-register.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Correct event listener identity and AbortSignal handling in the EventTarget polyfill.
diff --git a/.changeset/fix-dom-receiver-cache.md b/.changeset/fix-dom-receiver-cache.md
deleted file mode 100644
index 60000843..00000000
--- a/.changeset/fix-dom-receiver-cache.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/core': patch
----
-
-Fix `DOMRemoteReceiver` cleanup for removed elements and per-element cache expiry.
diff --git a/.changeset/fix-event-cancellation.md b/.changeset/fix-event-cancellation.md
deleted file mode 100644
index 1a041ac8..00000000
--- a/.changeset/fix-event-cancellation.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Fix event cancellation semantics for `preventDefault()`, `returnValue`, and `dispatchEvent()`.
diff --git a/.changeset/fresh-globals-install.md b/.changeset/fresh-globals-install.md
deleted file mode 100644
index f3ef96bd..00000000
--- a/.changeset/fresh-globals-install.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Install missing event methods and error handlers consistently without replacing native global event delivery.
diff --git a/.changeset/fresh-pandas-parse.md b/.changeset/fresh-pandas-parse.md
deleted file mode 100644
index 3b236fb6..00000000
--- a/.changeset/fresh-pandas-parse.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Preserve character references and literal ampersands when parsing `innerHTML`, decode attribute references without double-escaping, handle nested `innerHTML` parsing from synchronous callbacks, and handle HTML void elements without nesting following content or serializing closing tags.
diff --git a/.changeset/fresh-slots-remove.md b/.changeset/fresh-slots-remove.md
deleted file mode 100644
index d4630b01..00000000
--- a/.changeset/fresh-slots-remove.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Remove `slot` attributes without recreating them as empty attributes, keeping local and host state synchronized.
diff --git a/.changeset/fuzzy-classes-find.md b/.changeset/fuzzy-classes-find.md
deleted file mode 100644
index ec18f83d..00000000
--- a/.changeset/fuzzy-classes-find.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': minor
----
-
-Add `getElementsByClassName()` to polyfilled documents and elements.
diff --git a/.changeset/grumpy-cycles-suffer.md b/.changeset/grumpy-cycles-suffer.md
deleted file mode 100644
index 55d7cc7b..00000000
--- a/.changeset/grumpy-cycles-suffer.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Default omitted CustomEvent detail values to null.
diff --git a/.changeset/include-comment-hook-nodes.md b/.changeset/include-comment-hook-nodes.md
deleted file mode 100644
index 61992a7c..00000000
--- a/.changeset/include-comment-hook-nodes.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Include `Comment` nodes in the polyfill hook type contract.
diff --git a/.changeset/neat-dom-names-normalize.md b/.changeset/neat-dom-names-normalize.md
deleted file mode 100644
index 9672183f..00000000
--- a/.changeset/neat-dom-names-normalize.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Normalize and validate DOM element and attribute names across HTML and namespaced APIs, including `toggleAttribute()` and custom-element attribute reactions.
diff --git a/.changeset/normalize-text-node-hooks.md b/.changeset/normalize-text-node-hooks.md
deleted file mode 100644
index 60700988..00000000
--- a/.changeset/normalize-text-node-hooks.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Normalize `createTextNode()` hook data to match the created text node.
diff --git a/.changeset/polished-template-content.md b/.changeset/polished-template-content.md
deleted file mode 100644
index 8cdfb0ce..00000000
--- a/.changeset/polished-template-content.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Parse template descendants into template content and serialize that content with stack-safe HTML output.
diff --git a/.changeset/polyfill-replace-with.md b/.changeset/polyfill-replace-with.md
deleted file mode 100644
index 30c7f6db..00000000
--- a/.changeset/polyfill-replace-with.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Fix `ChildNode.replaceWith()` throwing instead of replacing the node
-
-`replaceWith()` passed its arguments to `replaceChild()` in the wrong order — `replaceChild(newChild, oldChild)` was called as `parent.replaceChild(this, node)`, naming the incoming node as the child to replace. Since that node is usually fresh and has no parent, the reference check rejected it and every call threw `reference node is not a child of this parent`. It also read the following sibling off the incoming node rather than off `this`, so the remaining arguments had no correct insertion point to anchor to.
-
-The method now removes `this` and inserts the given nodes at its position, in argument order, anchored on the first following sibling that is not itself being moved. Strings become text nodes, calling it with no arguments removes the node (matching `remove()`), and a node with no parent is still left alone.
diff --git a/.changeset/quiet-observers-watch.md b/.changeset/quiet-observers-watch.md
deleted file mode 100644
index d79664d5..00000000
--- a/.changeset/quiet-observers-watch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': minor
----
-
-Implement the standard `MutationObserver` methods for child, attribute, and character-data changes in the polyfilled DOM.
diff --git a/.changeset/quiet-wpt-capability-ci.md b/.changeset/quiet-wpt-capability-ci.md
deleted file mode 100644
index 1b37e125..00000000
--- a/.changeset/quiet-wpt-capability-ci.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
----
-
-Add private WPT capability enforcement and CI without releasing a public package.
diff --git a/.changeset/quiet-wpt-inputs.md b/.changeset/quiet-wpt-inputs.md
deleted file mode 100644
index c5bb0de6..00000000
--- a/.changeset/quiet-wpt-inputs.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
----
-
-Add a private interactive WPT runner without releasing a public package.
diff --git a/.changeset/quiet-wpt-preparation.md b/.changeset/quiet-wpt-preparation.md
deleted file mode 100644
index a45d1afd..00000000
--- a/.changeset/quiet-wpt-preparation.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
----
-
-Add private WPT source preparation without releasing a public package.
diff --git a/.changeset/respect-default-namespace.md b/.changeset/respect-default-namespace.md
deleted file mode 100644
index d922d3f2..00000000
--- a/.changeset/respect-default-namespace.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Resolve `Node.isDefaultNamespace()` with DOM locate-a-namespace semantics.
diff --git a/.changeset/return-parent-mutation-nodes.md b/.changeset/return-parent-mutation-nodes.md
deleted file mode 100644
index 6e486905..00000000
--- a/.changeset/return-parent-mutation-nodes.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Return removed and replaced nodes from `removeChild` and `replaceChild`.
diff --git a/.changeset/return-query-selector-all-node-list.md b/.changeset/return-query-selector-all-node-list.md
deleted file mode 100644
index 506b7f54..00000000
--- a/.changeset/return-query-selector-all-node-list.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Return a NodeList-compatible collection from `querySelectorAll()`.
diff --git a/.changeset/safe-custom-element-reactions.md b/.changeset/safe-custom-element-reactions.md
deleted file mode 100644
index 0a591ce4..00000000
--- a/.changeset/safe-custom-element-reactions.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Queue custom-element reactions so compound tree and attribute mutations commit their local state and Remote DOM hooks before callbacks run. Drain nested reactions in FIFO order, and finish the queue before rethrowing the first callback error.
diff --git a/.changeset/sharp-pillows-talk.md b/.changeset/sharp-pillows-talk.md
deleted file mode 100644
index 9a31752e..00000000
--- a/.changeset/sharp-pillows-talk.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': minor
----
-
-Add composable `Window` extensions for installing DOM APIs and subscribing to DOM operations.
diff --git a/.changeset/stack-safe-wide-traversal.md b/.changeset/stack-safe-wide-traversal.md
deleted file mode 100644
index 831d9ab8..00000000
--- a/.changeset/stack-safe-wide-traversal.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@remote-dom/polyfill': patch
----
-
-Traverse wide and deep trees without overflowing the call stack during text collection, selector queries, and subtree connectivity updates. Prepare insertion snapshots transactionally before committing links, connectivity, hooks, and reactions so traversal failures preserve local and remote tree state. Capture lifecycle reactions in mutation order before emitting reentrant tree-mutation hook effects through a FIFO queue.
diff --git a/.changeset/strict-dom-receiver-policy.md b/.changeset/strict-dom-receiver-policy.md
deleted file mode 100644
index f4709374..00000000
--- a/.changeset/strict-dom-receiver-policy.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-'@remote-dom/core': minor
----
-
-Add optional per-element member configuration and `blockedProperties` to `DOMRemoteReceiver`.
-
-This release also fixes security vulnerabilities.
-
-Use `elements` with an array of element names, or a map specifying each element's `properties`, `attributes`, `events`, and `methods`. Property keys map to objects with optional `type` and `attribute` fields. The `type` field validates non-nullish property-channel values (no coercion); `attribute` authorizes corresponding attributes (defaults `true` for kebab-case, string for named alias, `false` for none). Attribute values must be strings (or nullish for removal); they are not parsed according to property types. Events use raw DOM names (e.g., `click`, not `onClick`).
-
-### Default behavior
-
-- A supplied `elements` array or map restricts element names, including nested children. Omitting `elements` leaves names unrestricted; an empty array or map accepts only text and comments.
-- Property and attribute names `innerHTML`, `outerHTML`, `srcdoc`, `__proto__`, `constructor`, `prototype`, `is`, and names beginning with `on` are excluded case-insensitively. Use the event-listener channel for event callbacks.
-- Assignments to base DOM methods are excluded. Native `` and `` elements also exclude writes to the `protocol` property; update their complete `href` instead.
-- URL checks apply to `href`, `xlink:href`, `src`, `action`, `formAction`, `codebase`, `background`, `poster`, and native `