@pkcprotocol/pkc-js 0.0.72 → 0.0.74

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 (114) hide show
  1. package/README.md +1 -0
  2. package/dist/browser/clients/base-client-manager.d.ts +1 -0
  3. package/dist/browser/clients/base-client-manager.js +9 -2
  4. package/dist/browser/clients/base-client-manager.js.map +1 -1
  5. package/dist/browser/clients/rpc-client/rpc-schema-util.d.ts +1 -0
  6. package/dist/browser/clients/rpc-client/schema.d.ts +1 -0
  7. package/dist/browser/community/community-client-manager.d.ts +1 -0
  8. package/dist/browser/community/community-client-manager.js +7 -0
  9. package/dist/browser/community/community-client-manager.js.map +1 -1
  10. package/dist/browser/community/remote-community.js +18 -9
  11. package/dist/browser/community/remote-community.js.map +1 -1
  12. package/dist/browser/community/schema.d.ts +6 -0
  13. package/dist/browser/community/schema.js +4 -1
  14. package/dist/browser/community/schema.js.map +1 -1
  15. package/dist/browser/community/types.d.ts +1 -0
  16. package/dist/browser/errors.d.ts +2 -0
  17. package/dist/browser/errors.js +2 -0
  18. package/dist/browser/errors.js.map +1 -1
  19. package/dist/browser/generated-version.d.ts +1 -1
  20. package/dist/browser/generated-version.js +1 -1
  21. package/dist/browser/pkc-error.d.ts +1 -1
  22. package/dist/browser/publications/community-edit/schema.d.ts +4 -0
  23. package/dist/browser/publications/publication.d.ts +2 -1
  24. package/dist/browser/publications/publication.js +63 -24
  25. package/dist/browser/publications/publication.js.map +1 -1
  26. package/dist/browser/pubsub-messages/schema.d.ts +2 -0
  27. package/dist/browser/runtime/node/community/db-handler.d.ts +1 -0
  28. package/dist/browser/runtime/node/community/db-handler.js +9 -1
  29. package/dist/browser/runtime/node/community/db-handler.js.map +1 -1
  30. package/dist/browser/runtime/node/community/local-community/challenges.js +26 -25
  31. package/dist/browser/runtime/node/community/local-community/challenges.js.map +1 -1
  32. package/dist/browser/runtime/node/community/local-community/comment-updates.d.ts +2 -1
  33. package/dist/browser/runtime/node/community/local-community/comment-updates.js +14 -2
  34. package/dist/browser/runtime/node/community/local-community/comment-updates.js.map +1 -1
  35. package/dist/browser/runtime/node/community/local-community/db-state.js +12 -1
  36. package/dist/browser/runtime/node/community/local-community/db-state.js.map +1 -1
  37. package/dist/browser/runtime/node/community/local-community/ipns-publishing.js +22 -1
  38. package/dist/browser/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
  39. package/dist/browser/runtime/node/community/local-community/lifecycle.js +17 -5
  40. package/dist/browser/runtime/node/community/local-community/lifecycle.js.map +1 -1
  41. package/dist/browser/runtime/node/community/local-community/pubsub.js +42 -4
  42. package/dist/browser/runtime/node/community/local-community/pubsub.js.map +1 -1
  43. package/dist/browser/runtime/node/community/local-community.d.ts +1 -0
  44. package/dist/browser/runtime/node/community/local-community.js +10 -1
  45. package/dist/browser/runtime/node/community/local-community.js.map +1 -1
  46. package/dist/browser/schema/schema-util.d.ts +4 -0
  47. package/dist/browser/signer/signatures.d.ts +4 -4
  48. package/dist/browser/signer/signatures.js +23 -4
  49. package/dist/browser/signer/signatures.js.map +1 -1
  50. package/dist/browser/test/test-util.d.ts +3 -0
  51. package/dist/browser/test/test-util.js +15 -1
  52. package/dist/browser/test/test-util.js.map +1 -1
  53. package/dist/bundled/bundle-manifest.json +31 -31
  54. package/dist/bundled/chunks/{helia-for-pkc-BcZhGLB0.js → helia-for-pkc-B-75U9z9.js} +2 -2
  55. package/dist/bundled/chunks/{local-community-DWf7A4hj.js → local-community-Br1ipu1Z.js} +77 -32
  56. package/dist/bundled/chunks/{local-community-Cd5HOxwM.js → local-community-CIVs_iuS.js} +1 -1
  57. package/dist/bundled/chunks/{node-sP-twQPW.js → node-Cn7VaPDJ.js} +53 -27
  58. package/dist/bundled/chunks/{rpc-local-community-ZxNkZCBr.js → rpc-local-community-DtdeJBOq.js} +22 -11
  59. package/dist/bundled/chunks/{schema-B3duXSG7.js → schema-B1Ot-kux.js} +5 -2
  60. package/dist/bundled/chunks/{util-DOWWxZIE.js → util-B6v5HAdy.js} +1 -1
  61. package/dist/bundled/index.js +1 -1
  62. package/dist/bundled/rpc/src/index.js +4 -4
  63. package/dist/node/clients/base-client-manager.d.ts +1 -0
  64. package/dist/node/clients/base-client-manager.js +9 -2
  65. package/dist/node/clients/base-client-manager.js.map +1 -1
  66. package/dist/node/clients/rpc-client/rpc-schema-util.d.ts +1 -0
  67. package/dist/node/clients/rpc-client/schema.d.ts +1 -0
  68. package/dist/node/community/community-client-manager.d.ts +1 -0
  69. package/dist/node/community/community-client-manager.js +7 -0
  70. package/dist/node/community/community-client-manager.js.map +1 -1
  71. package/dist/node/community/remote-community.js +18 -9
  72. package/dist/node/community/remote-community.js.map +1 -1
  73. package/dist/node/community/schema.d.ts +6 -0
  74. package/dist/node/community/schema.js +4 -1
  75. package/dist/node/community/schema.js.map +1 -1
  76. package/dist/node/community/types.d.ts +1 -0
  77. package/dist/node/errors.d.ts +2 -0
  78. package/dist/node/errors.js +2 -0
  79. package/dist/node/errors.js.map +1 -1
  80. package/dist/node/generated-version.d.ts +1 -1
  81. package/dist/node/generated-version.js +1 -1
  82. package/dist/node/pkc-error.d.ts +1 -1
  83. package/dist/node/publications/community-edit/schema.d.ts +4 -0
  84. package/dist/node/publications/publication.d.ts +2 -1
  85. package/dist/node/publications/publication.js +63 -24
  86. package/dist/node/publications/publication.js.map +1 -1
  87. package/dist/node/pubsub-messages/schema.d.ts +2 -0
  88. package/dist/node/runtime/node/community/db-handler.d.ts +1 -0
  89. package/dist/node/runtime/node/community/db-handler.js +9 -1
  90. package/dist/node/runtime/node/community/db-handler.js.map +1 -1
  91. package/dist/node/runtime/node/community/local-community/challenges.js +26 -25
  92. package/dist/node/runtime/node/community/local-community/challenges.js.map +1 -1
  93. package/dist/node/runtime/node/community/local-community/comment-updates.d.ts +2 -1
  94. package/dist/node/runtime/node/community/local-community/comment-updates.js +14 -2
  95. package/dist/node/runtime/node/community/local-community/comment-updates.js.map +1 -1
  96. package/dist/node/runtime/node/community/local-community/db-state.js +12 -1
  97. package/dist/node/runtime/node/community/local-community/db-state.js.map +1 -1
  98. package/dist/node/runtime/node/community/local-community/ipns-publishing.js +22 -1
  99. package/dist/node/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
  100. package/dist/node/runtime/node/community/local-community/lifecycle.js +17 -5
  101. package/dist/node/runtime/node/community/local-community/lifecycle.js.map +1 -1
  102. package/dist/node/runtime/node/community/local-community/pubsub.js +42 -4
  103. package/dist/node/runtime/node/community/local-community/pubsub.js.map +1 -1
  104. package/dist/node/runtime/node/community/local-community.d.ts +1 -0
  105. package/dist/node/runtime/node/community/local-community.js +10 -1
  106. package/dist/node/runtime/node/community/local-community.js.map +1 -1
  107. package/dist/node/schema/schema-util.d.ts +4 -0
  108. package/dist/node/signer/signatures.d.ts +4 -4
  109. package/dist/node/signer/signatures.js +23 -4
  110. package/dist/node/signer/signatures.js.map +1 -1
  111. package/dist/node/test/test-util.d.ts +3 -0
  112. package/dist/node/test/test-util.js +15 -1
  113. package/dist/node/test/test-util.js.map +1 -1
  114. package/package.json +1 -1
@@ -8,7 +8,7 @@ import { TypedEmitter } from "tiny-typed-emitter";
8
8
  import { Comment } from "./comment/comment.js";
9
9
  import { PKCError } from "../pkc-error.js";
10
10
  import { getHeliaDebugContext } from "../helia/util.js";
11
- import { getBufferedPKCAddressFromPublicKey } from "../signer/util.js";
11
+ import { getBufferedPKCAddressFromPublicKey, getPKCAddressFromPublicKeySync } from "../signer/util.js";
12
12
  import * as cborg from "cborg";
13
13
  import { isDeepEqual, keys, omit } from "remeda";
14
14
  import { findStartedCommunity, findUpdatingCommunity } from "../pkc/tracked-instance-registry-util.js";
@@ -172,7 +172,7 @@ class Publication extends TypedEmitter {
172
172
  return; // We only process one challenge
173
173
  const challengeMsgValidity = await verifyChallengeMessage({
174
174
  challenge: msg,
175
- pubsubTopic: this._communityPubsubTopicWithFallback(),
175
+ communityChallengeSignerAddress: this._communityChallengeMsgSignerAddress(),
176
176
  validateTimestampRange: true
177
177
  });
178
178
  if (!challengeMsgValidity.valid) {
@@ -234,8 +234,9 @@ class Publication extends TypedEmitter {
234
234
  };
235
235
  this._challengeExchanges[msg.challengeRequestId.toString()].challenge = decryptedChallengeMsg;
236
236
  this._updatePublishingStateWithEmission("waiting-challenge-answers");
237
+ const challengeTopic = this._community?.pubsubTopic;
237
238
  const subscribedProviders = Object.entries(this._clientsManager.pubsubProviderSubscriptions)
238
- .filter(([, pubsubTopics]) => pubsubTopics.includes(this._communityPubsubTopicWithFallback()))
239
+ .filter(([, pubsubTopics]) => typeof challengeTopic === "string" && pubsubTopics.includes(challengeTopic))
239
240
  .map(([provider]) => provider);
240
241
  subscribedProviders.forEach((provider) => this._updatePubsubState("waiting-challenge-answers", provider));
241
242
  this.emit("challenge", decryptedChallengeMsg);
@@ -246,7 +247,7 @@ class Publication extends TypedEmitter {
246
247
  return;
247
248
  const signatureValidation = await verifyChallengeVerification({
248
249
  verification: msg,
249
- pubsubTopic: this._communityPubsubTopicWithFallback(),
250
+ communityChallengeSignerAddress: this._communityChallengeMsgSignerAddress(),
250
251
  validateTimestampRange: true
251
252
  });
252
253
  if (!signatureValidation.valid) {
@@ -422,7 +423,7 @@ class Publication extends TypedEmitter {
422
423
  }
423
424
  else {
424
425
  try {
425
- await this._clientsManager.pubsubPublishOnProvider(this._communityPubsubTopicWithFallback(), answerMsgToPublish, challengeExchange.providerUrl);
426
+ await this._clientsManager.pubsubPublishOnProvider(this._communityChallengePubsubExchangeTopic(), answerMsgToPublish, challengeExchange.providerUrl);
426
427
  }
427
428
  catch (e) {
428
429
  this._challengeExchanges[challengeExchange.challengeRequest.challengeRequestId.toString()].challengeAnswerPublishError =
@@ -441,8 +442,9 @@ class Publication extends TypedEmitter {
441
442
  this._challengeExchanges[challengeExchange.challengeRequest.challengeRequestId.toString()].challengeAnswerPublishTimestamp =
442
443
  timestamp();
443
444
  this._updatePublishingStateWithEmission("waiting-challenge-verification");
445
+ const challengeTopic = this._community?.pubsubTopic;
444
446
  const providers = Object.entries(this._clientsManager.pubsubProviderSubscriptions)
445
- .filter(([, pubsubTopics]) => pubsubTopics.includes(this._communityPubsubTopicWithFallback()))
447
+ .filter(([, pubsubTopics]) => typeof challengeTopic === "string" && pubsubTopics.includes(challengeTopic))
446
448
  .map(([provider]) => provider);
447
449
  providers.forEach((provider) => this._updatePubsubState("waiting-challenge-verification", provider));
448
450
  log(`Responded to challenge with answers`, challengeAnswers);
@@ -459,11 +461,6 @@ class Publication extends TypedEmitter {
459
461
  _validateCommunityFields() {
460
462
  if (typeof this._community?.encryption?.publicKey !== "string")
461
463
  throw new PKCError("ERR_COMMUNITY_MISSING_FIELD", { communityPublicKey: this._community?.encryption?.publicKey });
462
- if (typeof this._communityPubsubTopicWithFallback() !== "string")
463
- throw new PKCError("ERR_COMMUNITY_MISSING_FIELD", {
464
- pubsubTopic: this._community?.pubsubTopic,
465
- address: this._community?.address
466
- });
467
464
  }
468
465
  _updatePublishingStateNoEmission(newState) {
469
466
  this.publishingState = newState;
@@ -510,12 +507,35 @@ class Publication extends TypedEmitter {
510
507
  this.clients.pkcRpcClients[currentRpcUrl].state = newState;
511
508
  this.clients.pkcRpcClients[currentRpcUrl].emit("statechange", newState);
512
509
  }
513
- _communityPubsubTopicWithFallback() {
514
- const pubsubTopic = this._community?.pubsubTopic || this._community?.address;
510
+ // The topic to run the challenge exchange on. Absence of pubsubTopic on the record means the
511
+ // community disabled the exchange (issue #229); there is no fallback to the community address.
512
+ _communityChallengePubsubExchangeTopic() {
513
+ const pubsubTopic = this._community?.pubsubTopic;
515
514
  if (typeof pubsubTopic !== "string")
516
- throw Error("Failed to load the pubsub topic of community");
515
+ throw new PKCError("ERR_COMMUNITY_CHALLENGE_EXCHANGE_DISABLED", {
516
+ communityAddress: this._community?.address ?? this.communityAddress,
517
+ communityName: this._community?.name ?? this.communityName,
518
+ communityPublicKey: this._community?.publicKey ?? this.communityPublicKey,
519
+ publicationType: this.getType()
520
+ });
517
521
  return pubsubTopic;
518
522
  }
523
+ // Who must have signed an incoming CHALLENGE/CHALLENGEVERIFICATION. Deliberately NOT the pubsub
524
+ // topic — the topic only happened to equal this address because of the init backfill (issue #229).
525
+ //
526
+ // community.encryption.publicKey is the right key, not signature.publicKey: we already encrypt the
527
+ // challenge request TO it and decrypt the challenge FROM it, so whoever it names is by definition
528
+ // the holder of the private key running the exchange, and therefore the signer of its messages.
529
+ // signature.publicKey answers "who minted the record", a role that merely coincides today. Using
530
+ // encryption makes both halves of the exchange attest to one identity, and it stays correct if a
531
+ // delegated community (#233) ever splits minting from running the exchange. It is covered by
532
+ // CommunitySignedPropertyNames, so it is authenticated by the record signature.
533
+ _communityChallengeMsgSignerAddress() {
534
+ const encryptionPublicKey = this._community?.encryption?.publicKey;
535
+ if (typeof encryptionPublicKey !== "string")
536
+ throw Error("Failed to load the encryption public key of community");
537
+ return getPKCAddressFromPublicKeySync(encryptionPublicKey);
538
+ }
519
539
  _getCommunityCache() {
520
540
  const cached = this._pkc._memCaches.communityForPublishing.get(this.communityAddress, { allowStale: true });
521
541
  if (cached)
@@ -581,9 +601,9 @@ class Publication extends TypedEmitter {
581
601
  this._rpcPublishSubscriptionId = undefined;
582
602
  this._setRpcClientState("stopped");
583
603
  }
584
- else if (this._community) {
604
+ else if (typeof this._community?.pubsubTopic === "string") {
585
605
  // the client is publishing to pubsub without using PKC RPC
586
- await this._clientsManager.pubsubUnsubscribe(this._communityPubsubTopicWithFallback(), this._handleChallengeExchange);
606
+ await this._clientsManager.pubsubUnsubscribe(this._community.pubsubTopic, this._handleChallengeExchange);
587
607
  Object.values(this._challengeExchanges).forEach((exchange) => this._updatePubsubState("stopped", exchange.providerUrl));
588
608
  }
589
609
  }
@@ -718,7 +738,7 @@ class Publication extends TypedEmitter {
718
738
  timestamp: timestamp()
719
739
  });
720
740
  const challengeRequest = await this._signAndValidateChallengeRequestBeforePublishing(toSignMsg, pubsubMessageSigner);
721
- log("Attempting to publish", this.getType(), "to pubsub topic", this._communityPubsubTopicWithFallback(), "with provider", providerUrl, "request.encrypted=", pubsubMsgToEncrypt);
741
+ log("Attempting to publish", this.getType(), "to pubsub topic", this._community?.pubsubTopic, "with provider", providerUrl, "request.encrypted=", pubsubMsgToEncrypt);
722
742
  const decryptedChallengeRequest = { ...challengeRequest, ...pubsubMsgToEncrypt };
723
743
  this._challengeExchanges[challengeRequestId.toString()] = {
724
744
  challengeRequest: decryptedChallengeRequest,
@@ -823,9 +843,9 @@ class Publication extends TypedEmitter {
823
843
  this._updatePublishingStateWithEmission("publishing-challenge-request");
824
844
  this._updatePubsubState("subscribing-pubsub", providerUrl);
825
845
  try {
826
- await this._clientsManager.pubsubSubscribeOnProvider(this._communityPubsubTopicWithFallback(), this._handleChallengeExchange, providerUrl);
846
+ await this._clientsManager.pubsubSubscribeOnProvider(this._communityChallengePubsubExchangeTopic(), this._handleChallengeExchange, providerUrl);
827
847
  this._updatePubsubState("publishing-challenge-request", providerUrl);
828
- await this._clientsManager.pubsubPublishOnProvider(this._communityPubsubTopicWithFallback(), challengeRequest, providerUrl);
848
+ await this._clientsManager.pubsubPublishOnProvider(this._communityChallengePubsubExchangeTopic(), challengeRequest, providerUrl);
829
849
  this._challengeExchanges[challengeRequest.challengeRequestId.toString()].challengeRequestPublishTimestamp =
830
850
  timestamp();
831
851
  }
@@ -861,7 +881,7 @@ class Publication extends TypedEmitter {
861
881
  await this._postSucessOrFailurePublishing();
862
882
  const allAttemptsFailedError = new PKCError("ERR_ALL_PUBSUB_PROVIDERS_THROW_ERRORS", {
863
883
  challengeExchanges: this._challengeExchangesFormattedForErrors(),
864
- pubsubTopic: this._communityPubsubTopicWithFallback(),
884
+ pubsubTopic: this._community?.pubsubTopic,
865
885
  providerHeliaContexts: this._libp2pJsClientHeliaContexts()
866
886
  });
867
887
  log.error("All attempts to publish", this.getType(), "has failed", allAttemptsFailedError);
@@ -939,11 +959,30 @@ class Publication extends TypedEmitter {
939
959
  if (this._pkc._pkcRpcClient)
940
960
  return this._publishWithRpc();
941
961
  const options = { acceptedChallengeTypes: [] };
942
- const providers = this._getPubsubProviders();
943
962
  const startedCommunity = findStartedCommunity(this._pkc, { publicKey: this.communityPublicKey, name: this.communityName });
944
963
  if (startedCommunity) {
945
964
  return this._publishWithLocalCommunity(startedCommunity, await this._generateChallengeRequestToPublish("publishing directly to local community instance", options.acceptedChallengeTypes));
946
965
  }
966
+ // Only the network path needs a challenge topic. Fail fast before touching pubsub so a client
967
+ // can disable its reply UI instead of timing out against a topic nobody runs (issue #229).
968
+ if (typeof this._community?.pubsubTopic !== "string") {
969
+ await this._postSucessOrFailurePublishing();
970
+ const error = new PKCError("ERR_COMMUNITY_CHALLENGE_EXCHANGE_DISABLED", {
971
+ communityAddress: this._community?.address ?? this.communityAddress,
972
+ communityName: this._community?.name ?? this.communityName,
973
+ communityPublicKey: this._community?.publicKey ?? this.communityPublicKey,
974
+ publicationType: this.getType()
975
+ });
976
+ log.error("Community has its challenge exchange disabled, will not publish", this.getType(), error);
977
+ this._changePublicationStateEmitEventEmitStateChangeEvent({
978
+ newPublishingState: "failed",
979
+ event: { name: "error", args: [error] }
980
+ });
981
+ throw error;
982
+ }
983
+ // Discovered only once the network path is certain: neither the local shortcut above nor the
984
+ // disabled-exchange fast-fail publishes over pubsub, so neither should demand a provider.
985
+ const providers = this._getPubsubProviders();
947
986
  let currentPubsubProviderIndex = 0;
948
987
  while (!this._didWeReceiveChallengeOrChallengeVerification() && currentPubsubProviderIndex < providers.length) {
949
988
  const providerUrl = providers[currentPubsubProviderIndex];
@@ -952,9 +991,9 @@ class Publication extends TypedEmitter {
952
991
  this._updatePubsubState("subscribing-pubsub", providerUrl);
953
992
  try {
954
993
  // this will throw if we succeed in subscribing first attempt, but then fail to publish
955
- await this._clientsManager.pubsubSubscribeOnProvider(this._communityPubsubTopicWithFallback(), this._handleChallengeExchange, providerUrl);
994
+ await this._clientsManager.pubsubSubscribeOnProvider(this._communityChallengePubsubExchangeTopic(), this._handleChallengeExchange, providerUrl);
956
995
  this._updatePubsubState("publishing-challenge-request", providerUrl);
957
- await this._clientsManager.pubsubPublishOnProvider(this._communityPubsubTopicWithFallback(), challengeRequest, providerUrl);
996
+ await this._clientsManager.pubsubPublishOnProvider(this._communityChallengePubsubExchangeTopic(), challengeRequest, providerUrl);
958
997
  this._challengeExchanges[challengeRequest.challengeRequestId.toString()].challengeRequestPublishTimestamp = timestamp();
959
998
  }
960
999
  catch (e) {
@@ -966,7 +1005,7 @@ class Publication extends TypedEmitter {
966
1005
  await this._postSucessOrFailurePublishing();
967
1006
  const allAttemptsFailedError = new PKCError("ERR_ALL_PUBSUB_PROVIDERS_THROW_ERRORS", {
968
1007
  challengeExchanges: this._challengeExchangesFormattedForErrors(),
969
- pubsubTopic: this._communityPubsubTopicWithFallback(),
1008
+ pubsubTopic: this._community?.pubsubTopic,
970
1009
  providerHeliaContexts: this._libp2pJsClientHeliaContexts()
971
1010
  });
972
1011
  log.error("All attempts to publish", this.getType(), "has failed", allAttemptsFailedError);
@@ -1 +1 @@
1
- {"version":3,"file":"publication.js","sourceRoot":"","sources":["../../../src/publications/publication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publication.js","sourceRoot":"","sources":["../../../src/publications/publication.ts"],"names":[],"mappings":"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"}
@@ -397,6 +397,7 @@ export declare const DecryptedChallengeRequestPublicationSchema: z.ZodObject<{
397
397
  }, z.core.$strict>>>;
398
398
  maxPendingApprovalCount: z.ZodOptional<z.ZodNumber>;
399
399
  purgeDisapprovedCommentsOlderThan: z.ZodOptional<z.ZodNumber>;
400
+ disablePubsubChallengeExchange: z.ZodOptional<z.ZodBoolean>;
400
401
  }, z.core.$strict>>>;
401
402
  roles: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
402
403
  role: z.ZodUnion<[z.ZodEnum<{
@@ -774,6 +775,7 @@ export declare const DecryptedChallengeRequestSchema: z.ZodObject<{
774
775
  }, z.core.$strict>>>;
775
776
  maxPendingApprovalCount: z.ZodOptional<z.ZodNumber>;
776
777
  purgeDisapprovedCommentsOlderThan: z.ZodOptional<z.ZodNumber>;
778
+ disablePubsubChallengeExchange: z.ZodOptional<z.ZodBoolean>;
777
779
  }, z.core.$strict>>>;
778
780
  roles: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
779
781
  role: z.ZodUnion<[z.ZodEnum<{
@@ -85,6 +85,7 @@ export declare class DbHandler {
85
85
  }[] | undefined;
86
86
  maxPendingApprovalCount?: number | undefined;
87
87
  purgeDisapprovedCommentsOlderThan?: number | undefined;
88
+ disablePubsubChallengeExchange?: boolean | undefined;
88
89
  };
89
90
  _createOrMigrateTablesIfNeeded(): Promise<void>;
90
91
  private _tableExists;
@@ -1606,7 +1606,15 @@ export class DbHandler {
1606
1606
  JOIN ${TABLES.COMMENT_UPDATES} cu_child ON cu_child.cid = child_ref.value
1607
1607
  WHERE cu_parent.replies IS NOT NULL
1608
1608
  AND json_type(cu_parent.replies, '$.best.commentCids') = 'array'
1609
- AND cu_child.updatedAt > cu_parent.insertedAt
1609
+ -- Compare against the parent's updatedAt, not its insertedAt (issue #230). insertedAt is
1610
+ -- the batch's start timestamp, shared by every row the batch writes (issue #209/#211),
1611
+ -- while updatedAt is stamped when that row is actually calculated. A batch walks a post
1612
+ -- tree deepest-depth-first, so a child is always calculated before its parent and its
1613
+ -- updatedAt lands after the batch's start: comparing against insertedAt re-flagged every
1614
+ -- parent of any batch spanning >= 1 second, which produced another such batch, and the
1615
+ -- update loop never converged. updatedAt is when the parent's replies page was actually
1616
+ -- generated, which is the point the child's data could have gone stale relative to.
1617
+ AND cu_child.updatedAt > cu_parent.updatedAt
1610
1618
  ),
1611
1619
  base_updates AS (
1612
1620
  SELECT * FROM direct_updates