docs/solutions/logic-errors/2026-04-04-persistent-anchor-browser-examples-must-follow-current-content-not-initial-runtime-ids.md
The first browser example for persistent annotation anchors tried to pin the UI to the original text runtime ids from the initial snapshot.
That worked until a fragment insert landed before the anchored text.
At that point the example either:
The browser example was testing the wrong thing.
For this seam, the contract is:
It is not:
In practice, a multi-block fragment insert at a text point also produced a more interesting real shape than the naive expectation:
alpha|betaintro-a|intro-balpha|betaThe anchor rebased correctly inside the merged intro-balpha text.
The browser example switched from “remember the first runtime ids forever” to “follow the current content in the latest snapshot”:
useSlateProjections(...) speak for the current runtime idThat keeps the example honest about what the user cares about.
For browser examples around persistent Slate anchors:
If a browser regression is supposed to prove anchor persistence, content ownership beats initial id ownership.