Commit Graph

  • 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