This website requires JavaScript.
b7ee48401a
FEAT-8c: loader tests (in-memory DB + fixture) + public test helpers
Gulum
2026-06-06 07:36:29 +02:00
ac5ab9d0ba
FEAT-8c: import loader — /import/dry-run + /import/execute (gated)
Gulum
2026-06-06 07:33:26 +02:00
a1549266c3
EXPORT-1: e2e - Download-Smoke (/einstellungen) + Mock: /export-Zip, /settings/breeder-profile, URL-Praedikat fuer /api-relative Basis (OPS-1-proof)
Gulum
2026-06-06 07:55:14 +02:00
8fa02a5d49
EXPORT-1: Datenexport-Karte auf /einstellungen (Anker-Download, deutsche Erklaertexte + Foto-Hinweis)
Gulum
2026-06-06 07:55:14 +02:00
e431c50347
FEAT-8c: mark conflict animals in animals.json for the API loader
Gulum
2026-06-06 07:28:45 +02:00
f86a044143
EXPORT-1: GET /export - Zip mit export.json (volle Treue) + deutschen Excel-CSVs (Semikolon, BOM, TT.MM.JJJJ) + LIESMICH; 9 Tests (Escaping + API-Round-Trip)
Gulum
2026-06-06 07:50:42 +02:00
ce1e578bf2
Merge feature/help-1: in-app German user guide /hilfe (9 accordion sections, du-Form, rename-safe labels) [god-QA: 37/37+47/47+e2e 54/54]
Gulum
2026-06-06 07:49:47 +02:00
98060b890b
HELP-1: in-app German user guide (/hilfe, accordion, 9 sections)
Gulum
2026-06-06 07:47:45 +02:00
78da534c7c
FEAT-13: e2e an strukturierte Kontaktfelder angepasst + 2 Abdeckungstests (drops on rebase once Kelly commits the same patch)
Gulum
2026-06-06 07:46:51 +02:00
42718606a9
Merge feature/ops-1: TrueNAS deployment (compose + backup sidecar + nginx proxy + prod Dockerfiles), Gitea CI draft, German ops guide [god-QA: 18/18+47/47+e2e 48/48]
Gulum
2026-06-06 07:42:18 +02:00
d6bf6c6fe3
OPS-1: fix e2e regression -- API_BASE_URL conditional on import.meta.env.PROD
Gulum
2026-06-06 07:39:33 +02:00
04f9e087aa
Merge feature/feat-12a-backend: provider-agnostic AI sale-ad endpoint (Gemini/Groq/Mistral/Ollama via OpenAI-compat, env config, graceful 503) [god-QA: 37/37]
Gulum
2026-06-06 07:39:26 +02:00
95ecb1c0ee
FEAT-12a: provider setup docs (env vars per provider incl. TrueNAS compose placement)
Gulum
2026-06-06 07:37:42 +02:00
36c97e8a7a
FEAT-12a: tests - prompt assembly, 503-unconfigured matrix, stub-provider parsing/auth, completions-URL config matrix (Gemini/Groq/Mistral/Ollama)
Gulum
2026-06-06 07:37:42 +02:00
d9e5a757e9
FEAT-12a: POST /gerbils/sale-ad endpoint (503 AiKeyMissing when unconfigured, 502 AiUpstreamError) + DI wiring
Gulum
2026-06-06 07:37:42 +02:00
f6bb13ca2f
FEAT-12a: provider-agnostic sale-ad AI core - AiOptions (env-only), German prompt builder w/ few-shot, OpenAI-compatible chat-completions client (no SDK)
Gulum
2026-06-06 07:37:42 +02:00
a221e366e6
FEAT-13: singular-aware contract count text (1 Vertrag / n Vertraege)
Gulum
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
Gulum
2026-06-06 07:31:04 +02:00
daa6683405
FEAT-13: SaleContract + BreederSettings entities (additive migration, join table justified in code docs), /contracts + /settings/breeder-profile Minimal-API endpoints w/ Abgabe-completion transaction + SQLite-backed endpoint round-trip tests (21/21)
Gulum
2026-06-06 07:23:06 +02:00
69a0279bb7
OPS-1: TrueNAS compose, backup sidecar, Gitea CI draft, ops docs
Gulum
2026-06-06 07:29:49 +02:00
2f2e5b1f56
OPS-1: Dockerfiles (net10 API + nginx frontend) + production config
Gulum
2026-06-06 07:25:55 +02:00
adea82a0e7
QA-1: document e2e usage (mock/live modes, viewports) in web README
Gulum
2026-06-06 07:21:27 +02:00
ebd61d73a5
QA-1: smoke specs - Navigation, Tiere CRUD+Tabs, Becken/Kontakte+409, Wuerfe+Jungtier, Probeverpaarung+SCHECKE-Warnung, Stammbaum re-root+print, Statistik (24 flows x 2 viewports, German assertions)
Gulum
2026-06-06 07:16:52 +02:00
ec5e755e72
QA-1: stateful in-memory mock API per route interception (DATA-2 contract: Gridify paging, camelCase DTOs, 409 delete-conflicts) + fixtures
Gulum
2026-06-06 07:16:52 +02:00
8d7999c4a5
QA-1: Playwright e2e harness - config (phone 390px + desktop projects, mock/live via E2E_BASE_URL), npm run e2e, vitest excludes e2e/
Gulum
2026-06-06 07:16:43 +02:00
c9723d2fc8
Merge feature/feat-12a: Abgeben flow — multi-select ForSale, /abgabe group composer, paste-package, AI stub [god-QA: 47/47 + build]
Gulum
2026-06-06 07:16:26 +02:00
07dd5c9b8e
FEAT-12a: multi-select bulk 'Zur Abgabe stellen' on the Tiere list
Gulum
2026-06-06 07:13:30 +02:00
aa79f9dbe5
Revert OPS-1 Windows-plan commits (dada3af , 6a37f9e ): superseded by TrueNAS deployment target; re-landed on main against GIT-3 — content preserved on Dwight's branch-to-be
Gulum
2026-06-06 07:12:20 +02:00
3b3497079b
Merge feature/feat-13: Abgabevertrag generator phase A (template + pure OpenXml generator + 10 tests) [god-QA: 18/18]
Gulum
2026-06-06 07:11:30 +02:00
dada3af968
OPS-1: startup scripts, autostart task, backup task, ops README, production config
Gulum
2026-06-06 07:11:09 +02:00
6a37f9e46e
OPS-1: fix backup/restore scripts — ASCII-only + array coerce for Count
Gulum
2026-06-06 07:09:53 +02:00
44f306d18f
FEAT-12a: Abgabe page — Becken-default grouping + per-group listing composer, clipboard/zip export, AI stub
Gulum
2026-06-06 07:09:48 +02:00
cbe77c927a
FEAT-13: ContractGenerator (pure OpenXml, embedded template, per-animal table cloning) + BreederProfile/ContractData records + 10 xUnit tests incl. schema validation & PII guard
Gulum
2026-06-06 07:09:07 +02:00
e4b7558abd
FEAT-12a: ForSale scaffolding — status+ForSale, abgabe strings, /abgabe route+nav, sale-ad API stub, detail action, jszip
Gulum
2026-06-06 01:07:43 +02:00
188b33618e
DATA-2: amendments — GerbilStatus.ForSale, Contact structured fields, 73-variety seed
Gulum
2026-06-06 01:07:19 +02:00
f3b1ecb7a3
FEAT-13: Abgabevertrag placeholder template from her sample contract (18 {{tokens}}, PII scrubbed incl. docProps/mailto-rel, animal photos removed, Zucht logo kept, boilerplate verbatim)
Gulum
2026-06-06 01:03:25 +02:00
7627468b82
DATA-2: optional list params + normalize frontend's '==' Gridify operator
Gulum
2026-06-06 01:00:35 +02:00
c937b6d5a8
GEN-2: add generated ColorVariety seed (73 rows: name, canonicalGenotype, sortOrder, image) for DATA-2
Gulum
2026-06-06 01:00:33 +02:00
6cc007ba55
GEN-2: surface Farbschlag images (FarbschlagImage component) in breeding results, animal detail, form picker
Gulum
2026-06-06 00:58:28 +02:00
7ea2f97e72
FEAT-8b: bake Julian's authoritative Wurfchronik semantics into the extractor
Gulum
2026-06-06 00:56:14 +02:00
a9778ad1d2
GEN-2: expand Farbschlag catalog 18->73 (baseportal.de) + images + collision-aware tests
Gulum
2026-06-06 00:55:35 +02:00
263ba32e3c
DATA-2: fresh Npgsql InitialCreate migration + ColorVariety seed (18)
Gulum
2026-06-06 00:54:56 +02:00
180d53b203
DATA-2: new schema entities + Minimal API endpoints + Scalar + DAL teardown
Gulum
2026-06-06 00:53:49 +02:00
a47fbef785
FEAT-7: AppShell 'Mehr' overflow nav (phone: 4 tabs + Mehr sheet; desktop: all 7) + de.nav.more
Gulum
2026-06-06 00:47:07 +02:00
7ab463d47e
UI: hand-drawn gerbil favicon (sitting Agouti, warm palette, tufted tail)
Gulum
2026-06-06 00:46:46 +02:00
27299e225c
HOTFIX: useMutation.run returns MutationOutcome (no throw); sweep all 7 call sites + README convention
Gulum
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
Gulum
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)
Gulum
2026-06-06 00:41:21 +02:00
1b776cd994
FEAT-8b: spreadsheet import tooling (stages 1-2) + review report
Gulum
2026-06-06 00:40:54 +02:00
016b5a1521
FEAT-7: statistics aggregation module - litters/year, avg litter size, Farbschlag distribution, population curve, losses (9 tests)
Gulum
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)
Gulum
2026-06-06 00:36:14 +02:00
e76554342b
FEAT-3: Zuchtpaar-Übersicht tab (derive pairs from litters) + ?vater/&mutter pair prefill in Probeverpaarung
Gulum
2026-06-06 00:32:44 +02:00
79f260d62e
FEAT-3: Wurf detail workspace (parents, juveniles, Jungtier erfassen prefill, expected Farbschlag via breed)
Gulum
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
Gulum
2026-06-06 00:30:14 +02:00
d3550bbc16
FEAT-3: Wurf create/edit form (parent pickers, auto +35d go-home date, validation)
Gulum
2026-06-06 00:29:52 +02:00
784d3d3f40
FEAT-3: Würfe list page (year filter, sort by date, paging, parent names)
Gulum
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
Gulum
2026-06-06 00:28:31 +02:00
87250ba007
FEAT-3: litter type+CRUD, Zucht strings, /wuerfe nested routes (retire LittersPage)
Gulum
2026-06-06 00:27:29 +02:00
d7be812ad0
FEAT-6: Gesundheit/Gewicht/Fotos tab components + hand-rolled SVG LineChart (no chart dependency)
Gulum
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)
Gulum
2026-06-06 00:27:09 +02:00
17879b1cfb
FEAT-6: typed API clients for health-records, weight-records, gerbil photos (multipart upload)
Gulum
2026-06-06 00:25:00 +02:00
f772464401
FEAT-6: add German strings for Tier-Detail-Tabs (Gesundheit/Gewicht/Fotos)
Gulum
2026-06-06 00:24:30 +02:00
e12588c338
FEAT-3: extract reusable BreedingResultView from GenetikPage (no behavior change)
Gulum
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
Gulum
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)
Gulum
2026-06-06 00:17:49 +02:00
01923d1b87
FEAT-1b: add first test project (xUnit) for Inzuchtkoeffizient
Gulum
2026-06-06 00:13:22 +02:00
caba259a28
FEAT-4: add Stammbaum button to animal detail head-actions
Gulum
2026-06-06 00:12:09 +02:00
5ef27a70d3
IDE: launch.json starts the full stack via Aspire AppHost from the VS Code play button
Gulum
2026-06-06 00:11:32 +02:00
16d3cefe68
FEAT-2: wire /becken + /kontakte routes and nav (Kontakte supersedes Zuechter placeholder)
Gulum
2026-06-06 00:11:11 +02:00
0c94a6ecd3
FEAT-1b: Inzuchtkoeffizient endpoints via Wright path method
Gulum
2026-06-06 00:10:19 +02:00
bca97ed10a
FEAT-4: install react-d3-tree + /rennmaeuse/:id/stammbaum route (page scaffold)
Gulum
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
Gulum
2026-06-06 00:09:43 +02:00
d8e94f6d05
FEAT-5: Probeverpaarung entry point from animal detail (?parent=) + stored-vs-engine Farbschlag mismatch hint
Gulum
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
Gulum
2026-06-06 00:08:06 +02:00
16a0016de9
FEAT-5: add gender-filtered animal pickers to Probeverpaarung parents
Gulum
2026-06-06 00:07:32 +02:00
a1d02c0d4e
FEAT-2: typed CRUD API clients for enclosures + contacts
Gulum
2026-06-06 00:07:01 +02:00
12e787671c
FEAT-2: add German strings for Becken + Kontakte sections (append-only de.ts)
Gulum
2026-06-06 00:06:42 +02:00
5a6326a967
FEAT-5: Probeverpaarung page — free genotype entry, client-side breed(), Farbschlag cards + warnings
Gulum
2026-06-06 00:06:22 +02:00
f7ba1fa70e
FEAT-5: add /genetik route + nav entry + German strings (page stub)
Gulum
2026-06-06 00:04:03 +02:00
e077766cc5
FEAT-1: Tiere create/edit form (German labels, validation, GEN-1 genotype check) + nested routes
Gulum
2026-06-05 23:58:10 +02:00
e9f88b7889
ARCH-2b: add frontend (Vite) as Aspire resource with LAN wiring
Gulum
2026-06-05 23:57:31 +02:00
0237f5de5e
FEAT-1: Tiere detail page — Stammdaten, GEN-1 genotype+Farbschlag, placeholder tabs
Gulum
2026-06-05 23:55:54 +02:00
9b586dd7fa
FEAT-1: Tiere list page — Gridify filters (Status/Geschlecht/Farbschlag), sort, paging + German strings
Gulum
2026-06-05 23:54:44 +02:00
f162ef4fed
FEAT-1: add typed gerbils/lookups API + useApi/useMutation hooks
Gulum
2026-06-05 23:52:39 +02:00
e04b69ce49
FEAT-1: add Gridify query builder + API DTO types
Gulum
2026-06-05 23:50:30 +02:00
3629e89e87
GEN-1: expose CATALOG seed view (Name/CanonicalGenotype/SortOrder) for DATA-2 + round-trip test
Gulum
2026-06-05 23:47:11 +02:00
3cf6413fcc
ARCH-2b: permissive LAN CORS + bind API on 0.0.0.0, drop HTTPS redirect
Gulum
2026-06-05 23:46:59 +02:00
0408a482cf
GEN-1: export genotypeToFarbschlag for DATA-1 denormalization contract
Gulum
2026-06-05 23:45:07 +02:00
0553ceda66
GEN-1: add German genetics warning texts to de.ts (code -> text mapping)
Gulum
2026-06-05 23:43:41 +02:00
3561b435d5
GEN-1: add vitest suite (worked example, SpSp renorm, wildcards) + erasable-enum fix
Gulum
2026-06-05 23:43:21 +02:00
2bee5caaa2
GEN-1: add Probeverpaarung API (breed) + public index
Gulum
2026-06-05 23:42:05 +02:00
d99294e30e
GEN-1: add phenotype tokens + Farbschlag catalog (18 varieties + Schecke/Rex modifiers)
Gulum
2026-06-05 23:41:34 +02:00
f641334982
ARCH-2: move Aspire resource service port 22112 -> 22113
Gulum
2026-06-05 23:41:06 +02:00
ebc61acd18
GEN-1: add lethality rules + warning codes (SpSp lethal+renormalize, ReRe semi)
Gulum
2026-06-05 23:40:06 +02:00
76d8380ea1
GEN-1: add Punnett engine (per-locus + full genotype distribution, wildcard support)
Gulum
2026-06-05 23:39:31 +02:00
3fc430f1a0
GEN-1: add Genotype type + canonical serialization (JSON + display string)
Gulum
2026-06-05 23:38:49 +02:00
9d5608f46e
GEN-1: add locus/allele model (A C D E G P Sp Re, multi-allele C/E)
Gulum
2026-06-05 23:38:18 +02:00
2b9a0cd648
GEN-1: add vitest + exact Fraction utility
Gulum
2026-06-05 23:37:53 +02:00
9b9cf2b35a
ARCH-2: apply EF migrations on startup in Development
Gulum
2026-06-05 23:37:42 +02:00
cc589b13d0
ARCH-2: fresh Npgsql initial migration
Gulum
2026-06-05 23:37:21 +02:00