Some checks failed
CI / Unit & Component Tests (pull_request) Successful in 3m17s
CI / OCR Service Tests (pull_request) Successful in 23s
CI / Backend Unit Tests (pull_request) Successful in 3m39s
CI / fail2ban Regex (pull_request) Successful in 44s
CI / Semgrep Security Scan (pull_request) Successful in 23s
CI / Compose Bucket Idempotency (pull_request) Successful in 1m5s
CI / Unit & Component Tests (push) Successful in 3m19s
CI / OCR Service Tests (push) Successful in 23s
CI / fail2ban Regex (push) Has been cancelled
CI / Semgrep Security Scan (push) Has been cancelled
CI / Compose Bucket Idempotency (push) Has been cancelled
CI / Backend Unit Tests (push) Has been cancelled
nightly / deploy-staging (push) Successful in 1m55s
The #718 keyboard-tab-order test hardcoded the visual order ['Eugenie','Walter','Clara','Hans'] on the assumption that buildLayout sorts each generation alphabetically. #724 replaced that with the tidy-tree layout, which orders a couple's run by structural ownership (earliest birth year, then a deterministic id tie-break) — so Walter (id …a1) now owns the run and Eugenie renders to his right. Both PRs were green independently; the stale assertion only surfaced once #718 and #724 landed together on main. Correct the expected reading order to ['Walter','Eugenie','Clara','Hans'] and refresh the now-wrong 'alphabetical' comment. The companion self-validating test (DOM order == sorted by y,x) already guarded the real property, so only the hardcoded assertion needed updating. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
person (frontend)
UI for historical family members: typeahead selection, chip display, hover cards, genealogy graph, relationship management.
What this domain owns
Components: PersonTypeahead.svelte, PersonMultiSelect.svelte, PersonChip.svelte, PersonChipRow.svelte, PersonHoverCard.svelte, PersonTypeBadge.svelte, PersonTypeSelector.svelte.
Utilities: personFormat.ts (full-name formatting), personLifeDates.ts (birth/death display), person-validation.ts (form validation), personHoverCard.ts (hover-card controller).
Sub-folders: genealogy/ (Stammbaum view components), relationship/ (relationship graph components).
What this domain does NOT own
- Document content — displayed in
document/ - AppUser accounts — managed in
user/
Key components
| Component | Used in | Notes |
|---|---|---|
PersonTypeahead.svelte |
document edit, geschichte, search filters | Single-person selector with debounced typeahead. Exported for use by other domains. |
PersonMultiSelect.svelte |
document edit (receivers) | Chip-based multi-person selector |
PersonChip.svelte |
document rows, conversation view | Compact display chip with link and hover card |
PersonHoverCard.svelte |
person chips | Floating card with person summary on hover |
Cross-domain imports
shared/primitives/— generic UI primitivesshared/hooks/useTypeahead.svelte.ts— typeahead keyboard/focus logic
Accessibility notes
PersonChipfocus ring:focus-visible:ring-2 focus-visible:ring-brand-navyPersonTypeaheaddropdown navigable via keyboard (↑↓ Enter Escape)
Backend counterpart
backend/src/main/java/org/raddatz/familienarchiv/person/README.md