a0b720df73
GEN-3a: Schimmel catalog fix (breeder C5) — remove Schwarzschimmel, efef base=Orangeschimmel, Silberschimmel wins efef-gg, +CP-Orangeschimmel; regenerate ColorVariety seed
2026-06-06 10:25:48 +02:00
1e7dc8f91d
GEN-3a: Uw=G alias, second spotting locus Sls (SlSl lethal), Sp×Sls Superschecke, flag/metadata token tolerance (dea/WFNZ/DP/RV/GV)
2026-06-06 10:25:48 +02:00
d79f039b8b
FEAT-13-Followup: /hilfe sections for Abgabevertrag wizard + Zuchtprofil (du-Form, de.ts-referenced labels) + finish-step in Abgabe section
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 09:58:04 +02:00
d6e35f40ec
Merge feature/search-2b: Herkunft filter -> originBreeder + /gerbils/breeders; name search -> nameSearch (separator-insensitive) [god-QA: 47/build/e2e 62]
2026-06-06 09:27:40 +02:00
681e8c28fb
SEARCH-2b: Herkunft dropdown -> originBreeder + GET /gerbils/breeders; name search -> nameSearch (client-normalized)
2026-06-06 09:15:55 +02:00
5d8bbfa93b
FEAT-14b: Charakterbogen on animal detail (persist) + Abgabe composer; feed traits+note into sale-ad; e2e smoke
2026-06-06 09:08:54 +02:00
5b11780074
FEAT-14b: trait vocabulary (de.character), Gerbil/sale-ad types, Charakterbogen component
2026-06-06 09:08:54 +02:00
38b9717ad2
SEARCH-2: Herkunft (originContactId) filter dropdown on Tiere list + e2e smoke; name-search field behind NAME_SEARCH_FIELD for SEARCH-1 normalized swap
2026-06-06 08:58:34 +02:00
459c66bc3e
Hotfix: gerbil search contains operator — drop trailing '*' (Gridify =* is contains; name=*a not name=*a*) + e2e mock mirrors real Gridify
2026-06-06 08:52:02 +02:00
e73b561b77
POLISH-1: move stray UI strings to de.ts (pageNav/moreData), gitignore Playwright artefacts, wire 'Abgabe abschliessen' -> /vertraege/neu?tiere= (FEAT-13b)
2026-06-06 08:14:52 +02:00
55a72bfe12
POLISH-1: gridify emits canonical '='; localize litter InvalidParentGender 400 (ApiError body) + de strings
2026-06-06 08:14:52 +02:00
e87d0aafea
Merge feature/export-1: Datenexport (zip JSON+German CSVs) on /einstellungen + CI flake-cap [god-QA pending result-gate]
...
# Conflicts:
# GerbilManager.Tests/GerbilManager.Tests.csproj
# GerbilManagerWebAPI/Program.cs
# gerbil-manager-web/src/App.tsx
# gerbil-manager-web/src/components/AppShell.tsx
# gerbil-manager-web/src/pages/EinstellungenPage.tsx
2026-06-06 08:06:38 +02:00
d3f38b9be4
FEAT-13: resolve leftover rebase conflict markers in App.tsx routes (hilfe + vertraege/einstellungen union)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 07:58:01 +02:00
d8ccb451d9
FEAT-13: singular-aware contract count text (1 Vertrag / n Vertraege)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 07:56:48 +02:00
9c3bcfc9f9
FEAT-13: Abgabe wizard (/vertraege/neu, 4 steps, ?tiere= prefill), Vertraege list w/ download+delete, /einstellungen Zuchtprofil form, contracts/settings API clients, nav entries, detail-page entry point + replace orphaned contactInfo with email/phone/address across Kontakt pages
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 07:56:48 +02:00
8fa02a5d49
EXPORT-1: Datenexport-Karte auf /einstellungen (Anker-Download, deutsche Erklaertexte + Foto-Hinweis)
2026-06-06 07:55:14 +02:00
98060b890b
HELP-1: in-app German user guide (/hilfe, accordion, 9 sections)
...
HilfePage.tsx: accordion via <details>/<summary> (native, accessible, mobile-first);
9 sections in du-Form: Erste Schritte, Rennmaeuse, Becken, Wuerfe, Genetik,
Stammbaum, Abgabe-Ablauf, Statistik, Datensicherung. All UI labels imported from
de.ts (rename-safe); SCHECKE/Rex warnings verbatim from genetics.warnings.
de.ts: de.nav.help + de.hilfe (title, subtitle, 9 section keys)
AppShell.tsx: Hilfe (heart question mark) added to SECONDARY nav (Mehr-sheet on phone,
sidebar on desktop)
App.tsx: Route path=hilfe -> <HilfePage />
hilfe.css: accordion, hint boxes, warning colour; piggybacks on existing CSS vars
e2e/hilfe.spec.ts: 3 smoke tests x 2 viewports = 6 new tests
-- Hilfe reachable via nav
-- First accordion section expands on click
-- SCHECKE warning visible in Genetik section
Full evidence: dotnet test 18/18, npm test 47/47, npm run build ok,
npm run e2e 54/54 (48 existing + 6 new hilfe tests).
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-06-06 07:47:45 +02:00
d6bf6c6fe3
OPS-1: fix e2e regression -- API_BASE_URL conditional on import.meta.env.PROD
...
Dev (Vite dev server / e2e mock mode): falls back to 'http://localhost:5179 ' so
Playwright route interception on http://localhost:5179/ ** keeps working.
Production (npm run build -> PROD=true): falls back to '/api' so nginx proxy
strips the prefix without any hostname baked in at build time.
VITE_API_BASE_URL (set by Aspire in dev, injected LAN IP) always wins over both.
Evidence: npm run e2e 48/48 PASS (mock mode, both viewports).
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-06-06 07:39:33 +02:00
a221e366e6
FEAT-13: singular-aware contract count text (1 Vertrag / n Vertraege)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 07:34:25 +02:00
3ec4f660b0
FEAT-13: Abgabe wizard (/vertraege/neu, 4 steps, ?tiere= prefill), Vertraege list w/ download+delete, /einstellungen Zuchtprofil form, contracts/settings API clients, nav entries, detail-page entry point + replace orphaned contactInfo with email/phone/address across Kontakt pages
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 07:34:25 +02:00
2f2e5b1f56
OPS-1: Dockerfiles (net10 API + nginx frontend) + production config
...
- GerbilManagerWebAPI/Dockerfile: net7->net10 multi-stage; build context=repo
root (includes ServiceDefaults); port 8080 (.NET 10 container default)
- gerbil-manager-web/Dockerfile: drop VITE_API_BASE_URL build-arg; nginx proxies
/api/* to api:8080 (strip prefix), /scalar, /openapi/ -- one published port 80
- gerbil-manager-web/src/api/client.ts: default API_BASE_URL /api (relative),
no hostname coupling at build time; Aspire still injects absolute LAN URL in dev
- GerbilManagerWebAPI/Program.cs: run EF Migrate() at startup always (not Dev-only)
- GerbilManager.ServiceDefaults/Extensions.cs: expose /health + /alive in all
environments (compose healthcheck requires them in Production)
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-06-06 07:31:19 +02:00
07dd5c9b8e
FEAT-12a: multi-select bulk 'Zur Abgabe stellen' on the Tiere list
2026-06-06 07:13:30 +02:00
44f306d18f
FEAT-12a: Abgabe page — Becken-default grouping + per-group listing composer, clipboard/zip export, AI stub
2026-06-06 07:09:48 +02:00
e4b7558abd
FEAT-12a: ForSale scaffolding — status+ForSale, abgabe strings, /abgabe route+nav, sale-ad API stub, detail action, jszip
2026-06-06 01:07:43 +02:00
c937b6d5a8
GEN-2: add generated ColorVariety seed (73 rows: name, canonicalGenotype, sortOrder, image) for DATA-2
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 01:00:33 +02:00
6cc007ba55
GEN-2: surface Farbschlag images (FarbschlagImage component) in breeding results, animal detail, form picker
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:58:28 +02:00
a9778ad1d2
GEN-2: expand Farbschlag catalog 18->73 (baseportal.de) + images + collision-aware tests
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:55:35 +02:00
a47fbef785
FEAT-7: AppShell 'Mehr' overflow nav (phone: 4 tabs + Mehr sheet; desktop: all 7) + de.nav.more
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:47:07 +02:00
27299e225c
HOTFIX: useMutation.run returns MutationOutcome (no throw); sweep all 7 call sites + README convention
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:44:56 +02:00
3476b71525
FEAT-7: thin population curve to <=60 points so the line is not beaded over long date ranges
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:43:48 +02:00
34911fdee1
FEAT-7: Statistik page - Wuerfe/Jahr + avg Wurfstaerke bars, Farbschlag h-bars (FEAT-4 chip colors), Bestandsentwicklung line, Verluste/Jahr + /statistik route & nav entry (Mehr overflow follows via Kevin)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:41:21 +02:00
016b5a1521
FEAT-7: statistics aggregation module - litters/year, avg litter size, Farbschlag distribution, population curve, losses (9 tests)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:37:58 +02:00
c6699a9592
FEAT-3: fix unhandled ApiError rejections (catch in form submits + dev unhandledrejection guard, ApiError carries path)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:36:14 +02:00
e76554342b
FEAT-3: Zuchtpaar-Übersicht tab (derive pairs from litters) + ?vater/&mutter pair prefill in Probeverpaarung
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:32:44 +02:00
79f260d62e
FEAT-3: Wurf detail workspace (parents, juveniles, Jungtier erfassen prefill, expected Farbschlag via breed)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:31:19 +02:00
74ac6ddb5a
FEAT-4: sync inbreeding DTO to FEAT-1b InbreedingResult + anchor root card left so parents are visible on phone at load
...
Verified end-to-end against a DATA-2-contract mock (5-gen family, shared ancestor): phone/desktop, re-root, lazy expand, zoom/fit, print Ahnentafel, 404 state.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:30:14 +02:00
d3550bbc16
FEAT-3: Wurf create/edit form (parent pickers, auto +35d go-home date, validation)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:29:52 +02:00
784d3d3f40
FEAT-3: Würfe list page (year filter, sort by date, paging, parent names)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:28:50 +02:00
cd4328cef8
FEAT-6: wire tab content into animal detail (Fotos/Gesundheit/Gewicht) + profile photo in header + tab styles
2026-06-06 00:28:31 +02:00
87250ba007
FEAT-3: litter type+CRUD, Zucht strings, /wuerfe nested routes (retire LittersPage)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:27:29 +02:00
d7be812ad0
FEAT-6: Gesundheit/Gewicht/Fotos tab components + hand-rolled SVG LineChart (no chart dependency)
2026-06-06 00:27:09 +02:00
1bf94c2040
FEAT-6: fix main build - align FEAT-4 makeLitter test factory with FEAT-3 Litter type (expectedGoHomeDate, notes)
2026-06-06 00:27:09 +02:00
17879b1cfb
FEAT-6: typed API clients for health-records, weight-records, gerbil photos (multipart upload)
2026-06-06 00:25:00 +02:00
f772464401
FEAT-6: add German strings for Tier-Detail-Tabs (Gesundheit/Gewicht/Fotos)
2026-06-06 00:24:30 +02:00
e12588c338
FEAT-3: extract reusable BreedingResultView from GenetikPage (no behavior change)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:23:53 +02:00
9c0a2fec56
FEAT-4: interactive Stammbaum viewer - foreignObject cards (photo slot, sex, Farbschlag chip, year), tap-to-re-root, lazy expand, zoom controls + CSS-grid print pedigree & Inzuchtkoeffizient slot
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:22:45 +02:00
61cfab046a
FEAT-4: pedigree data module - depth-limited ancestor traversal, lazy expand, cycle guard, rd3t conversion (15 tests)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:17:49 +02:00
caba259a28
FEAT-4: add Stammbaum button to animal detail head-actions
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:12:09 +02:00
16d3cefe68
FEAT-2: wire /becken + /kontakte routes and nav (Kontakte supersedes Zuechter placeholder)
2026-06-06 00:11:11 +02:00
bca97ed10a
FEAT-4: install react-d3-tree + /rennmaeuse/:id/stammbaum route (page scaffold)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:10:10 +02:00