Skip to content

feat(dna): complete K1 triangulation clustering (ICW + Leeds labels) - #23

Draft
simonellefsen wants to merge 4 commits into
mainfrom
feat/k1-triangulation-complete
Draft

feat(dna): complete K1 triangulation clustering (ICW + Leeds labels)#23
simonellefsen wants to merge 4 commits into
mainfrom
feat/k1-triangulation-complete

Conversation

@simonellefsen

Copy link
Copy Markdown
Owner

Summary

  • Completes K1 segment triangulation / Leeds clustering: strict ICW (50% reciprocal overlap) join with parental-side cluster splitting when paths conflict (splitClustersByParentalSide).
  • Names cluster headings from four-grandparent Leeds slots with K2 MRCA fallback (buildLeedsClusterLabels) and wires both into the admin DNA panel.
  • Adds design documentation in wiki/sources/dna-triangulation.md and marks K1 done in TODO.md / wiki/roadmap.md.

Test plan

  • npm test (462 passing locally at push time)
  • npm run lint && npm run typecheck
  • Spot-check admin DNA panel: clustered matches show Leeds/MRCA labels; mixed maternal/paternal paths split into separate clusters
  • Confirm segment painter still renders clusters after relabel

Made with Cursor

Split mixed maternal/paternal path clusters, name groups by four-grandparent
Leeds slots with MRCA fallback, and document the clustering model in
wiki/sources/dna-triangulation.md.

Co-authored-by: Cursor <[email protected]>
@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
linegra Ready Ready Preview, Comment Jul 27, 2026 3:25pm

Use path topology and computeRelationship instead of falling back to the
path endpoint when edge labels are missing or mis-oriented.

Co-authored-by: Cursor <[email protected]>
Shared-segment CSV imports launched from a person's DNA tab now lock
the counterpart to that profile (the CSV match links to them), while
the autosomal tester/owner is picked or suggested independently -
fixing cases where the tester differs from the profile (e.g. a
parent's kit run on behalf of the profile person).

- SharedSegmentImportModal: add profilePersonId/profileDisplayName
  props, lock counterpart selection, resolve owner display name
  against autosomal testers instead of all tree people.
- DNATab: pass profile context into both single and batch import
  modals; drop the now-redundant SharedAutosomalPartyLine match row;
  drop the now-unused loadingTreePeople read (setter still used).
- dnaSharedImportOwner: suggestKitOwnerPersonId no longer falls back
  to the profile person as owner when they aren't an autosomal
  tester; added regression test.
- Document 2026-07-06 screenshot-sweep findings (K14-K17, L8, M13,
  O2-O3, Q1, V5, Y3, Z1-Z5) in TODO.md and wiki/roadmap.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant