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
7ab463d47e
UI: hand-drawn gerbil favicon (sitting Agouti, warm palette, tufted tail)
2026-06-06 00:46:46 +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
92c930c165
FEAT-2: Kontakte pages - list (Gridify search+paging), detail w/ linked animals (Herkunft/Abnehmer), form, delete w/ 409 conflict message
2026-06-06 00:09:43 +02:00
d8e94f6d05
FEAT-5: Probeverpaarung entry point from animal detail (?parent=) + stored-vs-engine Farbschlag mismatch hint
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:09:22 +02:00
5ee4b9874b
FEAT-2: Becken pages - list (Gridify search+paging), detail w/ occupancy, form, delete w/ 409 conflict message
2026-06-06 00:08:06 +02:00
16a0016de9
FEAT-5: add gender-filtered animal pickers to Probeverpaarung parents
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:07:32 +02:00
a1d02c0d4e
FEAT-2: typed CRUD API clients for enclosures + contacts
2026-06-06 00:07:01 +02:00
12e787671c
FEAT-2: add German strings for Becken + Kontakte sections (append-only de.ts)
2026-06-06 00:06:42 +02:00
5a6326a967
FEAT-5: Probeverpaarung page — free genotype entry, client-side breed(), Farbschlag cards + warnings
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:06:22 +02:00
f7ba1fa70e
FEAT-5: add /genetik route + nav entry + German strings (page stub)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:04:03 +02:00
e077766cc5
FEAT-1: Tiere create/edit form (German labels, validation, GEN-1 genotype check) + nested routes
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:58:10 +02:00
e9f88b7889
ARCH-2b: add frontend (Vite) as Aspire resource with LAN wiring
...
- AppHost: AddViteApp(frontend) via Aspire.Hosting.JavaScript 13.4.2,
WithReference(webapi)+WaitFor, inject VITE_API_BASE_URL=http://<lan-ip>:5179
at launch (computed from the active physical adapter, follows DHCP)
- Pin proxyless ports: webapi http=5179 (matches SPA default), vite=5173,
both bind 0.0.0.0 for LAN reachability
- vite.config: server.host=true so the dev server is LAN-visible
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:57:31 +02:00
0237f5de5e
FEAT-1: Tiere detail page — Stammdaten, GEN-1 genotype+Farbschlag, placeholder tabs
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:55:54 +02:00
9b586dd7fa
FEAT-1: Tiere list page — Gridify filters (Status/Geschlecht/Farbschlag), sort, paging + German strings
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:54:44 +02:00
f162ef4fed
FEAT-1: add typed gerbils/lookups API + useApi/useMutation hooks
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:52:39 +02:00
e04b69ce49
FEAT-1: add Gridify query builder + API DTO types
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:50:30 +02:00
3629e89e87
GEN-1: expose CATALOG seed view (Name/CanonicalGenotype/SortOrder) for DATA-2 + round-trip test
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:47:11 +02:00
0408a482cf
GEN-1: export genotypeToFarbschlag for DATA-1 denormalization contract
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:45:07 +02:00
0553ceda66
GEN-1: add German genetics warning texts to de.ts (code -> text mapping)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:43:41 +02:00
3561b435d5
GEN-1: add vitest suite (worked example, SpSp renorm, wildcards) + erasable-enum fix
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:43:21 +02:00
2bee5caaa2
GEN-1: add Probeverpaarung API (breed) + public index
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:42:05 +02:00
d99294e30e
GEN-1: add phenotype tokens + Farbschlag catalog (18 varieties + Schecke/Rex modifiers)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 23:41:34 +02:00