Verifies PersonRepository.findByGeneration handles match, no-match (empty list not NPE), and null-generation persons (excluded). Also confirms TimelineService.assemble() returns a persisted curated event in the correct year band against real Postgres via Testcontainers. Refs #777 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>