|
|
45b8533f18
|
feat(deploy): TrueNAS Custom-App + Auto-Deploy, plus aufgelaufene Arbeit
CI / Backend Tests (.NET) (push) Successful in 1m11s
CI / Frontend Tests (Node/Vite) (push) Failing after 4m59s
CI / Docker Build & Push (push) Has been skipped
CI / Deploy auf TrueNAS (Custom App) (push) Has been skipped
Deployment:
- custom-app.compose.yaml: self-contained Compose fuer TrueNAS "Custom App"
(absolute Host-Bind-Pfade, postgres:18, pull_policy always, Port 8090)
- scripts/truenas-deploy.sh: Host-Skript create/redeploy via midclt (App
bleibt unter Apps sichtbar) inkl. Image-Pull + Health-Check
- ci.yml Deploy-Job: laeuft auf ubuntu-latest-Runner, kopiert Deploy-Dateien
per SSH auf den NAS-Host und triggert truenas-deploy.sh (statt runs-on goldeye)
- compose.yaml/.env.example: postgres:18 (Locale-Match zur Quell-DB), Port 8090
- .gitignore: .agents/, tools/rag/, deploy/truenas/.env (Secrets/Scratch)
Aufgelaufene Feature-Arbeit (verified/Freeze, Migrationen, Import-Triage):
- GerbilOverride/VerifiedGerbil-Endpoints + GerbilSnapshotService + Tests
- EF-Migrationen (ShowInChronicle, Stillborn, BirthOrder, ManualFlag, DSGVO)
- Frontend VerifizierteTierePage + verified-API + e2e-Spec
- diverse Import-/Triage-Skripte und -Tests
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-19 09:19:11 +02:00 |
|
|
|
f74af537e2
|
FEAT-8d: docx-Importer fuer Wurfchronik-Detail (extract_docx.py + ImportDocxService)
tools/import/extract_docx.py (stdlib-Python, kein pip):
Parst 'Wurfchronik der Kleinen Chaoten im Detail.docx' (Word/XML via zipfile).
93 Wuerfe + 227 benannte Tiere aus Tabellen extrahiert.
Felder pro Tier: WS-Code, Wurfgeburtsdatum, Name, Farbschlag, Geschlecht (Stern-
Suffix), Abnehmer, Abgabedatum, Tod-Datum + Ursache, Partnername + DOB.
Sonderwerte (ZT/BLEIBT/FREI/VG:) werden herausgefiltert.
Edge-Cases: Doppel-Datum (16./17.03.2021, 31.05/*01.06.2023), WS ohne Zaehler
(/5), fehlende Leerzeichen vor WS:, mehrere Abnehmer (1.) ... 2.) ...).
Output: output/docx_litters.json + output/docx_animals.json.
tools/import/test_extract_docx.py:
Unit-Tests fuer Regex-Logik + Live-Tests gegen die echte docx (skip wenn fehlt).
28/28 Tests gruen.
GerbilManagerWebAPI/Import/ImportDocxService.cs:
Idempotenter NACHZUG-Loader (fill-NULL-only, nie ueberschreiben):
- WS-Code + Wurfgeburtsdatum -> PairingCode -> Gerbil.LitterId
- Abnehmer -> Contact lookup-or-create -> Gerbil.ReceiverContactId
- Abgabedatum -> Gerbil.GoHomeDate
- Tod-Datum + Ursache -> Gerbil.DateOfDeath + CauseOfDeath
Dry-Run zaehlt geplante Aenderungen, Execute schreibt.
GerbilManagerWebAPI/Endpoints/ImportDocxEndpoints.cs:
POST /import/docx/dry-run + /import/docx/execute (analog ImportEndpoints).
GATE: 157/157 C#, 28/28 Python-docx-Tests, ef has-pending=No.
NACHZUG: laueft NACH dem finalen WIPE+REIMPORT-3 (kein Impact auf aktuellen Pipeline).
|
2026-06-06 22:04:09 +02:00 |
|