@mmstack/primitives 22.9.4 → 22.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": "22.9.4",
3
+ "version": "22.10.0",
4
4
  "keywords": [
5
5
  "angular",
6
6
  "signals",
@@ -3358,12 +3358,15 @@ type HlcClock = {
3358
3358
  declare function createHlcClock(now?: () => number): HlcClock;
3359
3359
 
3360
3360
  /**
3361
- * Wire protocol version. Version 2 ops carry `cites` + `epoch` (the dot-citation register);
3362
- * envelopes from other versions are dropped loudly: an op without citations cannot be merged
3363
- * soundly (it would supersede nothing and its siblings would accumulate forever), so versions
3364
- * are never silently mixed.
3365
- */
3366
- declare const OP_PROTO_VERSION = 2;
3361
+ * Wire protocol version. Version 2 ops carry `cites` + `epoch` (the dot-citation register).
3362
+ * Version 3 changes MATERIALIZATION semantics, not shape: grafts descend through plain arrays
3363
+ * (per-index ops materialize instead of silently dropping) and the documented drop rule is
3364
+ * enforced for non-plain ancestors — so a v2 replica and a v3 replica CANNOT converge on the
3365
+ * same op set, which is exactly what the version fence exists to make loud. Envelopes from
3366
+ * other versions are dropped loudly, and the tab-sync join protocol refuses to pair mismatched
3367
+ * peers: versions are never silently mixed, in shape OR in meaning.
3368
+ */
3369
+ declare const OP_PROTO_VERSION = 3;
3367
3370
  type Key = string | number;
3368
3371
  /**
3369
3372
  * A dot: the globally-unique identity of one op at one path, the emitting replica (`origin`)