Repository navigation
BackgroundCheck: merge people on identifiers first, never on a name alone across sources - #474
Merged
Merged
Conversation
…lone across sources extractConnectedPeople keyed people on name + birth year only, so two same-name records with no birth year always merged: Unilever's Wikidata "Fernando Fernández" card held two different people's items, and two Estonians the register keeps apart by isikukood_hash would share a card. groupPersonRecords now merges on a shared identifier first, then on name + agreeing birth year, then on name alone only within one source; it never merges across two values of a one-person-per-value scheme (Estonian person key, Wikidata), and clustering no longer offers such pairs. cluster-eval.mjs imports the real modules instead of a stale copy. Notion: https://app.notion.com/p/3a67f3dc2928819f9286e585498e9c1e Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PdS422vAoRSv8Rf5NxY8We
Brings the branch up to date with main (Phases 389–392) before merging. Co-Authored-By: Claude <noreply@anthropic.com> Release-Steward: scheduled run 2026-10-21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Notion: https://app.notion.com/p/3a67f3dc2928819f9286e585498e9c1e
BackgroundCheck merged people on order-insensitive name + birth year and ignored identifiers. Two same-name records with no birth year therefore always merged into one card. That covers Unilever's Wikidata "Fernando Fernández", where two different people's items ended up on one card. It would also merge two Estonians with the same name whom the register keeps apart by person key, since the open data has no birth dates.
The new rule (
groupPersonRecords)identifiersor theidentifyingannotations) are one person.ONE_PERSON_PER_VALUE_SCHEMES(EE-ARIREGISTER-HASH,WIKIDATA), andscorePairno longer offers such a pair as a cluster. Companies House officer ids are left out on purpose, because one person can hold several.A birth year on one side and none on the other still doesn't merge, as before.
Measured on production exports (20 Oct 2026), before → after
frontend/scripts/cluster-eval.mjsnow imports the real modules (npx vite-node) instead of a copy that was already out of date.Tests: vitest 109 files / 1364 tests pass (+13 tests, +1 file); tsc,
lint:designandbuildare clean. The change is frontend-only; no backend test references these modules.Generated by Claude Code