1. `src/jarvis_finance/api/main.py:23-38,112-116` — Raiffeisen Preview fehlt in `READ_ONLY_POST_PATHS` und liefert bei deaktivierten Writes 403. **Fix:** Exakte Preview-Route allowlisten und No-write-API-Test ergänzen. 2. `src/jarvis_finance/services/raiffeisen_manual_snapshot.py:99-106,225-235` — Vorwerte und Summen ignorieren bestätigte Cashbewegungen nach dem letzten Snapshot. **Fix:** `effective_cash_evidence(..., as_of=snapshot_date)` und dieselbe kanonische Baseline für alle Summen nutzen. 3. `src/jarvis_finance/storage/migrations.py:2859-2880` — Immutable-Trigger sind per SQLite `INSERT OR REPLACE` umgehbar. **Fix:** Ersetzbare Konfliktidentität beseitigen beziehungsweise `REPLACE` schemafest verhindern und adversarial testen. 4. `src/jarvis_finance/services/portfolio_analysis_v1.py:172-183,209-216` — True-Wealth-Positionen werden als Aktien/ETF und nochmals als aggregierter True-Wealth-Wert gezählt. **Fix:** Positionen per kanonischer Account-Lineage trennen und True Wealth aus direkter Aggregation ausschließen. 5. `src/jarvis_finance/services/wealth_cockpit.py:1219-1227` — `ytd` wird auf `1y` gemappt und zeigt den falschen Zeitraum. **Fix:** `ytd` direkt an `build_modelled_wealth_development` weiterreichen. 6. `frontend/src/components/wealth/WealthDevelopmentChart.vue:18-21,75-87`; `frontend/src/components/wealth/WealthCockpitPanel.vue:47` — Ankerlose Modellhistorie und Komponenten-Korrekturen werden als bestätigt bezeichnet. **Fix:** Ankerlose Reihe modelliert/gestrichelt darstellen und Korrekturen nicht als Haushaltsanker labeln. 7. `src/jarvis_finance/services/asset_price_refresh.py:93-105,126-189` — Gespeichertes `stale_before` steuert keinen Runner; frische Equity-/Crypto-/FX-Daten werden unnötig aktualisiert. **Fix:** Job-Cutoff an alle Runner binden und Kandidaten ausschließlich daraus bestimmen. 8. `src/jarvis_finance/services/asset_price_refresh.py:164-189,249-250`; `src/jarvis_finance/services/market_service.py:542-583` — FX-Refresh aktualisiert und committet `transactions`; der spätere Guard kann das nicht zurückrollen. **Fix:** Transaction-DML-freien FX-Pfad verwenden und verbotene Tabellen vor Commit technisch sperren. 9. `src/jarvis_finance/services/asset_price_refresh.py:209-213` — Worker-Claim ist nicht atomar; zwei Worker können denselben Job ausführen. **Fix:** Unter `BEGIN IMMEDIATE` per `UPDATE … WHERE status='queued'` claimen und nur bei genau einer geänderten Zeile fortfahren. 10. `src/jarvis_finance/api/routers/system.py:15-20`; `src/jarvis_finance/services/system_ops.py:102-108` — `Origin`/`Referer` steuert einen serverseitigen Healthcheck und ermöglicht SSRF. **Fix:** Client-Origin nie abrufen; ausschließlich validierte Runtime-Konfiguration beziehungsweise enge Allowlist nutzen. 11. `src/jarvis_finance/storage/migrations.py:2840-2858,2934-2975` — Migration 52 repariert frühere Zwischenstände ohne `payload_hash` nicht, weil `CREATE TABLE IF NOT EXISTS` nichts ergänzt. **Fix:** Spalten/Indizes/Trigger per `PRAGMA table_info` idempotent nachrüsten und Zwischenstand→aktuell zweimal testen.