# September 19, 2026

TypeScript SDK **0.8.10**, RTC server **0.4.2**, and Python SDK **0.0.2** preserve collaborative text character identities across checkpoints, reloads, and API bridges.

- Graph stores restore additive `Snapshot.textRopes` metadata automatically before replaying later edits. TypeScript writers use `encodeTextSnapshot` to persist materialized checkpoints without losing IDs and deleted anchors.
- Python snapshots accept the same metadata, hydrate TypeScript rope fields, and preserve local agent IDs when editing after refresh.
- The server returns note-body checksums on the editor socket. Compare only fresh responses at equal committed clocks after pending edits are acknowledged. Slow checks and different clocks mean catch-up, not proven divergence.
- Initial local edits no longer mutate the loaded checkpoint. Tests cover simultaneous post-refresh edits and deleted-anchor replay.

Deploy the server first, then upgrade browser, API, and CLI checkpoint consumers. Preserve the full snapshot envelope in bridges. Old readers can display string graph fields but cannot safely apply compacted text edits without hydration. This release cannot reconstruct IDs discarded by legacy checkpoints or repair previously garbled text automatically.

See [Networking](/networking.md) for the wire protocol and [Python](/python.md) for integration.
