8eee62ee19
fix: Datenschutz-Scrub in Tests/Kommentaren + Spec-Nachtrag Vorschlags-Algorithmus
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 21:59:29 +02:00
aff8e9b28d
fix: Bestandsabgleich per Token-Match und Volatilitaets-Hinweis fuer Vorschlaege
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 21:46:10 +02:00
a520390e31
chore: Version 0.9.0
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 21:28:29 +02:00
220d1fc802
fix: hinweis-Betrag im Vorschlag deutsch formatiert
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 21:28:15 +02:00
bf3f56118e
feat: Vorschlaege mit Rhythmus, Start und Hinweis
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 21:26:48 +02:00
28d1267f0c
feat: Vorschlags-Algorithmus v2 (Rhythmen, letzter Betrag, Aktiv-Check, Merge)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 21:20:04 +02:00
d6659d8b18
chore: Version 0.8.0
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 14:18:15 +02:00
4431640eb2
feat: Kategorien-Verwaltung auf der Admin-Seite
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 14:17:48 +02:00
b21d7b9839
feat: Eintrags-Formular mit Paar-Layout und Gesperrt-Kennzeichnung
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 14:06:32 +02:00
f03249bff1
feat: eigene Szenarien-Seite /szenarien
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 13:59:03 +02:00
421899b922
chore: Version 0.7.0
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 12:51:17 +02:00
cb44194daf
feat: Szenario-Eintraege als eine editierbare Tabelle
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 12:51:04 +02:00
4843f2e130
feat: PATCH-Endpunkte fuer Szenario-Modifikatoren und -Einmalzahlungen
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 12:43:01 +02:00
a192866cc4
chore: Version 0.6.0
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:59:58 +02:00
033c41f449
feat: Szenario-GUI mit Ende-Modifikator und Einmalzahlungen je Szenario
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:59:42 +02:00
13795fce25
feat: API fuer Szenario-Ende-Modifikator und szenario-eigene Einmalzahlungen
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:52:15 +02:00
5519037688
feat: Engine+Schema fuer Szenario-Ende und szenario-eigene Einmalzahlungen
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:46:52 +02:00
aa1884c31e
feat: Inline-Bearbeiten fuer Fixposten, Einmalposten, Kredite und Szenario-Kopf
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:42:04 +02:00
cbcf2e0439
feat: Start/Ende fuer Fixposten in der GUI + Datumsvalidierung
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:35:32 +02:00
805cb4d852
feat: Betragseingabe mit Komma (data-type=amount in json-form)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:30:58 +02:00
fe0e1b5e93
feat: deutsche Betragsanzeige (eur-Filter) und deutsche GUI-Labels
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 11:23:26 +02:00
1ef297ab89
chore: Version 0.5.0
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 08:46:08 +02:00
09b34ae13b
fix: lueckenlose taegliche Saldo-Reihen fuer Grafana
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 08:32:36 +02:00
f5fa3e45e8
feat: Admin-Seite mit Passwortaenderung und Regel-Neuanwendung
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 08:24:33 +02:00
c2b5f6eaa3
chore: Version 0.4.0
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 22:08:44 +02:00
1b888307e9
fix: DKB-Empfaenger/Zweck-Split per CSV-Ground-Truth, Vergleichswerkzeug
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 22:08:37 +02:00
7a0f71aa8c
feat: Salden-Seite mit Stichtag und Monatsuebersicht
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 21:53:23 +02:00
ea4858c4de
feat: CSV-Import ueber bestehende Pipeline mit dreiwertiger Saldo-Pruefung
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 21:45:53 +02:00
e2d713e960
feat: CSV-Parser fuer DKB/VR/HVB-Kontoumsatz-Exporte
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 21:34:48 +02:00
f6a53b7e56
feat: Konto-Saldo-Anker mit ankerbasierter Saldenrechnung
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 21:25:04 +02:00
6b02fa3d85
chore: CSV-Kontoexporte in fixtures gitignoren (echte Daten)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 21:10:17 +02:00
18b738738b
test: UX-Regressionstests fuer Vorschlaege-Fieldset und Import-Button-Matrix
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 17:18:03 +02:00
06392c0fec
fix: tolerante GUI-Filter, sichtbare Bedienelemente, fixierte Navigation
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 17:09:35 +02:00
e7855a7bda
feat: Import-Rollback fuer bestaetigte Auszuege (v0.3.0)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 16:40:56 +02:00
d71c22adce
feat: Buchungs-Pagination, Inbox-Scan-Button, Grafana-Direktansteuerung, UI-Feinschliff
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 16:18:54 +02:00
0bad69bf42
fix: Final-Review-Feinschliff (DR-Kommentar korrigiert, SameSite-Pin, Grafana-Link-Hostname)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:29:38 +02:00
94eb80506e
feat: gemeinsames Passwort fuer GUI und Grafana, Dashboard-Embedding
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:13:31 +02:00
bba04db663
fix: Arbeitsablauf als nummerierte Liste, HTML-Escaping in Hilfe
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:04:35 +02:00
e40442b73b
feat: Hilfe-Seite mit Gebrauchsanleitung
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:02:19 +02:00
82f278ca00
feat: Versionsanzeige (VERSION-Datei, Footer, /api/version, Image-Tag)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 14:57:49 +02:00
87f8bbc400
fix: json-form-Extension als Superset in base.html konsolidiert
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 14:54:54 +02:00
36d3e4fc59
feat: Konten umbenennbar, Betrag-Spalte mit Euro im Kopf
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 14:50:39 +02:00
f27eda88f4
fix: Parser-Noise-Filter, Sammelstopp am Schlusssaldo, Audit-Werkzeug
...
Alle drei Bank-Parser gegen die realen Fixtures gehaertet:
- DKB/VR/HVB: Sammlung endet am Schlusssaldo (break), damit Summen,
Rechnungsabschluss und Hinweisseiten nicht mehr in die letzte Buchung
rutschen.
- Generische, rein strukturelle Noise-Filter fuer wiederkehrende
Seitenfuss-/Kopfbloecke und Blattwechsel-Reste (keine Kontodaten hart
codiert); Kopf-/Hinweisbloecke werden als Sequenz uebersprungen.
- VR: Rekonstruktion harter Zeilenumbrueche im Verwendungszweck unter
konservativen Schutzbedingungen (nur purpose, nicht counterparty).
- Neue Noise- und expected-Value-Tests; expected_*.json gitignored.
- Audit-Werkzeug scripts/parser_audit.py ergaenzt (nur lokale Nutzung).
Transaktionszahlen und Saldo-Differenzen unveraendert; max. Laenge des
Verwendungszwecks je Bank deutlich unter 300 Zeichen.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 14:46:32 +02:00
917797bb16
fix: Duplikat-Recheck beim Confirm nur statement-uebergreifend
...
Zwei identische Buchungen im selben Auszug teilen sich den dedup_hash. Beim
Confirm markierte die zuerst bestaetigte Buchung ihren Zwilling (autoflush +
Clash-Select) als Duplikat und uebersprang ihn, wodurch der vom Preview
gepruefte Saldo zerstoert wurde. Clash-Query um statement_id != tx.statement_id
erweitert: der Re-Check schuetzt nur noch statement-uebergreifend. Test: Auszug
mit zwei identischen Buchungen -> beide werden bestaetigt.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 20:16:08 +02:00
cf9282c716
fix: Final-Review-Findings (GUI-Login, FK-Kaskaden, Validierung, Duplikat-Recheck, Views)
...
F1: GUI-Login-Hash gegen $-Korruption gehaertet. .env-Werte einfach-gequotet
geschrieben + Sanity-Check nach Sourcing. Zusaetzlich systemd-Ebene:
podman escapt $->$$ in Environment=, systemd 252 kollabiert das nicht ->
sed-Post-Processing der Unit-Dateien. Live-.env: GUI-Passwort rotiert.
F2: Explizite Dependent-Deletes gegen FK-500 (delete_scenario/loan), 409 bei
bestaetigtem Import-Delete. Test-Engine erzwingt PRAGMA foreign_keys=ON.
F3: Enum/Range-Validierung (Literal + Field ge/le) fuer Recurring, Loan,
Modifier inkl. PATCH-Pfade.
F4: Confirm nur fuer draft-Statements (sonst 409) + Dedup-Re-Check gegen
bestaetigte Buchungen vor dem Promoten.
F5: v_balance_history/v_balance_total addieren pro Konto den opening_balance
des fruehesten bestaetigten Statements (approved deviation vom Plan-SQL).
F6: patch_scenario Namenskollision -> 409; create_transaction unbekanntes
Konto -> 404 (statt 500).
F7: Generierte systemd-Unit-Dateien chmod 600 (enthalten Env-Secrets).
F8: Globaler htmx:responseError-Handler in base.html.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 20:11:31 +02:00
a1d8e91cbc
feat: Containerfile und Entrypoint
...
Basis-Image docker.io/library/python:3.12.11-slim wie im Brief gepinnt
(Tag existiert auf Docker Hub, kein Patch-Bump nötig, verifiziert via
podman pull).
Zusätzlich finance/.containerignore ergänzt (.venv/, tests/, .env,
*.sqlite, inbox/, uploads/), da der Build-Kontext sonst echte
Bank-PDFs aus tests/fixtures/ sowie die ~150MB .venv/ in den
Container-Build einschleusen würde.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 19:26:25 +02:00
fca11f551c
fix: Grafana-Datasource-UID gepinnt, Dashboard-Feinheiten
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 19:23:27 +02:00
43e8e8e8f9
feat: SQL-Views und Grafana-Provisionierung
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 19:18:20 +02:00
df6615c8f7
fix: Fehler-Feedback Kreditzuordnung, robustes PDF-Fehlerhandling
...
Kreditzuordnung im Szenario prueft jetzt response.ok, zeigt bei Fehlschlag
eine deutsche Meldung und macht die Checkbox-Aenderung rueckgaengig statt
stillschweigend neu zu laden. process_pdf faengt zusaetzlich zu ParserError
auch unerwartete Parser-Exceptions (z.B. pdfminer bei strukturell kaputten
PDFs) ab und legt dafuer ein sauberes error-Statement an statt eines
unbehandelten 500; die Datei bleibt dabei im Posteingang.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 19:14:43 +02:00
afbbcbe9a5
feat: Import-Seite mit Drag-and-Drop und Planungs-Seite
...
Ersetzt die Platzhalter-Routen aus Task 12 durch echte GUI-Seiten: /import
mit Drop-Zone (Fetch-Upload), gepollter Importliste (Status-Badges,
aufklappbarer Vorschau samt Saldo-/Duplikat-Anzeige, Uebernehmen/Verwerfen)
und /planung mit den vier Abschnitten Fixposten (inkl. Vorschlaege),
Einmalposten, Kredite (Tilgungsplan-Aufklapper) und Szenarien
(Kredit-Zuordnung, Modifikatoren, Durchrechnen mit Ergebnisanzeige).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-17 19:05:58 +02:00