@mmstack/primitives 21.9.3 → 21.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmstack/primitives",
3
- "version": "21.9.3",
3
+ "version": "21.10.0",
4
4
  "keywords": [
5
5
  "angular",
6
6
  "signals",
@@ -3351,12 +3351,15 @@ type HlcClock = {
3351
3351
  declare function createHlcClock(now?: () => number): HlcClock;
3352
3352
 
3353
3353
  /**
3354
- * Wire protocol version. Version 2 ops carry `cites` + `epoch` (the dot-citation register);
3355
- * envelopes from other versions are dropped loudly: an op without citations cannot be merged
3356
- * soundly (it would supersede nothing and its siblings would accumulate forever), so versions
3357
- * are never silently mixed.
3358
- */
3359
- declare const OP_PROTO_VERSION = 2;
3354
+ * Wire protocol version. Version 2 ops carry `cites` + `epoch` (the dot-citation register).
3355
+ * Version 3 changes MATERIALIZATION semantics, not shape: grafts descend through plain arrays
3356
+ * (per-index ops materialize instead of silently dropping) and the documented drop rule is
3357
+ * enforced for non-plain ancestors — so a v2 replica and a v3 replica CANNOT converge on the
3358
+ * same op set, which is exactly what the version fence exists to make loud. Envelopes from
3359
+ * other versions are dropped loudly, and the tab-sync join protocol refuses to pair mismatched
3360
+ * peers: versions are never silently mixed, in shape OR in meaning.
3361
+ */
3362
+ declare const OP_PROTO_VERSION = 3;
3360
3363
  type Key = string | number;
3361
3364
  /**
3362
3365
  * A dot: the globally-unique identity of one op at one path, the emitting replica (`origin`)