Conversation
- Indexer now extracts FamilySearch token from browser session cookies - Spawns CLI with FS_ACCESS_TOKEN for API-based indexing - Real-time CLI output forwarded via SSE to browser UI - IndexerPage rewritten with two-column layout and output console - Fixed ancestry tree vertical connector lines visibility - Fixed hasMoreAncestors logic to hide expand arrows when loaded - Added auto-centering on expanded nodes - Added tree line CSS variables for better theme support
- Add browserSseManager for real-time browser status updates via SSE - Add /api/browser/events endpoint for SSE subscriptions - Emit status updates on connect, disconnect, launch, and navigation - Update IndexerPage and BrowserSettingsPage to use SSE instead of polling - Reorganize Indexer page: 3-column control layout with full-width output below - Add missing Ignore IDs input field to indexer form
- Add Ancestry.com linking with browser-based scraping and auto-login - Add WikiTree linking with HTTP-based profile/photo extraction - Add manual "Use Photo" button for all platforms (deferred download) - Add FamilySearch photo support in unified platforms UI - Update photo priority: Ancestry > WikiTree > Wikipedia > FamilySearch - Auto-launch/connect browser when linking Ancestry profiles - Extract highest resolution photos using srcset parsing - Consolidate platform links into single unified UI section
- Add four visualization modes: Focus Navigator, Pedigree Chart, Generational Columns, and Classic SVG tree - Implement lazy loading to fetch additional generations on demand - Simplify generation labels (1st/2nd/3rd Great-Grandparents) - Hide unknown ancestor placeholders in columns view - Fix transparent header causing text collision when scrolling - Persist view mode in URL query params (?view=columns)
- Add Git Workflow and Release Changelog Process sections to CLAUDE.md - Create .changelog/v0.2.x.md with current 0.2.x release entries - Create .changelog/README.md with changelog process documentation - Update .changelog/v0.1.x.md to match new format - Remove root CHANGELOG.md (migrated to .changelog/)
- Use composite keys (gen-idx-id) in GenerationalColumnsView to handle pedigree collapse where same ancestor appears multiple times - Fix breadcrumb keys in FocusNavigatorView - Flip pedigree bracket direction to open upward (└─┘) showing correct child-to-parent connections
- Add birthPlace, deathPlace, occupation fields to AncestryPersonCard - Populate extended fields in ancestry-tree.service - Redesign FocusNavigatorView with robust cards: - Parent cards show label, name, lifespan, and birthPlace - Focused card shows full details with all available fields - Shows generation level indicator (Parent, Grandparent, etc.) - "Click to view parents" hint when more ancestors available
- Remove individual vertical lines from parent cards - Create unified connector bracket spanning full parent container width - Position vertical lines aligned with parent card centers - Add proper spacing between connector and focused person card
There was a problem hiding this comment.
Pull request overview
This release adds significant functionality for multi-platform genealogy linking and introduces four new tree visualization modes. The PR implements Ancestry.com and WikiTree integration with automatic photo extraction, plus lazy loading for deep ancestry trees with 10+ generations.
Changes:
- Added four tree view modes (Focus, Pedigree, Columns, Classic) with URL persistence
- Implemented Ancestry.com and WikiTree profile linking with browser-based scraping and auto-login
- Refactored data model to separate father/mother parent units for better tree structure
- Added SSE-based browser status updates and real-time indexer output
- Unified platform UI with manual photo selection controls
Reviewed changes
Copilot reviewed 32 out of 34 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| shared/src/index.ts | Added photoUrl to PlatformReference, split parentUnits into father/mother specific arrays, extended AncestryPersonCard fields |
| server/src/utils/browserSseManager.ts | New SSE manager for real-time browser status broadcasting |
| server/src/services/indexer.service.ts | Integrated CLI spawning with FamilySearch token extraction and real-time progress streaming |
| server/src/services/browser.service.ts | Added FamilySearch token extraction and SSE status broadcasting |
| server/src/services/augmentation.service.ts | Implemented Ancestry/WikiTree linking with photo scraping and platform-specific photo fetching |
| server/src/services/ancestry-tree.service.ts | Updated to use separated father/mother parent units |
| server/src/routes/augmentation.routes.ts | Added endpoints for Ancestry/WikiTree linking and photo fetching |
| client/src/components/person/PersonDetail.tsx | Redesigned platforms UI with unified section and manual photo controls |
| client/src/components/indexer/IndexerPage.tsx | Complete UI redesign with browser status panel and real-time output console |
| client/src/components/ancestry-tree/views/* | Three new tree view implementations with different visualization strategies |
| .changelog/v0.2.x.md | Comprehensive release notes following new changelog structure |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- fscget.js now properly categorizes errors (network vs API) - Transient errors (ETIMEDOUT, ECONNRESET, etc.) trigger automatic retry - Exponential backoff: 5s, 10s, 20s between retries (up to 3 attempts) - Failed fetches skip the person and continue indexing instead of crashing - Fixes "Cannot read properties of undefined (reading 'data')" crash
- Add array validation for parentUnits in PedigreeChartView to handle malformed data - Add explicit typing for currentPerson field in IndexerProgress - Validate CLI executable exists before spawning indexer process - Add logging for WikiTree HTML parsing when patterns don't match - Add explicit logging when auto-login is triggered for Ancestry - Document FamilySearch token cookie priority and add logging
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 34 out of 36 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Pre-populate FamilySearch, Ancestry, WikiTree, MyHeritage, Geni, FindMyPast, Find A Grave, and 23andMe providers (all disabled by default) - Users just enable and configure the ones they want instead of manually adding each provider - Remove "Add Provider" button from UI since all providers are pre-seeded - Add 23andMe to platform defaults and colors
- Include medieval Swiss nobility lineage as bundled sample - Server loads databases from both data/ and samples/ directories - Sample databases marked with isSample flag in DatabaseInfo - Protected from deletion (only user databases can be deleted) - User databases override samples with same ID
Support for categorized name extraction from FamilySearch GEDCOMX data: - birthName: populated when display name is not a birth name (e.g., married name) - marriedNames: array of names taken after marriage - aliases: array of AlsoKnownAs names (nicknames, alternate spellings) - alternateNames: maintained for backwards compatibility
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.
Overview
Major enhancements to the ancestry tree visualization with four view modes and lazy loading for deep ancestry. Added multi-platform genealogy linking with Ancestry.com and WikiTree integration.
🎉 New Features
Multiple Tree View Modes
Lazy Loading for Deep Ancestry
View Mode URL Persistence
?view=columns)Ancestry.com Linking
WikiTree Linking
Manual Photo Selection
{personId}-ancestry.jpg, etc.)Unified Platforms UI
🔧 Improvements
Tree Visualization
Photo Priority
Data Model
photoUrlfield to PlatformReference to store discovered photo URLs before downloading🐛 Bug Fixes
.changelog/directory formatStats