@indexnetwork/protocol 4.2.0-rc.294.1 → 4.2.0-rc.295.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.
@@ -30,8 +30,8 @@ import { renderNetworkContext } from '../shared/network/metadata.renderer.js';
30
30
  import { requestContext } from "../shared/observability/request-context.js";
31
31
  import { mergeOpportunityEvidence, withCandidateEvidence, withMatchedStrategies } from './opportunity.evidence.js';
32
32
  const logger = protocolLogger('OpportunityGraph');
33
- /** Time window for persist-node dedup. Parallel jobs arrive within seconds; 10 min catches those while allowing new opportunities for long-connected pairs. */
34
- const DEDUP_WINDOW_MS = 10 * 60 * 1000;
33
+ /** Time window for persist-node dedup. Suppresses a second opportunity with the same person while a recent one (within 30 days) is still in flight, so a person is not re-surfaced multiple times within a month (EDG-23). */
34
+ const DEDUP_WINDOW_MS = 30 * 24 * 60 * 60 * 1000;
35
35
  /** Default cap for source premises used by premise-to-premise discovery. Prevents BACKEND-5-style fan-out. */
36
36
  const DEFAULT_SOURCE_PREMISE_DISCOVERY_LIMIT = 40;
37
37
  /** Per-source cap for candidate premise matches. */
@@ -2678,7 +2678,7 @@ export class OpportunityGraphFactory {
2678
2678
  });
2679
2679
  continue;
2680
2680
  }
2681
- // Else: existing opportunity is old enough (>10 min), allow new opportunity creation
2681
+ // Else: existing opportunity is old enough (outside the 30-day dedup window), allow new opportunity creation
2682
2682
  logger.verbose('[Graph:Persist] Allowing new opportunity; existing is outside dedup window', {
2683
2683
  candidateUserId,
2684
2684
  existingStatus: existing.status,