instar 1.3.369 → 1.3.371

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 (42) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +40 -1
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +3 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/CoherenceJournal.d.ts +12 -1
  8. package/dist/core/CoherenceJournal.d.ts.map +1 -1
  9. package/dist/core/CoherenceJournal.js +38 -2
  10. package/dist/core/CoherenceJournal.js.map +1 -1
  11. package/dist/core/JournalSyncApplier.d.ts.map +1 -1
  12. package/dist/core/JournalSyncApplier.js +16 -0
  13. package/dist/core/JournalSyncApplier.js.map +1 -1
  14. package/dist/core/PoolActivityView.d.ts +87 -0
  15. package/dist/core/PoolActivityView.d.ts.map +1 -0
  16. package/dist/core/PoolActivityView.js +146 -0
  17. package/dist/core/PoolActivityView.js.map +1 -0
  18. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  19. package/dist/core/PostUpdateMigrator.js +16 -0
  20. package/dist/core/PostUpdateMigrator.js.map +1 -1
  21. package/dist/scaffold/templates.d.ts.map +1 -1
  22. package/dist/scaffold/templates.js +4 -0
  23. package/dist/scaffold/templates.js.map +1 -1
  24. package/dist/server/routes.d.ts.map +1 -1
  25. package/dist/server/routes.js +56 -1
  26. package/dist/server/routes.js.map +1 -1
  27. package/dist/threadline/ConversationMeshView.d.ts +50 -0
  28. package/dist/threadline/ConversationMeshView.d.ts.map +1 -0
  29. package/dist/threadline/ConversationMeshView.js +78 -0
  30. package/dist/threadline/ConversationMeshView.js.map +1 -0
  31. package/dist/threadline/ConversationStore.d.ts +17 -0
  32. package/dist/threadline/ConversationStore.d.ts.map +1 -1
  33. package/dist/threadline/ConversationStore.js +52 -0
  34. package/dist/threadline/ConversationStore.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/data/builtin-manifest.json +63 -63
  37. package/src/scaffold/templates.ts +4 -0
  38. package/upgrades/1.3.370.md +38 -0
  39. package/upgrades/1.3.371.md +62 -0
  40. package/upgrades/side-effects/pool-activity-view-p4.md +54 -0
  41. package/upgrades/side-effects/reflex-placement-fallback.md +57 -0
  42. package/upgrades/side-effects/threadline-conversation-kind-p3.md +83 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6SH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuxDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqgTtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6SH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuxDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4iTtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
@@ -7481,6 +7481,15 @@ export async function startServer(options) {
7481
7481
  // (below), upstream of all three routing branches, with turn/novelty state
7482
7482
  // living on the Conversation (the one-shot worker can't self-police a loop).
7483
7483
  const conversationStore = new ConversationStore(config.stateDir);
7484
+ // P3 (THREADLINE-CONVERSATION-COHERENCE-SPEC §3.1): the lifecycle
7485
+ // emission seam — the store's commit() transition-diff drives the
7486
+ // journal's 4th kind. Harmless when the journal is absent/locked-out
7487
+ // (emit drops + counts); replication of the kind rides the existing
7488
+ // gate like every other kind.
7489
+ if (coherenceJournal) {
7490
+ const cj = coherenceJournal;
7491
+ conversationStore.setCoherenceJournalSeam((d) => cj.emitThreadlineConversation(d));
7492
+ }
7484
7493
  const warrantsReplyGate = new WarrantsReplyGate({ intelligence: sharedIntelligence });
7485
7494
  // CMT-509 §2: surface PARENTLESS Threadline conversations into a single
7486
7495
  // dedicated topic so a peer reaching out cold is visible (not an invisible
@@ -10113,6 +10122,27 @@ export async function startServer(options) {
10113
10122
  if (pin?.pinned && pin.preferredMachine === wsSelf) {
10114
10123
  return { owner: wsSelf, epoch: 0 };
10115
10124
  }
10125
+ // Issue #930 (live, v1.3.369): the pin store is ROUTER-local —
10126
+ // on the pinned-TO machine it is empty, so #926's fallback
10127
+ // never fires there. Second fallback: the newest
10128
+ // topic-placement JOURNAL entry (own + replica — the entry is
10129
+ // emitted at the router's CAS chokepoint, the strongest
10130
+ // placement evidence reachable here). Admitting a READ-ONLY,
10131
+ // jailed, hash-verified, never-clobber pull off it is not the
10132
+ // kill/spawn/move class the journal-actuation ban guards, and
10133
+ // nomination already runs on replica evidence by design; the
10134
+ // per-write stillCurrent recheck still aborts on a real claim.
10135
+ try {
10136
+ const placement = wsReader2
10137
+ .query({ kind: 'topic-placement', topic, limit: 1 })
10138
+ .entries[0];
10139
+ const pd = placement?.data;
10140
+ if (pd?.owner === wsSelf && typeof pd.epoch === 'number') {
10141
+ return { owner: wsSelf, epoch: pd.epoch };
10142
+ }
10143
+ }
10144
+ catch { /* @silent-fallback-ok: missing placement evidence simply means no fallback ownership — the reflex answers not-owner honestly (WORKING-SET-HANDOFF-SPEC §3.3) */
10145
+ }
10116
10146
  return { owner: null, epoch: null };
10117
10147
  };
10118
10148
  workingSetPullCoordinator = new wscMod.WorkingSetPullCoordinator({
@@ -10473,7 +10503,16 @@ export async function startServer(options) {
10473
10503
  if (res.ok && res.result && typeof res.result === 'object') {
10474
10504
  const cap = res.result;
10475
10505
  const journalAdvert = _unwrapPeerJournalAdvert(machineId, cap.journalAdvert);
10476
- return { selfReportedLastSeen: cap.selfReportedLastSeen, loadAvg: cap.loadAvg, journalAdvert };
10506
+ // #930 sibling (live, v1.3.369): the commitments advert was
10507
+ // parsed AWAY here — served by the peer, dropped by this
10508
+ // narrowing return — so driveCommitmentsSync never fired and
10509
+ // zero replicas ever landed. Pass it through.
10510
+ return {
10511
+ selfReportedLastSeen: cap.selfReportedLastSeen,
10512
+ loadAvg: cap.loadAvg,
10513
+ journalAdvert,
10514
+ ...(cap.commitmentsAdvert ? { commitmentsAdvert: cap.commitmentsAdvert } : {}),
10515
+ };
10477
10516
  }
10478
10517
  return null;
10479
10518
  },