instar 1.3.569 → 1.3.571

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.
Files changed (36) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +127 -53
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/CoherenceJournal.d.ts +46 -0
  5. package/dist/core/CoherenceJournal.d.ts.map +1 -1
  6. package/dist/core/CoherenceJournal.js +94 -2
  7. package/dist/core/CoherenceJournal.js.map +1 -1
  8. package/dist/core/JournalSyncApplier.d.ts +22 -0
  9. package/dist/core/JournalSyncApplier.d.ts.map +1 -1
  10. package/dist/core/JournalSyncApplier.js +39 -2
  11. package/dist/core/JournalSyncApplier.js.map +1 -1
  12. package/dist/core/MachinePoolRegistry.d.ts.map +1 -1
  13. package/dist/core/MachinePoolRegistry.js +26 -4
  14. package/dist/core/MachinePoolRegistry.js.map +1 -1
  15. package/dist/core/PeerPresencePuller.d.ts +39 -0
  16. package/dist/core/PeerPresencePuller.d.ts.map +1 -1
  17. package/dist/core/PeerPresencePuller.js +46 -1
  18. package/dist/core/PeerPresencePuller.js.map +1 -1
  19. package/dist/core/ReplicatedPeerStreamReader.d.ts +97 -0
  20. package/dist/core/ReplicatedPeerStreamReader.d.ts.map +1 -0
  21. package/dist/core/ReplicatedPeerStreamReader.js +274 -0
  22. package/dist/core/ReplicatedPeerStreamReader.js.map +1 -0
  23. package/dist/core/ReplicatedRecordEmitter.d.ts +102 -0
  24. package/dist/core/ReplicatedRecordEmitter.d.ts.map +1 -0
  25. package/dist/core/ReplicatedRecordEmitter.js +122 -0
  26. package/dist/core/ReplicatedRecordEmitter.js.map +1 -0
  27. package/dist/core/ws2SendWiring.d.ts +52 -0
  28. package/dist/core/ws2SendWiring.d.ts.map +1 -0
  29. package/dist/core/ws2SendWiring.js +71 -0
  30. package/dist/core/ws2SendWiring.js.map +1 -0
  31. package/package.json +1 -1
  32. package/src/data/builtin-manifest.json +2 -2
  33. package/upgrades/1.3.570.md +69 -0
  34. package/upgrades/1.3.571.md +64 -0
  35. package/upgrades/side-effects/statesync-peer-advert-propagation-fix.md +125 -0
  36. package/upgrades/side-effects/ws2-send-side-emission.md +40 -0
@@ -30,6 +30,7 @@
30
30
  * The journal subsystem never emits journal events about itself.
31
31
  */
32
32
  import fs from 'node:fs';
33
+ import { type ReplicatedKindRegistry } from './ReplicatedRecordEnvelope.js';
33
34
  export type JournalKind = 'topic-placement' | 'session-lifecycle' | 'autonomous-run' | 'threadline-conversation' | 'guard-latch' | 'pref-record' | 'relationship-record' | 'learning-record' | 'knowledge-record' | 'evolution-action-record' | 'user-record' | 'topic-operator-record';
34
35
  export declare const JOURNAL_KINDS: JournalKind[];
35
36
  /** §3.2 enums. */
@@ -104,6 +105,16 @@ export interface KindRetention {
104
105
  export declare const DEFAULT_RETENTION: Record<JournalKind, KindRetention>;
105
106
  export declare const DEFAULT_FLUSH_INTERVAL_MS = 250;
106
107
  export declare const DEFAULT_MAX_ENTRY_BYTES: number;
108
+ /**
109
+ * Per-entry byte cap for a REPLICATED `*-record` kind (WS2 send-side). A
110
+ * disclosure-minimized record's `data` is capped at 64 KB by its store builder
111
+ * (e.g. LEARNING_MAX_ENTRY_BYTES); the serialized journal LINE adds the entry
112
+ * envelope (seq/ts/machine/kind), so the line cap must sit a margin ABOVE the
113
+ * data cap or a legal-but-fat record would be dropped as oversize. 80 KB clears
114
+ * the 64 KB data ceiling with comfortable headroom while staying bounded. The
115
+ * applier's receive-side cap (JournalSyncApplier) uses the SAME constant so a
116
+ * record the writer emits can never be rejected as oversize on receive. */
117
+ export declare const REPLICATED_RECORD_MAX_ENTRY_BYTES: number;
107
118
  /** Tail-scan window for op-key dedupe reconstruction (§3.1). */
108
119
  export declare const DEDUPE_WINDOW = 200;
109
120
  /** Token-bucket defaults per kind (emits/sec sustained; burst = capacity). */
@@ -227,6 +238,14 @@ export declare class CoherenceJournal {
227
238
  private readonly now;
228
239
  private readonly logger?;
229
240
  private readonly io;
241
+ /**
242
+ * The replicated-kind registry (WS2 send-side). Injected via
243
+ * setReplicatedKindRegistry so the journal can validate + accept a registered
244
+ * `*-record` kind's envelope. ABSENT ⇒ unchanged behavior (only the 5 hardcoded
245
+ * lifecycle kinds validate; a `*-record` kind schema-rejects exactly as before
246
+ * this seam landed). The journal never depends on the registry being present.
247
+ */
248
+ private replicatedRegistry?;
230
249
  private state;
231
250
  private incarnation;
232
251
  /** Next seq to assign at enqueue, per kind (in-memory counter seeded at open). */
@@ -297,6 +316,33 @@ export declare class CoherenceJournal {
297
316
  * never deduped away while a genuine retry of the SAME (kind,id,seq) collapses.
298
317
  */
299
318
  emitGuardLatch(data: GuardLatchData): void;
319
+ /**
320
+ * Inject the replicated-kind registry (WS2 send-side). Idempotent + optional:
321
+ * the journal validates a registered `*-record` kind's envelope via the store
322
+ * schema the registry carries; absent ⇒ unchanged behavior. Called once at
323
+ * wiring time (server.ts), after the concrete stores register their kinds.
324
+ */
325
+ setReplicatedKindRegistry(registry: ReplicatedKindRegistry | undefined): void;
326
+ /**
327
+ * Emit a replicated-store record (WS2 send-side). `data` MUST be a built,
328
+ * disclosure-minimized envelope `data` (the store's `build*RecordData` output)
329
+ * carrying `recordKey`/`hlc`/`op`/`origin` (+ optional `observed`). The op-key
330
+ * is `recordKey:serializeHlcKey(hlc)` so a retry of the EXACT logical event
331
+ * (same key + same HLC) dedupes, while a new HLC is a distinct event — the §4
332
+ * idempotency rule. Validation runs in the shared `emit()` path (which delegates
333
+ * a registered replicated kind to `validateReplicatedEnvelope`), so a malformed
334
+ * record is a counted schema-reject, never a throw. Non-blocking; never throws
335
+ * into the caller (the manager emit hooks are best-effort). A no-op when the
336
+ * kind is not a registered replicated kind (the registry is the authority).
337
+ */
338
+ emitReplicatedRecord(kind: JournalKind, data: Record<string, unknown>): void;
339
+ /** Derive the restart-proof op-key for a replicated record: `recordKey:hlcKey`.
340
+ * Best-effort — a malformed key/hlc still yields a stable string (the record is
341
+ * then rejected by validate(), so the op-key only matters for well-formed ones). */
342
+ private replicatedOpKey;
343
+ /** The per-entry byte cap for a kind — RAISED for replicated `*-record` kinds
344
+ * (a disclosure-minimized record can exceed the 8 KB lifecycle cap; §4). */
345
+ private maxEntryBytesForKind;
300
346
  /**
301
347
  * Generic non-blocking emit: validate + jail + dedupe + rate-cap + serialize,
302
348
  * assign a seq, enqueue, and RETURN. No synchronous file I/O on this stack —
@@ -1 +1 @@
1
- {"version":3,"file":"CoherenceJournal.d.ts","sourceRoot":"","sources":["../../src/core/CoherenceJournal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoherenceJournal.d.ts","sourceRoot":"","sources":["../../src/core/CoherenceJournal.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@
32
32
  import crypto from 'node:crypto';
33
33
  import fs from 'node:fs';
34
34
  import path from 'node:path';
35
+ import { coerceHlc, serializeHlcKey } from './HybridLogicalClock.js';
36
+ import { validateReplicatedEnvelope, } from './ReplicatedRecordEnvelope.js';
35
37
  import { SafeFsExecutor } from './SafeFsExecutor.js';
36
38
  export const JOURNAL_KINDS = ['topic-placement', 'session-lifecycle', 'autonomous-run', 'threadline-conversation', 'guard-latch', 'pref-record', 'relationship-record', 'learning-record', 'knowledge-record', 'evolution-action-record', 'user-record', 'topic-operator-record'];
37
39
  export const DEFAULT_RETENTION = {
@@ -96,6 +98,16 @@ export const DEFAULT_RETENTION = {
96
98
  };
97
99
  export const DEFAULT_FLUSH_INTERVAL_MS = 250;
98
100
  export const DEFAULT_MAX_ENTRY_BYTES = 8 * 1024;
101
+ /**
102
+ * Per-entry byte cap for a REPLICATED `*-record` kind (WS2 send-side). A
103
+ * disclosure-minimized record's `data` is capped at 64 KB by its store builder
104
+ * (e.g. LEARNING_MAX_ENTRY_BYTES); the serialized journal LINE adds the entry
105
+ * envelope (seq/ts/machine/kind), so the line cap must sit a margin ABOVE the
106
+ * data cap or a legal-but-fat record would be dropped as oversize. 80 KB clears
107
+ * the 64 KB data ceiling with comfortable headroom while staying bounded. The
108
+ * applier's receive-side cap (JournalSyncApplier) uses the SAME constant so a
109
+ * record the writer emits can never be rejected as oversize on receive. */
110
+ export const REPLICATED_RECORD_MAX_ENTRY_BYTES = 80 * 1024;
99
111
  /** Tail-scan window for op-key dedupe reconstruction (§3.1). */
100
112
  export const DEDUPE_WINDOW = 200;
101
113
  /** Token-bucket defaults per kind (emits/sec sustained; burst = capacity). */
@@ -141,6 +153,14 @@ export class CoherenceJournal {
141
153
  now;
142
154
  logger;
143
155
  io;
156
+ /**
157
+ * The replicated-kind registry (WS2 send-side). Injected via
158
+ * setReplicatedKindRegistry so the journal can validate + accept a registered
159
+ * `*-record` kind's envelope. ABSENT ⇒ unchanged behavior (only the 5 hardcoded
160
+ * lifecycle kinds validate; a `*-record` kind schema-rejects exactly as before
161
+ * this seam landed). The journal never depends on the registry being present.
162
+ */
163
+ replicatedRegistry;
144
164
  state = 'closed';
145
165
  incarnation = '';
146
166
  /** Next seq to assign at enqueue, per kind (in-memory counter seeded at open). */
@@ -386,6 +406,59 @@ export class CoherenceJournal {
386
406
  emitGuardLatch(data) {
387
407
  this.emit('guard-latch', undefined, data, `${data?.latchKind}:${data?.latchId}:${data?.seq}`);
388
408
  }
409
+ /**
410
+ * Inject the replicated-kind registry (WS2 send-side). Idempotent + optional:
411
+ * the journal validates a registered `*-record` kind's envelope via the store
412
+ * schema the registry carries; absent ⇒ unchanged behavior. Called once at
413
+ * wiring time (server.ts), after the concrete stores register their kinds.
414
+ */
415
+ setReplicatedKindRegistry(registry) {
416
+ this.replicatedRegistry = registry;
417
+ }
418
+ /**
419
+ * Emit a replicated-store record (WS2 send-side). `data` MUST be a built,
420
+ * disclosure-minimized envelope `data` (the store's `build*RecordData` output)
421
+ * carrying `recordKey`/`hlc`/`op`/`origin` (+ optional `observed`). The op-key
422
+ * is `recordKey:serializeHlcKey(hlc)` so a retry of the EXACT logical event
423
+ * (same key + same HLC) dedupes, while a new HLC is a distinct event — the §4
424
+ * idempotency rule. Validation runs in the shared `emit()` path (which delegates
425
+ * a registered replicated kind to `validateReplicatedEnvelope`), so a malformed
426
+ * record is a counted schema-reject, never a throw. Non-blocking; never throws
427
+ * into the caller (the manager emit hooks are best-effort). A no-op when the
428
+ * kind is not a registered replicated kind (the registry is the authority).
429
+ */
430
+ emitReplicatedRecord(kind, data) {
431
+ try {
432
+ if (!this.replicatedRegistry?.isReplicatedKind(kind))
433
+ return; // not a registered replicated kind ⇒ no-op
434
+ const opKey = this.replicatedOpKey(data);
435
+ this.emit(kind, undefined, data, opKey);
436
+ }
437
+ catch (e) { /* @silent-fallback-ok: journal observability must never endanger the observed operation (COHERENCE-JOURNAL-SPEC §3.1) */
438
+ this.log('emit-record', `[coherence-journal] emitReplicatedRecord failed (swallowed): ${e?.message}`);
439
+ }
440
+ }
441
+ /** Derive the restart-proof op-key for a replicated record: `recordKey:hlcKey`.
442
+ * Best-effort — a malformed key/hlc still yields a stable string (the record is
443
+ * then rejected by validate(), so the op-key only matters for well-formed ones). */
444
+ replicatedOpKey(data) {
445
+ const recordKey = typeof data.recordKey === 'string' ? data.recordKey : '';
446
+ let hlcKey = '';
447
+ try {
448
+ hlcKey = serializeHlcKey(coerceHlc(data.hlc));
449
+ }
450
+ catch { /* @silent-fallback-ok: a malformed hlc yields an empty hlcKey; validate() then rejects the whole record (schemaRejects) — the op-key never gates a malformed record's acceptance. */
451
+ hlcKey = '';
452
+ }
453
+ return `${recordKey}:${hlcKey}`;
454
+ }
455
+ /** The per-entry byte cap for a kind — RAISED for replicated `*-record` kinds
456
+ * (a disclosure-minimized record can exceed the 8 KB lifecycle cap; §4). */
457
+ maxEntryBytesForKind(kind) {
458
+ return this.replicatedRegistry?.isReplicatedKind(kind)
459
+ ? REPLICATED_RECORD_MAX_ENTRY_BYTES
460
+ : this.maxEntryBytes;
461
+ }
389
462
  /**
390
463
  * Generic non-blocking emit: validate + jail + dedupe + rate-cap + serialize,
391
464
  * assign a seq, enqueue, and RETURN. No synchronous file I/O on this stack —
@@ -422,8 +495,8 @@ export class CoherenceJournal {
422
495
  data: validated,
423
496
  };
424
497
  const line = JSON.stringify(entry);
425
- // Per-entry size cap (default 8KB) — over-cap drop + count.
426
- if (Buffer.byteLength(line, 'utf-8') > this.maxEntryBytes) {
498
+ // Per-entry size cap (8KB lifecycle / 80KB replicated record) — over-cap drop + count.
499
+ if (Buffer.byteLength(line, 'utf-8') > this.maxEntryBytesForKind(kind)) {
427
500
  this.degradation.oversize++;
428
501
  return;
429
502
  }
@@ -446,6 +519,25 @@ export class CoherenceJournal {
446
519
  validate(kind, raw) {
447
520
  if (!raw || typeof raw !== 'object')
448
521
  return null;
522
+ // WS2 send-side: a registered replicated `*-record` kind validates through the
523
+ // GENERIC envelope validator + its store-specific schema (the same strict
524
+ // discipline as the lifecycle kinds — reject free text, drop unknown fields,
525
+ // jail path-shaped fields, validate hlc/observed). The reconstructed `data`
526
+ // (validated envelope fields authoritative) is what enqueues. Absent registry
527
+ // ⇒ falls through to the lifecycle switch (which rejects an unknown kind).
528
+ const reg = this.replicatedRegistry?.getByKind(kind);
529
+ if (reg) {
530
+ const counters = {
531
+ // emit() bumps schemaRejects ONCE when validate() returns null (the
532
+ // lifecycle path's contract) — so the validator's schema-reject is a no-op
533
+ // here to avoid double-counting; the single emit()-side bump stands.
534
+ bumpSchemaReject: () => { },
535
+ bumpDroppedField: () => { this.degradation.droppedFields++; },
536
+ bumpJailReject: () => { this.degradation.jailRejects++; },
537
+ };
538
+ const result = validateReplicatedEnvelope(raw, reg.schema, counters);
539
+ return result.ok ? result.data : null;
540
+ }
449
541
  const seen = Object.keys(raw);
450
542
  let out = null;
451
543
  let known = [];
@@ -1 +1 @@
1
- {"version":3,"file":"CoherenceJournal.js","sourceRoot":"","sources":["../../src/core/CoherenceJournal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoherenceJournal.js","sourceRoot":"","sources":["../../src/core/CoherenceJournal.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,7 @@
49
49
  * counters and per-stream status.
50
50
  */
51
51
  import { type JournalEntry, type JournalKind, type JournalFs } from './CoherenceJournal.js';
52
+ import { type ReplicatedKindRegistry } from './ReplicatedRecordEnvelope.js';
52
53
  /** Per-entry size cap on the receive side (§3.4 rule 2). Mirrors the writer's
53
54
  * DEFAULT_MAX_ENTRY_BYTES (source of truth: CoherenceJournal.ts). */
54
55
  export declare const APPLIER_MAX_ENTRY_BYTES: number;
@@ -162,6 +163,15 @@ export interface JournalSyncApplierConfig {
162
163
  fsImpl?: JournalFs;
163
164
  /** Per-entry size cap override. Default APPLIER_MAX_ENTRY_BYTES. */
164
165
  maxEntryBytes?: number;
166
+ /**
167
+ * The replicated-kind registry (WS2 send-side receive half). Injected so the
168
+ * applier can VALIDATE + APPLY a registered `*-record` kind a peer serves —
169
+ * without it, a peer's learning-record would be marked `invalid` and
170
+ * suspect-flag the stream (the receive-only gap). ABSENT ⇒ unchanged behavior
171
+ * (only the 5 lifecycle kinds validate). The registry is the SAME instance the
172
+ * journal writer + the stateSyncReceive advert read (one source of truth).
173
+ */
174
+ replicatedRegistry?: ReplicatedKindRegistry;
165
175
  }
166
176
  export declare class JournalSyncApplier {
167
177
  private readonly stateDir;
@@ -170,12 +180,24 @@ export declare class JournalSyncApplier {
170
180
  private readonly logger?;
171
181
  private readonly io;
172
182
  private readonly maxEntryBytes;
183
+ /** The replicated-kind registry (WS2 send-side receive half). Settable because the
184
+ * applier is constructed before the registry is populated (server.ts boot order);
185
+ * the config option is for tests that have the registry up front. */
186
+ private replicatedRegistry?;
173
187
  /** In-memory meta cache per peer machine (keyed by RAW machineId). */
174
188
  private metaCache;
175
189
  private degradation;
176
190
  private loggedClasses;
177
191
  constructor(config: JournalSyncApplierConfig);
192
+ /** The per-entry byte cap for a kind — RAISED for replicated `*-record` kinds so
193
+ * a fat-but-legal record the writer emitted is not rejected as oversize on
194
+ * receive (must match CoherenceJournal.maxEntryBytesForKind). */
195
+ private maxEntryBytesForKind;
178
196
  getDegradation(): Readonly<ApplierDegradation>;
197
+ /** Inject the replicated-kind registry (WS2 send-side). Called once at wiring time
198
+ * after the concrete stores register, so a peer's registered `*-record` kind
199
+ * validates + applies instead of suspect-flagging the stream. Idempotent. */
200
+ setReplicatedKindRegistry(registry: ReplicatedKindRegistry | undefined): void;
179
201
  /**
180
202
  * What this machine holds per peer stream — `{ machineId → { kind →
181
203
  * { incarnation, lastSeq } } }` — so the caller can compare against a peer's
@@ -1 +1 @@
1
- {"version":3,"file":"JournalSyncApplier.d.ts","sourceRoot":"","sources":["../../src/core/JournalSyncApplier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JournalSyncApplier.d.ts","sourceRoot":"","sources":["../../src/core/JournalSyncApplier.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,8 @@
51
51
  import crypto from 'node:crypto';
52
52
  import fs from 'node:fs';
53
53
  import path from 'node:path';
54
- import { JOURNAL_KINDS, sanitizeMachineId, readTailTolerant, } from './CoherenceJournal.js';
54
+ import { JOURNAL_KINDS, sanitizeMachineId, readTailTolerant, REPLICATED_RECORD_MAX_ENTRY_BYTES, } from './CoherenceJournal.js';
55
+ import { validateReplicatedEnvelope, } from './ReplicatedRecordEnvelope.js';
55
56
  import { SafeFsExecutor } from './SafeFsExecutor.js';
56
57
  // ---- tunables (§3.4) -------------------------------------------------------
57
58
  /** Per-entry size cap on the receive side (§3.4 rule 2). Mirrors the writer's
@@ -96,6 +97,10 @@ export class JournalSyncApplier {
96
97
  logger;
97
98
  io;
98
99
  maxEntryBytes;
100
+ /** The replicated-kind registry (WS2 send-side receive half). Settable because the
101
+ * applier is constructed before the registry is populated (server.ts boot order);
102
+ * the config option is for tests that have the registry up front. */
103
+ replicatedRegistry;
99
104
  /** In-memory meta cache per peer machine (keyed by RAW machineId). */
100
105
  metaCache = new Map();
101
106
  degradation = {
@@ -118,10 +123,25 @@ export class JournalSyncApplier {
118
123
  this.logger = config.logger;
119
124
  this.io = config.fsImpl ?? realFs();
120
125
  this.maxEntryBytes = config.maxEntryBytes ?? APPLIER_MAX_ENTRY_BYTES;
126
+ this.replicatedRegistry = config.replicatedRegistry;
127
+ }
128
+ /** The per-entry byte cap for a kind — RAISED for replicated `*-record` kinds so
129
+ * a fat-but-legal record the writer emitted is not rejected as oversize on
130
+ * receive (must match CoherenceJournal.maxEntryBytesForKind). */
131
+ maxEntryBytesForKind(kind) {
132
+ return this.replicatedRegistry?.isReplicatedKind(kind)
133
+ ? REPLICATED_RECORD_MAX_ENTRY_BYTES
134
+ : this.maxEntryBytes;
121
135
  }
122
136
  getDegradation() {
123
137
  return { ...this.degradation };
124
138
  }
139
+ /** Inject the replicated-kind registry (WS2 send-side). Called once at wiring time
140
+ * after the concrete stores register, so a peer's registered `*-record` kind
141
+ * validates + applies instead of suspect-flagging the stream. Idempotent. */
142
+ setReplicatedKindRegistry(registry) {
143
+ this.replicatedRegistry = registry;
144
+ }
125
145
  // ---- advert state (for delta requests) ---------------------------------
126
146
  /**
127
147
  * What this machine holds per peer stream — `{ machineId → { kind →
@@ -342,7 +362,7 @@ export class JournalSyncApplier {
342
362
  catch {
343
363
  return 'invalid';
344
364
  }
345
- if (Buffer.byteLength(line, 'utf-8') > this.maxEntryBytes)
365
+ if (Buffer.byteLength(line, 'utf-8') > this.maxEntryBytesForKind(kind))
346
366
  return 'invalid';
347
367
  // kind binding — the entry must belong to the stream slice it arrived in.
348
368
  if (entry.kind !== kind)
@@ -380,6 +400,23 @@ export class JournalSyncApplier {
380
400
  return false;
381
401
  const raw = data;
382
402
  const keys = Object.keys(raw);
403
+ // WS2 send-side receive half: a registered replicated `*-record` kind
404
+ // validates through the GENERIC envelope validator + its store schema — the
405
+ // SAME strict discipline the writer applied (reject free text / unknown fields,
406
+ // jail path-shaped fields, validate hlc + observed). Without this branch a
407
+ // peer's learning-record would be `invalid` ⇒ suspect-flag the stream (the
408
+ // receive-only gap). The counters are a no-op here — the applier surfaces
409
+ // receive degradation via its own ApplierDegradation counters / suspect status,
410
+ // not these per-field bumps; we only need the boolean verdict.
411
+ const reg = this.replicatedRegistry?.getByKind(kind);
412
+ if (reg) {
413
+ const noopCounters = {
414
+ bumpSchemaReject: () => { },
415
+ bumpDroppedField: () => { },
416
+ bumpJailReject: () => { },
417
+ };
418
+ return validateReplicatedEnvelope(raw, reg.schema, noopCounters).ok;
419
+ }
383
420
  if (kind === 'topic-placement') {
384
421
  const reasons = ['user-move', 'placed', 'failover', 'released', 'quota-block-move'];
385
422
  if (typeof raw.owner !== 'string' || !raw.owner)