@serfab/cadre-core 1.18.0 → 1.19.1

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 (72) hide show
  1. package/dist/cadre-node.d.ts +65 -2
  2. package/dist/cadre-node.js +120 -4
  3. package/dist/cadre-node.js.map +1 -1
  4. package/dist/control-read-retry.d.ts +19 -16
  5. package/dist/control-read-retry.js +22 -54
  6. package/dist/control-read-retry.js.map +1 -1
  7. package/dist/control-retry.d.ts +50 -6
  8. package/dist/control-retry.js +53 -6
  9. package/dist/control-retry.js.map +1 -1
  10. package/dist/control-write-retry.d.ts +24 -16
  11. package/dist/control-write-retry.js +58 -30
  12. package/dist/control-write-retry.js.map +1 -1
  13. package/dist/edge-node/config.d.ts +8 -2
  14. package/dist/edge-node/config.js +5 -1
  15. package/dist/edge-node/config.js.map +1 -1
  16. package/dist/edge-node/edge-join.js +2 -0
  17. package/dist/edge-node/edge-join.js.map +1 -1
  18. package/dist/edge-node/edge-node.d.ts +10 -0
  19. package/dist/edge-node/edge-node.js +52 -8
  20. package/dist/edge-node/edge-node.js.map +1 -1
  21. package/dist/edge-node/options.d.ts +11 -2
  22. package/dist/edge-node/options.js +11 -4
  23. package/dist/edge-node/options.js.map +1 -1
  24. package/dist/edge-node/platform.d.ts +15 -3
  25. package/dist/edge-node/strands.js +3 -2
  26. package/dist/edge-node/strands.js.map +1 -1
  27. package/dist/index.d.ts +5 -3
  28. package/dist/index.js +7 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/peer-join-backfill.d.ts +8 -11
  31. package/dist/peer-join-backfill.js +22 -35
  32. package/dist/peer-join-backfill.js.map +1 -1
  33. package/dist/self-address-update.d.ts +13 -0
  34. package/dist/self-address-update.js +19 -0
  35. package/dist/self-address-update.js.map +1 -0
  36. package/dist/strand-database.d.ts +56 -0
  37. package/dist/strand-database.js +87 -0
  38. package/dist/strand-database.js.map +1 -1
  39. package/dist/strand-instance-manager.d.ts +67 -2
  40. package/dist/strand-instance-manager.js +105 -4
  41. package/dist/strand-instance-manager.js.map +1 -1
  42. package/dist/strand-membership-reconciler.d.ts +13 -1
  43. package/dist/strand-membership-reconciler.js +23 -14
  44. package/dist/strand-membership-reconciler.js.map +1 -1
  45. package/dist/strand-membership-writer.d.ts +16 -2
  46. package/dist/strand-membership-writer.js +54 -8
  47. package/dist/strand-membership-writer.js.map +1 -1
  48. package/dist/strand-offline.d.ts +131 -0
  49. package/dist/strand-offline.js +142 -0
  50. package/dist/strand-offline.js.map +1 -0
  51. package/dist/types.d.ts +35 -0
  52. package/dist/types.js.map +1 -1
  53. package/package.json +8 -8
  54. package/src/cadre-node.ts +11456 -11326
  55. package/src/control-read-retry.ts +22 -58
  56. package/src/control-retry.ts +54 -6
  57. package/src/control-write-retry.ts +58 -30
  58. package/src/edge-node/config.ts +11 -2
  59. package/src/edge-node/edge-join.ts +1 -0
  60. package/src/edge-node/edge-node.ts +55 -6
  61. package/src/edge-node/options.ts +20 -4
  62. package/src/edge-node/platform.ts +15 -3
  63. package/src/edge-node/strands.ts +3 -2
  64. package/src/index.ts +917 -899
  65. package/src/peer-join-backfill.ts +33 -43
  66. package/src/self-address-update.ts +19 -0
  67. package/src/strand-database.ts +466 -352
  68. package/src/strand-instance-manager.ts +2210 -2092
  69. package/src/strand-membership-reconciler.ts +29 -14
  70. package/src/strand-membership-writer.ts +61 -14
  71. package/src/strand-offline.ts +247 -0
  72. package/src/types.ts +2960 -2926
package/dist/index.js CHANGED
@@ -93,6 +93,11 @@ export { strandFretPeerAddrs } from './strand-fret-addrs.js';
93
93
  export { controlStorageScope, isControlStorageScope, isValidStrandScopeKey, assertStrandScopeKey, InvalidStrandIdError } from './storage-scope.js';
94
94
  // Strand database
95
95
  export { StrandDatabase } from './strand-database.js';
96
+ // Offline mode on strands (`CadreNodeConfig.strandOffline`, `CadreNode.setStrandOfflineMode`,
97
+ // `StrandDatabase.offline`): a commit resolves once the transaction is queued on this machine.
98
+ export { StrandOfflineUnavailableError, StrandQueueNotEmptyError } from './strand-offline.js';
99
+ // What `StrandOfflineQueue.discard` throws, so an app need not depend on Optimystic to tell them apart.
100
+ export { EntryNotDiscardableError, UnknownEntryError } from '@optimystic/db-core';
96
101
  // Strand management
97
102
  export { StrandWatcher } from './strand-watcher.js';
98
103
  export { StrandInstanceManager, getStrandStoragePath, isAwaitingFirstSync, liveStrandStatus } from './strand-instance-manager.js';
@@ -103,7 +108,7 @@ export { StrandAwaitingFirstSyncError, DEFAULT_STRAND_FIRST_SYNC_TIMEOUT_MS, DEF
103
108
  // Peer-join block catch-up (push this network's own blocks to each newly
104
109
  // connected peer, so a late joiner physically holds pre-join blocks). Shared
105
110
  // by the strand networks (ungated) and the control network (membership-gated).
106
- export { PeerJoinBackfill, DEFAULT_PEER_JOIN_BACKFILL, MAX_BLOCK_MESSAGE_BYTES, PEER_JOIN_BACKFILL_WARN_AFTER_FAILURES } from './peer-join-backfill.js';
111
+ export { PeerJoinBackfill, DEFAULT_PEER_JOIN_BACKFILL, PEER_JOIN_BACKFILL_WARN_AFTER_FAILURES } from './peer-join-backfill.js';
107
112
  // Operator opt-in to Optimystic change notifications on chosen strand nodes
108
113
  // (`CadreNodeConfig.strandReactivity`).
109
114
  export { strandCohortTopicOption } from './strand-reactivity.js';
@@ -140,7 +145,7 @@ export { generateStrandMemberKey, strandMemberKeyPair } from './strand-member-ke
140
145
  // manager-admit, member-peer registration, manager rotation, sealing — the sole
141
146
  // manager permanently freezing admission — + shared signing primitives reused
142
147
  // across the flows).
143
- export { signStrandPayload, verifyStrandPayload, signStrandApproval, generateStrandStampId, bootstrapFounderMembership, PreSplitStrandIdentityError, issueInvite, consumeInvite, burnInvite, isStrandMember, cancelInvite, listOutstandingInvites, addMemberByManager, revokeMember, leaveStrand, registerMemberPeer, listMemberPeers, removeMemberPeer, addManager, admitManager, removeManager, sealStrand, isStrandSealed, StrandTransactionBusyError, STRAND_ENGINE, STRAND_ENGINE_VERSION } from './strand-membership-writer.js';
148
+ export { signStrandPayload, verifyStrandPayload, signStrandApproval, generateStrandStampId, bootstrapFounderMembership, PreSplitStrandIdentityError, issueInvite, consumeInvite, burnInvite, isStrandMember, cancelInvite, listOutstandingInvites, addMemberByManager, revokeMember, leaveStrand, registerMemberPeer, listMemberPeers, removeMemberPeer, addManager, admitManager, removeManager, sealStrand, isStrandSealed, StrandTransactionBusyError, StrandOfflineQueueBusyError, STRAND_ENGINE, STRAND_ENGINE_VERSION } from './strand-membership-writer.js';
144
149
  // Engine-canonical datetime helper (shared by control + strand signed-write flows
145
150
  // so a signed timestamp byte-matches the datetime-coerced column the CHECK sees).
146
151
  export { canonicalDatetime } from './canonical-datetime.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,cAAc,YAAY,CAAC;AAE3B,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,uBAAuB;AACvB,OAAO,EAAE,SAAS,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAEzG,wFAAwF;AACxF,uDAAuD;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,kFAAkF;AAClF,qFAAqF;AACrF,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEvF,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,eAAe,EAA4a,MAAM,uBAAuB,CAAC;AAEt6B,gGAAgG;AAChG,mGAAmG;AACnG,eAAe;AACf,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAC1H,OAAO,EAAE,6BAA6B,EAAoC,MAAM,6BAA6B,CAAC;AAE9G,+EAA+E;AAC/E,qFAAqF;AACrF,yCAAyC;AACzC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EAElB,MAAM,0BAA0B,CAAC;AAElC,gFAAgF;AAChF,yFAAyF;AACzF,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,gBAAgB,EAEjB,MAAM,yBAAyB,CAAC;AAWjC,2FAA2F;AAC3F,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,mBAAmB,EAAyJ,MAAM,4BAA4B,CAAC;AAEtS,2DAA2D;AAC3D,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,2BAA2B,EAAuB,MAAM,kBAAkB,CAAC;AAEtM,2EAA2E;AAC3E,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EAGrB,MAAM,gBAAgB,CAAC;AAExB,2FAA2F;AAC3F,4FAA4F;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,8EAA8E;AAC9E,sCAAsC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,0FAA0F;AAC1F,0FAA0F;AAC1F,oFAAoF;AACpF,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EAI1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,8BAA8B,EAC9B,mBAAmB,EAKpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,kBAAkB,EAInB,MAAM,sBAAsB,CAAC;AAE9B,2EAA2E;AAC3E,+EAA+E;AAC/E,2EAA2E;AAC3E,6CAA6C;AAC7C,mEAAmE;AACnE,wDAAwD;AACxD,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAG5B,MAAM,0BAA0B,CAAC;AAQlC,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,8EAA8E;AAC9E,kDAAkD;AAClD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAG7B,MAAM,2BAA2B,CAAC;AAEnC,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,2EAA2E;AAC3E,2DAA2D;AAC3D,iFAAiF;AACjF,+EAA+E;AAC/E,oDAAoD;AACpD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAE/B,MAAM,6BAA6B,CAAC;AAErC,uFAAuF;AACvF,0EAA0E;AAC1E,uFAAuF;AACvF,oEAAoE;AACpE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAG1B,MAAM,0BAA0B,CAAC;AAElC,uFAAuF;AACvF,wFAAwF;AACxF,oFAAoF;AACpF,uFAAuF;AACvF,sFAAsF;AACtF,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAE9B,MAAM,2BAA2B,CAAC;AACnC,wFAAwF;AACxF,qFAAqF;AACrF,kEAAkE;AAClE,OAAO,EAAE,mBAAmB,EAAyC,MAAM,wBAAwB,CAAC;AAEpG,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,kFAAkF;AAClF,uEAAuE;AACvE,0DAA0D;AAC1D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAyD,MAAM,sBAAsB,CAAC;AAG7G,8FAA8F;AAC9F,+FAA+F;AAC/F,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EAUzB,MAAM,qBAAqB,CAAC;AAC7B,wGAAwG;AACxG,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElF,oBAAoB;AACpB,OAAO,EACL,aAAa,EAKd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EAGrB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,kFAAkF;AAClF,sFAAsF;AACtF,kEAAkE;AAClE,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,EACpC,qCAAqC,EAEtC,MAAM,6BAA6B,CAAC;AAErC,yEAAyE;AACzE,6EAA6E;AAC7E,+EAA+E;AAC/E,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,sCAAsC,EAKvC,MAAM,yBAAyB,CAAC;AAEjC,4EAA4E;AAC5E,wCAAwC;AACxC,OAAO,EAAE,uBAAuB,EAA+B,MAAM,wBAAwB,CAAC;AAE9F,4EAA4E;AAC5E,6EAA6E;AAC7E,0EAA0E;AAC1E,2CAA2C;AAC3C,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,EACxB,8BAA8B,EAC9B,2BAA2B,EAC3B,iCAAiC,EAOlC,MAAM,iCAAiC,CAAC;AAEzC,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,yEAAyE;AACzE,OAAO,EACL,0BAA0B,EAC1B,wCAAwC,EACxC,6BAA6B,EAC7B,8BAA8B,EAI/B,MAAM,mCAAmC,CAAC;AAE3C,uFAAuF;AACvF,8FAA8F;AAC9F,OAAO,EAAE,uBAAuB,EAAyB,MAAM,wBAAwB,CAAC;AAExF,cAAc;AACd,OAAO,EACL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAE7B,aAAa;AACb,OAAO,EACL,iBAAiB,EAGlB,MAAM,iBAAiB,CAAC;AAEzB,sBAAsB;AACtB,OAAO,EACL,yBAAyB,EACzB,uCAAuC,EAUxC,MAAM,0BAA0B,CAAC;AAElC,wFAAwF;AACxF,yFAAyF;AACzF,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EAMvB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,uEAAuE;AACvE,2EAA2E;AAC3E,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,EACb,qBAAqB,EAmBtB,MAAM,+BAA+B,CAAC;AAEvC,kFAAkF;AAClF,kFAAkF;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wEAAwE;AACxE,sEAAsE;AACtE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EAE1B,MAAM,6BAA6B,CAAC;AAErC,iBAAiB;AACjB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,eAAe,EACf,UAAU,EAGX,MAAM,qBAAqB,CAAC;AAE7B,wEAAwE;AACxE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EAE1B,MAAM,yBAAyB,CAAC;AAEjC,sFAAsF;AACtF,2FAA2F;AAC3F,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAsD,MAAM,wBAAwB,CAAC;AAE/G,mDAAmD;AACnD,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,2BAA2B,EAG5B,MAAM,2BAA2B,CAAC;AAEnC,4EAA4E;AAC5E,4FAA4F;AAC5F,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EAMrB,MAAM,2BAA2B,CAAC;AAEnC,gFAAgF;AAChF,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,gCAAgC,EACjC,MAAM,kBAAkB,CAAC;AAE1B,uFAAuF;AACvF,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,sFAAsF;AACtF,OAAO,EAAE,gBAAgB,EAA0B,MAAM,0BAA0B,CAAC;AAWpF,mFAAmF;AACnF,iFAAiF;AACjF,iFAAiF;AACjF,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjG,oFAAoF;AACpF,gFAAgF;AAChF,wEAAwE;AACxE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,kBAAkB,CAAC;AAE1B,8EAA8E;AAC9E,kFAAkF;AAClF,OAAO,EACL,wBAAwB,EACxB,mCAAmC,EACnC,oCAAoC,EACpC,wBAAwB,EAGzB,MAAM,qBAAqB,CAAC;AAE7B,6EAA6E;AAC7E,kFAAkF;AAClF,kFAAkF;AAClF,yEAAyE;AACzE,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,sCAAsC,EACtC,kDAAkD,EAClD,oCAAoC,EACpC,wBAAwB,EAGzB,MAAM,gBAAgB,CAAC;AAExB,8FAA8F;AAC9F,+FAA+F;AAC/F,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAElB,wBAAwB,EACxB,oBAAoB,EAErB,MAAM,kBAAkB,CAAC;AAE1B,sDAAsD;AACtD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EAKvB,MAAM,wBAAwB,CAAC;AAEhC,oFAAoF;AACpF,qFAAqF;AACrF,wEAAwE;AACxE,kFAAkF;AAClF,wFAAwF;AACxF,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B,uFAAuF;AACvF,uFAAuF;AACvF,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EAI1B,MAAM,yBAAyB,CAAC;AAEjC,4FAA4F;AAC5F,4FAA4F;AAC5F,4FAA4F;AAC5F,uDAAuD;AACvD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EAOzB,MAAM,kBAAkB,CAAC;AAE1B,8FAA8F;AAC9F,mGAAmG;AACnG,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,+BAA+B,EAGhC,MAAM,yBAAyB,CAAC;AAEjC,2FAA2F;AAC3F,mFAAmF;AACnF,0FAA0F;AAC1F,2FAA2F;AAC3F,yFAAyF;AACzF,uDAAuD;AACvD,cAAc,qBAAqB,CAAC;AAEpC,sBAAsB;AACtB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,0DAA0D;AAC1D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EAYnB,MAAM,gCAAgC,CAAC;AACxC,oFAAoF;AACpF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAIjB,MAAM,sBAAsB,CAAC;AAC9B,sFAAsF;AACtF,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,EAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAA2B,MAAM,iCAAiC,CAAC;AAC9F,+FAA+F;AAC/F,6EAA6E;AAC7E,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,gCAAgC,EAChC,0BAA0B,EAc3B,MAAM,4BAA4B,CAAC;AACpC,0FAA0F;AAC1F,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,EAW1B,MAAM,2BAA2B,CAAC;AACnC,4DAA4D;AAC5D,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,0BAA0B,EAQ3B,MAAM,wBAAwB,CAAC;AAChC,0GAA0G;AAC1G,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,0BAA0B,EAC1B,kCAAkC,EACnC,MAAM,2BAA2B,CAAC;AACnC,8FAA8F;AAC9F,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEtH,yDAAyD;AACzD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,oCAAoC,EACpC,oCAAoC,EAKrC,MAAM,+BAA+B,CAAC;AAEvC,kFAAkF;AAClF,OAAO,EACL,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AAErC,wEAAwE;AACxE,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,sCAAsC,EACtC,mCAAmC,EACnC,6BAA6B,EAG9B,MAAM,kCAAkC,CAAC;AAE1C,iFAAiF;AACjF,iFAAiF;AACjF,mFAAmF;AACnF,sFAAsF;AACtF,uFAAuF;AACvF,yEAAyE;AACzE,EAAE;AACF,qFAAqF;AACrF,qFAAqF;AACrF,uFAAuF;AACvF,wFAAwF;AACxF,wFAAwF;AACxF,YAAY;AACZ,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAC;AACnF,yFAAyF;AACzF,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAmB,MAAM,iBAAiB,CAAC;AACrG,2FAA2F;AAC3F,8FAA8F;AAC9F,+EAA+E;AAC/E,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,8BAA8B,EAG/B,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,0EAA0E;AAC1E,6BAA6B;AAC7B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,gCAAgC,EAChC,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAM7B,MAAM,wBAAwB,CAAC;AAEhC,2EAA2E;AAC3E,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EAMzB,MAAM,kCAAkC,CAAC"}
@@ -1,14 +1,7 @@
1
1
  import type { Libp2p, PeerId } from '@libp2p/interface';
2
- import type { IPeerNetwork } from '@optimystic/db-core';
2
+ import { type IPeerNetwork } from '@optimystic/db-core';
3
3
  import { BlockTransferClient, type IRawStorage } from '@optimystic/db-p2p';
4
4
  import type { Libp2pNodeWithRepo } from './types.js';
5
- /**
6
- * The block-transfer protocol's hard cap on one length-prefixed message. Mirrors
7
- * `MAX_BLOCK_MESSAGE_BYTES` in `@optimystic/db-p2p`'s `protocol-limits.ts` (8 MiB), which
8
- * that package does not re-export from its index — keep the two in sync if upstream ever
9
- * changes it or starts exporting it.
10
- */
11
- export declare const MAX_BLOCK_MESSAGE_BYTES: number;
12
5
  /**
13
6
  * Consecutive failed catch-up runs against ONE peer before the module says so on
14
7
  * `console.warn` rather than only in its DEBUG log. At the default backoff that is reached
@@ -27,7 +20,11 @@ export interface PeerJoinBackfillConfig {
27
20
  debounceMs?: number;
28
21
  /** Ceiling on blocks copied in one catch-up. Default 10_000. Reaching it is LOGGED, never silent. */
29
22
  maxBlocks?: number;
30
- /** Soft byte budget per push message. Default 1 MiB. Protocol hard cap is {@link MAX_BLOCK_MESSAGE_BYTES} (8 MiB). */
23
+ /**
24
+ * Soft byte budget per push message, as the sum of its blocks' `jsonEncodedBytes` (the form they
25
+ * travel in). Default 1 MiB. A single block over it still ships alone; one over `MAX_BLOCK_BYTES`
26
+ * never ships (see {@link PeerJoinBackfillResult.oversized}).
27
+ */
31
28
  maxChunkBytes?: number;
32
29
  /** Max blocks per push message. Default 64. */
33
30
  maxChunkBlocks?: number;
@@ -116,7 +113,7 @@ export interface PeerJoinBackfillResult {
116
113
  unmaterialized: number;
117
114
  /** Not attempted because `maxBlocks` was reached. */
118
115
  capped: number;
119
- /** Skipped: a single block whose wire size alone exceeds {@link MAX_BLOCK_MESSAGE_BYTES}. */
116
+ /** Skipped: a block whose `jsonEncodedBytes` exceeds db-core's per-block limit, `MAX_BLOCK_BYTES`. */
120
117
  oversized: string[];
121
118
  /** True when the `authorizePeer` gate refused (or threw) — nothing was pushed, peer not memoized. */
122
119
  denied: boolean;
@@ -288,7 +285,7 @@ export declare class PeerJoinBackfill {
288
285
  /**
289
286
  * Read one block for the push to `key`, or count why it is skipped in `result` and return
290
287
  * nothing: not committed, already held by the peer (memo or its own commit signature), not
291
- * materialized, or too large for one message. The proof is read for EXACTLY the revision the
288
+ * materialized, or over the per-block size limit. The proof is read for EXACTLY the revision the
292
289
  * meta will name, from the same `latest`; absent is normal (nothing retained a proof for that
293
290
  * revision), and the block still ships with its meta for the receiver to decide.
294
291
  */
@@ -1,4 +1,5 @@
1
1
  import debug from 'debug';
2
+ import { jsonEncodedBytes, MAX_BLOCK_BYTES } from '@optimystic/db-core';
2
3
  import { BlockTransferClient, buildBlockTransferProtocol } from '@optimystic/db-p2p';
3
4
  import { peerJoinPushBudget } from './link-budget.js';
4
5
  // Peer-join whole-store block catch-up, shared by the STRAND networks and the CONTROL
@@ -177,14 +178,6 @@ import { peerJoinPushBudget } from './link-budget.js';
177
178
  // `forgetCaughtUp`). One dial, not a recurring one; if a node ever holds many transient peers,
178
179
  // clear the pending timer in that handler.
179
180
  const log = debug('sereus:cadre:peer-join-backfill');
180
- const blockEncoder = new TextEncoder();
181
- /**
182
- * The block-transfer protocol's hard cap on one length-prefixed message. Mirrors
183
- * `MAX_BLOCK_MESSAGE_BYTES` in `@optimystic/db-p2p`'s `protocol-limits.ts` (8 MiB), which
184
- * that package does not re-export from its index — keep the two in sync if upstream ever
185
- * changes it or starts exporting it.
186
- */
187
- export const MAX_BLOCK_MESSAGE_BYTES = 8 * 1024 * 1024;
188
181
  /**
189
182
  * Whether an identified peer's protocol list names this network's own block-transfer
190
183
  * protocol — the one gate that decides whether {@link PeerJoinBackfill} schedules a peer at
@@ -237,12 +230,8 @@ function recordReply(memo, revs, ids, missing) {
237
230
  verdicts.set(id, Math.max(verdicts.get(id) ?? -Infinity, rev));
238
231
  }
239
232
  }
240
- /**
241
- * Base64 wire size of a raw buffer — `pushBlocks` base64-encodes each block into the JSON
242
- * request, so the protocol cap must be judged against the encoded size, not the raw bytes.
243
- */
244
- function base64WireBytes(rawBytes) {
245
- return Math.ceil(rawBytes / 3) * 4;
233
+ function emptyChunk() {
234
+ return { blocks: {}, meta: {}, proofs: {}, bytes: 0 };
246
235
  }
247
236
  /**
248
237
  * Copies every block in one network's own raw store to each peer its libp2p node connects
@@ -646,7 +635,7 @@ export class PeerJoinBackfill {
646
635
  }
647
636
  const client = this.createPushClient(peerId);
648
637
  const memo = this.memoFor(key);
649
- let chunk = { ids: [], buffers: [], meta: {}, proofs: {}, bytes: 0 };
638
+ let chunk = emptyChunk();
650
639
  let chunkFailed = false;
651
640
  let anyChunkDelivered = false;
652
641
  /**
@@ -657,14 +646,15 @@ export class PeerJoinBackfill {
657
646
  */
658
647
  const peerUnreachable = () => chunkFailed && !anyChunkDelivered;
659
648
  const flush = async () => {
660
- if (chunk.ids.length === 0)
649
+ const { blocks, meta, proofs } = chunk;
650
+ const ids = Object.keys(blocks);
651
+ if (ids.length === 0)
661
652
  return;
662
- const { ids, buffers, meta, proofs } = chunk;
663
- chunk = { ids: [], buffers: [], meta: {}, proofs: {}, bytes: 0 };
653
+ chunk = emptyChunk();
664
654
  try {
665
655
  // ONE certification value rather than two arguments, so a caller cannot pair a proof
666
656
  // for one revision with meta for another — both were written from the same `latest`.
667
- const response = await client.pushBlocks(ids, buffers, 'replication', { blockMeta: meta, blockProofs: proofs }, {
657
+ const response = await client.pushBlocks(blocks, 'replication', { blockMeta: meta, blockProofs: proofs }, {
668
658
  dialTimeoutMs: this.config.dialTimeoutMs,
669
659
  responseTimeoutMs: this.config.responseTimeoutMs
670
660
  });
@@ -703,19 +693,19 @@ export class PeerJoinBackfill {
703
693
  continue;
704
694
  // Flush before adding when this block would overflow either budget. A single block
705
695
  // larger than maxChunkBytes still ships — alone, in its own chunk.
706
- if (chunk.ids.length > 0
707
- && (chunk.ids.length + 1 > this.config.maxChunkBlocks || chunk.bytes + offer.buffer.length > this.config.maxChunkBytes)) {
696
+ const inChunk = Object.keys(chunk.blocks).length;
697
+ if (inChunk > 0
698
+ && (inChunk + 1 > this.config.maxChunkBlocks || chunk.bytes + offer.bytes > this.config.maxChunkBytes)) {
708
699
  await flush();
709
700
  if (this.stopped || peerUnreachable())
710
701
  break;
711
702
  }
712
- chunk.ids.push(blockId);
713
- chunk.buffers.push(offer.buffer);
703
+ chunk.blocks[blockId] = offer.block;
714
704
  chunk.meta[blockId] = { rev: offer.latest.rev, actionId: offer.latest.actionId };
715
705
  if (offer.proof) {
716
706
  chunk.proofs[blockId] = offer.proof;
717
707
  }
718
- chunk.bytes += offer.buffer.length;
708
+ chunk.bytes += offer.bytes;
719
709
  result.offered += 1;
720
710
  }
721
711
  if (!this.stopped && !peerUnreachable()) {
@@ -729,7 +719,7 @@ export class PeerJoinBackfill {
729
719
  /**
730
720
  * Read one block for the push to `key`, or count why it is skipped in `result` and return
731
721
  * nothing: not committed, already held by the peer (memo or its own commit signature), not
732
- * materialized, or too large for one message. The proof is read for EXACTLY the revision the
722
+ * materialized, or over the per-block size limit. The proof is read for EXACTLY the revision the
733
723
  * meta will name, from the same `latest`; absent is normal (nothing retained a proof for that
734
724
  * revision), and the block still ships with its meta for the receiver to decide.
735
725
  */
@@ -761,19 +751,16 @@ export class PeerJoinBackfill {
761
751
  log('[%s] block=%s has latest rev %d but no materialized content; skipped', this.deps.label, blockId, latest.rev);
762
752
  return undefined;
763
753
  }
764
- const buffer = blockEncoder.encode(JSON.stringify(block));
765
- // NOTE: MAX_BLOCK_MESSAGE_BYTES caps the whole framed request, not one block, and
766
- // this test ignores the request envelope (ids array, blockMeta, JSON punctuation).
767
- // A lone block within a few KiB of the cap therefore still ships and is rejected by
768
- // the receiver's length-prefix decoder — a permanent chunk failure for that peer. No
769
- // block comes close today; if one ever can, subtract a measured envelope allowance
770
- // here rather than raising the cap.
771
- if (base64WireBytes(buffer.length) >= MAX_BLOCK_MESSAGE_BYTES) {
754
+ // A writer refuses a block over MAX_BLOCK_BYTES, and Optimystic sizes the push frame to carry
755
+ // one block at that limit with its meta and proof. A block past the limit grew some other way
756
+ // and may not fit the frame, and a push that does not fit fails on every run.
757
+ const bytes = jsonEncodedBytes(block);
758
+ if (bytes > MAX_BLOCK_BYTES) {
772
759
  result.oversized.push(blockId);
773
- log('[%s] block=%s is %d bytes (%d on the wire) — exceeds the %d-byte protocol cap alone; skipped', this.deps.label, blockId, buffer.length, base64WireBytes(buffer.length), MAX_BLOCK_MESSAGE_BYTES);
760
+ log('[%s] block=%s encodes to %d bytes, over the %d-byte per-block limit; skipped', this.deps.label, blockId, bytes, MAX_BLOCK_BYTES);
774
761
  return undefined;
775
762
  }
776
- return { latest, buffer, proof };
763
+ return { latest, block, bytes, proof };
777
764
  }
778
765
  }
779
766
  //# sourceMappingURL=peer-join-backfill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer-join-backfill.js","sourceRoot":"","sources":["../src/peer-join-backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer-join-backfill.js","sourceRoot":"","sources":["../src/peer-join-backfill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { PeerUpdate } from '@libp2p/interface';
2
+ /**
3
+ * Whether a libp2p `self:peer:update` changed the node's own addresses — the only part of
4
+ * the update the self record (`CadrePeer.Multiaddr`) carries.
5
+ *
6
+ * libp2p emits the event for any change to the node's own peer-store entry, and registering
7
+ * or unregistering a protocol handler is one (the registrar merges the node's protocol list).
8
+ * Cadre registers handlers on a running control node (member redemption, strand formation,
9
+ * the seed listener), so reacting to every event would make each of those a consensus write
10
+ * of an unchanged record, racing whatever write the cohort is making to `CadrePeer` at the
11
+ * time. An update with no `previous` is treated as a change: there is nothing to compare.
12
+ */
13
+ export declare function selfAddressesChanged(update: PeerUpdate): boolean;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Whether a libp2p `self:peer:update` changed the node's own addresses — the only part of
3
+ * the update the self record (`CadrePeer.Multiaddr`) carries.
4
+ *
5
+ * libp2p emits the event for any change to the node's own peer-store entry, and registering
6
+ * or unregistering a protocol handler is one (the registrar merges the node's protocol list).
7
+ * Cadre registers handlers on a running control node (member redemption, strand formation,
8
+ * the seed listener), so reacting to every event would make each of those a consensus write
9
+ * of an unchanged record, racing whatever write the cohort is making to `CadrePeer` at the
10
+ * time. An update with no `previous` is treated as a change: there is nothing to compare.
11
+ */
12
+ export function selfAddressesChanged(update) {
13
+ if (update.previous === undefined)
14
+ return true;
15
+ const before = new Set(update.previous.addresses.map((address) => address.multiaddr.toString()));
16
+ const after = update.peer.addresses.map((address) => address.multiaddr.toString());
17
+ return after.length !== before.size || after.some((address) => !before.has(address));
18
+ }
19
+ //# sourceMappingURL=self-address-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-address-update.js","sourceRoot":"","sources":["../src/self-address-update.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACtF,CAAC"}
@@ -2,9 +2,11 @@ import { Database } from '@quereus/quereus';
2
2
  import type { SereusPluginResult } from '@serfab/quereus-plugin-sereus';
3
3
  import type { Libp2p } from '@libp2p/interface';
4
4
  import type { IRepo } from '@optimystic/db-core';
5
+ import type { IKVStore } from '@optimystic/db-p2p';
5
6
  import type { SAppConfig } from './types.js';
6
7
  import type { StrandCommitDurability, StrandCommitListeners } from './strand-commit-durability.js';
7
8
  import type { TableChangeWatch, TableChangeWatchOptions } from './table-change-watch.js';
9
+ import type { StrandAppSchemaState, StrandOfflineListeners, StrandOfflineMode, StrandOfflineQueue } from './strand-offline.js';
8
10
  export interface StrandDatabaseConfig extends StrandCommitListeners {
9
11
  /** The strand ID */
10
12
  strandId: string;
@@ -54,6 +56,24 @@ export interface StrandDatabaseConfig extends StrandCommitListeners {
54
56
  * fixture that hand-drives the membership writers sees only the rows it wrote. Defaults to false.
55
57
  */
56
58
  bindFounderPeer?: boolean;
59
+ /**
60
+ * Turn on the connection's offline queue (docs/strands.md → "Offline mode"). Absent: no queue,
61
+ * and {@link StrandDatabase.offline} is undefined.
62
+ */
63
+ offline?: StrandDatabaseOffline;
64
+ }
65
+ /** {@link StrandDatabaseConfig.offline}: one build's journal, the strand's mode, and where to report. */
66
+ export interface StrandDatabaseOffline extends StrandOfflineListeners {
67
+ /**
68
+ * This build's journal, resolved by {@link StrandDatabase.initialize}, so a launch released while
69
+ * it resolves is caught like one released during the rest of the build. A throw fails initialize.
70
+ */
71
+ journal: () => IKVStore | Promise<IKVStore>;
72
+ /**
73
+ * The strand's mode, read at the end of {@link StrandDatabase.initialize} and at every
74
+ * {@link StrandDatabase.applyOfflineMode}, never captured, so the newest choice wins.
75
+ */
76
+ mode: () => StrandOfflineMode;
57
77
  }
58
78
  /**
59
79
  * StrandDatabase manages the sApp schema for a strand using Quereus with the
@@ -80,6 +100,8 @@ export declare class StrandDatabase {
80
100
  private initialized;
81
101
  private readonly commits;
82
102
  private unsubscribeCommits;
103
+ private offlineQueue;
104
+ private offlineReport;
83
105
  /** Subscriptions handed out by {@link watchTables}. */
84
106
  private readonly tableWatches;
85
107
  constructor(config: StrandDatabaseConfig);
@@ -90,6 +112,19 @@ export declare class StrandDatabase {
90
112
  */
91
113
  initialize(): Promise<void>;
92
114
  private subscribeToCommits;
115
+ private followOffline;
116
+ /**
117
+ * Put the queue in the strand's current mode ({@link StrandDatabaseOffline.mode}). It sets the
118
+ * acknowledgement of transactions begun from now on; an open one keeps the one it began with.
119
+ * No-op without a queue, and before {@link initialize} has composed one (it applies the mode itself).
120
+ */
121
+ applyOfflineMode(): void;
122
+ /**
123
+ * The database was handed to the app (`StrandInstanceManager.publishDatabase`): report the
124
+ * queue's state, since restored transactions' `queued` statuses were delivered before anything
125
+ * subscribed, and an `App` schema apply still waiting for the queue.
126
+ */
127
+ reportPublished(): void;
93
128
  /**
94
129
  * Run the founder membership bootstrap against the freshly-composed strand DB.
95
130
  *
@@ -163,6 +198,27 @@ export declare class StrandDatabase {
163
198
  * snapshot: read again after `strand:commit-held` to see the change.
164
199
  */
165
200
  commitDurability(transactionId: string): StrandCommitDurability | undefined;
201
+ /**
202
+ * The strand connection's offline queue (docs/strands.md → "Offline mode"), or `undefined` on a
203
+ * node without `strandOffline`. The mode is set through `CadreNode.setStrandOfflineMode`, which
204
+ * outlives this database; listeners taken here die with it, as {@link watchTables} subscriptions do.
205
+ */
206
+ get offline(): StrandOfflineQueue | undefined;
207
+ /**
208
+ * Whether this database runs the `App` schema its launch was given. `'waiting-for-queue'` while
209
+ * queued transactions hold the apply back, so `StrandInstance.sAppInfo` names a version whose new
210
+ * tables or columns are not here yet; check this before relying on them.
211
+ */
212
+ appSchemaState(): StrandAppSchemaState;
213
+ /**
214
+ * The transaction ids the offline queue lists (`entries()`, the ones a restore has not put back
215
+ * yet included), or `undefined` with no queue: none configured, not composed yet, or closed.
216
+ * Unlike {@link offline} it does not require {@link initialize} to have finished, so the manager
217
+ * can read a database still being built or about to close.
218
+ */
219
+ queuedTransactionIds(): readonly string[] | undefined;
220
+ /** {@link discardQueued} on this database's queue; `undefined` with no queue, as {@link queuedTransactionIds}. */
221
+ discardQueuedTransactions(): readonly string[] | undefined;
166
222
  /**
167
223
  * The Optimystic transactor this strand's connection resolved to — always
168
224
  * `'network'` here, since cadre-core passes no `transactor` option and takes