Releases: ajkessel/gedcom-navigator
Release list
v1.11.0
Full Changelog: v1.10.0...v1.11.0
v1.10.0
What's New in v1.9.19
DNA Match Detection for Non-Ancestry GEDCOM Files
GEDCOM Navigator now finds DNA matches in family trees exported from any genealogy software, not just Ancestry.
Previously, DNA-match detection relied on Ancestry-specific data structures (_MTTAG custom tags and AncestryDNA Match source citations). Files exported from other programs — MyHeritage, Family Historian, Legacy Family Tree, RootsMagic, and others — were not recognized.
When your GEDCOM file was not exported by Ancestry, the app now scans the custom fields those programs use to record DNA relationships:
- Custom events and facts (EVEN/FACT records with a DNA-related TYPE, e.g. "DNA Match" or "MyHeritage DNA")
- Family Historian custom attributes (_ATTR)
- Reference number fields (REFN)
- Custom _DNA-style tags
The match keyword is configurable (default: "DNA"). When a custom event uses the generic TYPE value "Custom", the app uses the event's own text as the label — so a record like 1 FACT MyHeritage DNA / 2 TYPE Custom appears and matches as "MyHeritage DNA".
Notes (free-text NOTE fields) are excluded by default — they mention "DNA" too often to be useful for detection. You can enable note scanning with the new Scan note text for matches toggle in Preferences.
New controls
- Select Tag browser — for non-Ancestry files, the tag browser now shows a catalog of the custom field types discovered in your GEDCOM. Columns are sortable by clicking any header, so you can quickly find and select the specific tag to match on.
Preferences: Scan note text for matches — opt in to include free-text NOTE fields in DNA detection. - CLI: --detection-fields — controls which field categories are scanned (events/facts, custom attributes, reference numbers, etc.).
- CLI: --list-tags — now shows the full catalog of discovered custom field types for non-Ancestry files.
Bug Fixes
- Full siblings display with a solid connector inside mixed half-sibling groups — when a sibling group with hidden parents included both full and half-siblings, the entire group's connector bar was drawn in the half-sibling dashed style, making full siblings appear to be half-siblings. Full-sibling groups within the bar now use the solid style; only the bridges between different family groups use the dashed style.
- Half-siblings with hidden parents are placed on their sibling's row — a half-sibling whose own parents are not visible was being placed as a disconnected component far from their sibling group. They are now correctly attached on the same row as their siblings.
Full Changelog: v1.9.18...v1.10.0
v1.9.19
What's New in v1.9.19
DNA Match Detection for Non-Ancestry GEDCOM Files
GEDCOM Navigator now finds DNA matches in family trees exported from any genealogy software, not just Ancestry.
Previously, DNA-match detection relied on Ancestry-specific data structures (_MTTAG custom tags and AncestryDNA Match source citations). Files exported from other programs — MyHeritage, Family Historian, Legacy Family Tree, RootsMagic, and others — were not recognized.
When your GEDCOM file was not exported by Ancestry, the app now scans the custom fields those programs use to record DNA relationships:
- Custom events and facts (EVEN/FACT records with a DNA-related TYPE, e.g. "DNA Match" or "MyHeritage DNA")
- Family Historian custom attributes (_ATTR)
- Reference number fields (REFN)
- Custom _DNA-style tags
The match keyword is configurable (default: "DNA"). When a custom event uses the generic TYPE value "Custom", the app uses the event's own text as the label — so a record like 1 FACT MyHeritage DNA / 2 TYPE Custom appears and matches as "MyHeritage DNA".
Notes (free-text NOTE fields) are excluded by default — they mention "DNA" too often to be useful for detection. You can enable note scanning with the new Scan note text for matches toggle in Preferences.
New controls
- Select Tag browser — for non-Ancestry files, the tag browser now shows a catalog of the custom field types discovered in your GEDCOM. Columns are sortable by clicking any header, so you can quickly find and select the specific tag to match on.
Preferences: Scan note text for matches — opt in to include free-text NOTE fields in DNA detection. - CLI: --detection-fields — controls which field categories are scanned (events/facts, custom attributes, reference numbers, etc.).
- CLI: --list-tags — now shows the full catalog of discovered custom field types for non-Ancestry files.
Bug Fixes
- Full siblings display with a solid connector inside mixed half-sibling groups — when a sibling group with hidden parents included both full and half-siblings, the entire group's connector bar was drawn in the half-sibling dashed style, making full siblings appear to be half-siblings. Full-sibling groups within the bar now use the solid style; only the bridges between different family groups use the dashed style.
- Half-siblings with hidden parents are placed on their sibling's row — a half-sibling whose own parents are not visible was being placed as a disconnected component far from their sibling group. They are now correctly attached on the same row as their siblings.
Full Changelog: v1.9.18...v1.9.19
v1.9.18
1.9.17
v1.9.16
1.9.15
Changed
- Family-tree layout rebuilt around explicit family units — the family graph view's layout engine was rewritten from ~25 interacting repair passes to a single recursive block layout over GEDCOM-style family units (parents + their children). Spouses are always adjacent (chained for multiple marriages), each family's children group under their actual parents, sibling and ancestor blocks pack without overlap by construction, and the layout is ~400× faster on large graphs. Children now connect to a bus per family unit anchored at their own parent(s): a child of one remarried parent hangs from that parent alone rather than appearing as a child of the visible couple, so step-siblings are visually distinct and it is clear which child belongs to which parent. Overlapping buses on the same row are vertically staggered, and half-sibling groups whose shared parent is hidden merge into a single half-style ghost stub. Step-parents recorded in a child's GEDCOM family are excluded from the child's family unit, so a child of divorced biological parents connects to both of them with a biological-style bus (each non-adjacent parent gets its own drop line) instead of appearing as a step-child of a parent's later spouse.
- Sibling connectors replaced by ghost-stub bars in family-tree graphs — when parents are not visible, siblings were connected by horizontal lines indistinguishable from spouse double-rail lines. Siblings are now grouped by a short horizontal bar drawn above the node row with vertical drop lines to each sibling — the same visual language as the parents-visible bus, just without boxes. The stub lives in a distinct vertical zone so it cannot be confused with a spouse connection. Half-sibling groups use the split dashed-rail style; step-sibling groups use the dotted style.
Fixed
- Family-tree connector bus line no longer overlaps parent nodes at high display scaling — at high DPI (e.g. Windows 300 % scaling), enlarged fonts make node heights grow, causing the horizontal bus line that connects parents to children to be placed inside the parent node boxes rather than below them. The bus-line midpoint now anchors to the actual parent node bottom rather than the couple's centre, keeping 44 design-unit clearance between the parent boxes and the bus regardless of DPI.
- Find, filter, profile pane, and profile photo clear when loading a new file — opening a different GEDCOM file now resets the Find and Filter fields, clears the results/profile pane text, and destroys any floating profile thumbnail so no stale content from the previous file is left visible.
- Profile photo updates when switching persons in Pedigree and Descendants views — selecting a new person while in Pedigree or Descendants sub-mode now replaces the profile thumbnail with the new person's photo rather than leaving the previous person's photo in place. Both text-report renderers now call
_place_profile_thumbnailthe same way the Bio renderer does. - Full-size image window no longer opens automatically on profile navigation — a Windows Tkinter quirk caused the photo thumbnail's click handler to be invoked with no event argument during navigation, which (after a prior defensive fix) inadvertently opened the full-size image viewer. The handler now only opens the image when called with a real click event.
- Profile photos remain above text on macOS — the profile thumbnail is now layered over the outer textbox instead of inside Aqua's native text widget, preventing Matches-view text redraws from painting over the image. The thumbnail is repositioned and raised whenever either textbox layer is resized.
1.9.14
Added
- PDF export for text views — Results and Profile views can now be saved as searchable, paginated PDF reports. Each page includes a centered report type and person/lifespan heading plus a GEDCOM-Navigator page-number footer. PDF output preserves headings, bold text, link styling, Unicode text, and visible relationship connectors; logical lines move to the next page instead of being split when space is insufficient.
- Optional photos in PDF reports — the new Export Preferences section includes a default-off "Include photos" option. When enabled, a person's real local profile photo appears on the first PDF page only; missing images and generic placeholders are omitted.
- Text-based Pedigree and Descendants views — the Profile pane gains a Bio / Pedigree / Descendants sub-mode selector. Pedigree renders an Ahnentafel ancestor report (numbered by generation, e.g. "2. Robert Brown (father)", "4. William Brown (paternal grandfather)", "8. James Brown (paternal great-grandfather)") and Descendants renders a Henry-numbered descendant report (1, 1.1, 1.1.1 …) with each person's spouse listed below them. Both views are plain text, so copy-to-clipboard and save-as-PDF/TXT work for free. Person names are clickable links that navigate to that person's Bio. Keyboard shortcuts: Ctrl+B (Profile/Bio), Ctrl+Shift+P / ⌘⇧P (Pedigree), Ctrl+Shift+D / ⌘⇧D (Descendants).
- Ordinal "great-" notation in Pedigree — great-grandparents and beyond use compact ordinal labels ("2nd great-grandfather", "3rd great-grandfather") instead of repeating "great-". All gen-4+ ancestors also carry a paternal/maternal prefix so each entry states which side of the family it belongs to.
- Walkthrough covers Pedigree and Descendants — the guided tour includes a new step that highlights the Bio/Pedigree/Descendants selector and explains Ahnentafel numbering (including how to decode any slot number back to the subject) and Henry numbering.
- In-app help updated — HELP.md includes a new "Profile View" section describing the three sub-modes with a full Ahnentafel decoding table and worked example.
Fixed
- Pedigree unknown ancestors skipped rather than shown as placeholders — in list-format Ahnentafel reports, unknown ancestors are conventionally omitted entirely; the slot numbers of known ancestors remain correct because the BFS walk still assigns all slots internally.
- Ctrl+Shift+P and Ctrl+Shift+D shortcuts now work on Windows and Linux — the Tkinter binding sequences used a lowercase keysym (
<Control-Shift-p>) which Tkinter never fires because Shift converts the keysym to uppercase; corrected to<Control-Shift-P>and<Control-Shift-D>. - Common ancestor correctly identifies direct ancestors — when one person is a direct ancestor of the other (parent, grandparent, etc.), the "Common ancestor" field now names that person rather than climbing another generation to their own parents.
- Common ancestor shows "Same person" for self-paths — when the source and target of a path are the same person, the "Common ancestor" field now reads "Same person" instead of being absent.
Changed
- More readable Profile Facts & Events — Residence, Education/Graduation, and Occupation are grouped into date-first timelines, with remaining GEDCOM facts collected under Other Facts & Events. Entries are ordered chronologically, undated records are clearly labeled, long notes and source details use indented continuation lines, and
https://links remain clickable. - Cleaner source links in Facts & Events — source citations ending in a labeled
URL: https://...now hide the raw URL and make the readableSource:description the hyperlink instead. Link styling excludes indentation and recognizes exporter-added whitespace within URL query parameters. - Cleaner Preferences layout — Preferences now uses a wider, aligned label-and-control grid so appearance, search, display, export, language, cache, and data-management options are easier to scan and less likely to clip. PDF/Text selection moved into its own Export section, PDF is now the default save format, and PDF appears before Text in the selector.
- Full-size images can be dragged to pan — zoomed profile and gallery images can now be repositioned by dragging with either mouse button.
1.9.13
[1.9.13] - 2026-06-02
Added
- Remove all data — new option to remove all locally stored data, including settings and cached images
Changed
- Streamlined results pane heading — removed the redundant "Closest Tagged Matches" header (and the rule beneath it) from the search results so the closest-match list begins directly under the starting person's details.
Fixed
- Family-tree column placement no longer fails on edge cases —
_nearest_unblocked_columncould raise on amin()over an empty sequence when accumulated floating-point error in the column math tipped every candidate's boundary distance a hair underMIN_COLUMN_SPACING. The layout now falls back to placing the box clear of the whole cluster instead. - Profile thumbnail stays in front — the top-right profile photo thumbnail in the Profile View is now kept lifted above the text contents (on placement, on textbox
<Configure>, and after redraws) so it no longer slips behind the profile text. - Gallery and image-preview windows reliably come to the front on Windows — the Image Gallery and the full-size image preview used a bare
lift()(gallery) orlift()+focus_force()(preview) to raise themselves, neither of which reliably foregrounds a window on Windows, where the OS blocks background windows from stealing focus. Both now use the shared_raise_windowhelper (already used by the path-graph and Profile View windows), which briefly toggles-topmostand retries after the window has rendered, so they consistently appear in front with keyboard focus. - Large full-size images no longer run off the bottom of the screen — opening a tall image from the gallery centered the preview on its parent without accounting for the window manager's title bar and borders, so a near-full-height window's bottom (and its button row) could extend past the bottom of the screen. The preview is now clamped to the screen and, once realized, nudged up by any remaining decorated-bottom overflow so the whole window — including the Copy/Save controls — stays visible.
Packaging
- Improved Uninstall — uninstalling from Windows offers to delete application data.
- Sample tree now ships with images — the bundled
samples/fictional_genealogy.gedincludes person images, andsamples/mediais now packaged into the executable so the sample profile photos and galleries render in distributed builds. - Sample tree now includes life events — the synthetic sample generator adds a handful of timeline facts (education, occupation, residence, and a mid-life career change or relocation) to each person at life-stage-appropriate ages, so the Profile View's Facts & Events section is illustrated out of the box. Events are skipped for anyone too young or no longer living for them, and existing relationships are unchanged.
1.9.12
[1.9.12] - 2026-06-01
Added
- Optional profile photo thumbnails — Preferences now includes "Show Profile Image" for rendering local GEDCOM media as profile thumbnails in the Display Pane, Profile View window, path graphs, and family-tree graph nodes. The parser recognizes standard
OBJErecords, inline person-levelOBJE, FTM_PHOTO, and primary-media markers, resolves only local filesystem paths, and uses generated sex-based fallback images when no usable local photo is available. Thumbnails preserve the full image instead of cropping faces, graph nodes use photo-forward card layouts when images are enabled, and clicking a real thumbnail opens a reusable full-image preview with Copy and Save buttons while clicking the rest of the graph node keeps opening the context menu. - Image Gallery — The Profile View window also offers an image gallery for additional person-level images beyond the selected profile photo, available from the Gallery button or
Ctrl+G/⌘G, with Escape to close the gallery and arrow buttons, an "x of y" position indicator, Left/Right and Home/End keyboard shortcuts for moving through full-size gallery images in the same preview window size, and the standard zoom shortcuts and zoom mouse actions in the full-size image window. The full-size preview widens small-image windows as needed so the button row remains visible. When a GEDCOM image path cannot be found locally, the app can prompt once per session for a replacement media folder, remember that folder for the current GEDCOM file, start the folder picker in the most likely media directory, and use the selected folder to resolve other exported media paths from a different filesystem.