Restore tracker mapping linking, drop only create
The tracker-mapping worker had been reduced to catalog resolution only, which removed not just the auto-creation of an org ThirdParty but also the auto-linking of an existing one. Only the creation needed to go: it raced the load-then-create check and produced duplicate vendors. Restore the full org ThirdParty resolution (exact common-id link, sibling direct-link, high-confidence heuristic, and the disambiguation agent) and remove only the CreateFromCommon branch and its categorisation gate. When nothing matches, the worker now leaves third_party_id unset rather than creating a vendor; creation happens exclusively through the explicit ImportFromCommon action. Drop the now-dead CreateFromCommon helper and rename match.go to common_match.go. Fix a latent test bug surfaced by actually running the DB-backed suite (skipped in CI without Postgres): the heuristic-match candidate lacked Level 1, so the level-filtered candidate loader excluded it and the old fallback create masked the miss. Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
@@ -230,9 +230,10 @@ func (h *patternAnalysisHandler) Process(ctx context.Context, banner coredata.Co
|
||||
return fmt.Errorf("cannot promote source on glob pattern %q: %w", key.template, err)
|
||||
}
|
||||
|
||||
// A stronger source can unblock mapping (e.g.
|
||||
// EXTENSION->SCRIPT lifts the creationAllowed
|
||||
// gate), so re-arm mapping on the existing glob.
|
||||
// A stronger source can unblock mapping (a fresh
|
||||
// initiator domain lets matchByDomain/
|
||||
// matchBySiblingOrigin resolve a vendor), so
|
||||
// re-arm mapping on the existing glob.
|
||||
if err := globPattern.SetMappingRequested(ctx, tx); err != nil {
|
||||
return fmt.Errorf("cannot request mapping after source promotion on glob pattern %q: %w", key.template, err)
|
||||
}
|
||||
@@ -894,9 +895,9 @@ func (h *patternAnalysisHandler) adoptUncategorisedPatterns(
|
||||
return false, fmt.Errorf("cannot promote source on glob pattern %q: %w", match.Pattern, err)
|
||||
}
|
||||
|
||||
// A stronger source can unblock mapping (e.g.
|
||||
// EXTENSION->SCRIPT lifts the creationAllowed gate), so
|
||||
// re-arm mapping on the adopted glob.
|
||||
// A stronger source can unblock mapping (a fresh
|
||||
// initiator domain lets matchByDomain/matchBySiblingOrigin
|
||||
// resolve a vendor), so re-arm mapping on the adopted glob.
|
||||
if err := match.SetMappingRequested(ctx, tx); err != nil {
|
||||
return false, fmt.Errorf("cannot request mapping after source promotion on glob pattern %q: %w", match.Pattern, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user