@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.
|
|
34
|
-
const DEDUP_WINDOW_MS =
|
|
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 (
|
|
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,
|