## NICHT FREIGEGEBEN ### Wichtig 1. **Aktuelle Testsuite ist nicht grün** - Finaler Lauf: **5 fehlgeschlagen, 62 bestanden**. - Ursache: `tests/test_multimodal_correlations_v1.py:103` erzeugt Quick-Log-Werte als `score (N)`, während `_severity()` in `scripts/health/multimodal_correlations.py:128-145` nur die produktiven Werte wie `keine (0)`, `leicht (1)`, `mittel (2)`, `schwer (3)` akzeptiert. - Dadurch fehlen vollständige Symptomtage und fünf zentrale Korrelations-/Missingness-Tests schlagen fehl. - **Exakter Fix:** Den Test-Helper `add_complete_symptom_day()` auf dieselben Severity-Strings wie `health_symptom_quick_add.py:34` umstellen; anschließend die gesamte Suite ohne veraltete Bytecode-Artefakte erneut ausführen. 2. **Migrationstest deckt das alte Result-Schema nicht ab** - `tests/test_health_system_migrate_sprint2.py:37-57` testet nur die Neuerstellung einer noch nicht vorhandenen `multimodal_correlation_results`-Tabelle. - Damit ist der ausdrücklich geforderte Upgradepfad einer vorhandenen alten Tabelle ohne `expected_target_days` und `target_coverage` nicht regressionsgeschützt. - **Exakter Fix:** Einen Test ergänzen, der: 1. die alte Result-Tabelle ohne beide Spalten anlegt, 2. mindestens eine bestehende Ergebniszeile einfügt, 3. `main()` zweimal ausführt, 4. beide neuen Spalten samt Defaults prüft, 5. den unveränderten Erhalt der bestehenden Zeile und `PRAGMA integrity_check='ok'` bestätigt. ### Fachlich verifiziert - Dashboard-Histaminserie setzt korrekt `None`/JSON `null`, wenn: - `item_count <= 0`, - `histamine_score IS NULL`, - `histamine_unknown_count != 0`. - Dashboard-Symptomtotal wird nur aus **genau sieben vollständigen Dimensionen** gebildet; doppelte Dimensionen invalidieren das Total. - Migration ist im manuellen synthetischen Alt-Schema-Probe-Lauf additiv und idempotent: - bestehende Result-Zeile erhalten, - neue Spalten ergänzt, - zwei doppelte Symptomzeilen erhalten, - kein Unique-Index über vorhandene Duplikate, - Integritätsprüfung `ok`. - Die beiden erforderlichen Labor-Provenienzfelder werden ergänzt und von der Engine fail-closed ausgewertet. ### Lint - Sprint-2-Migration, Engine und relevante Tests: **Ruff bestanden**. - `health_dashboard_v3.py` hat weiterhin **14 Ruff-E701/E702-Verstöße**, unter anderem an Zeilen 82–83, 529, 548–552, 585–588 und 754. Diese Einzeiler sollten in reguläre mehrzeilige Blöcke zerlegt werden. ### Änderungen - **Keine Dateien erstellt oder verändert.** - Keine Produktionsdaten, Reports oder Secrets geöffnet.