# Gitea offene Issues – Review-Entwurf (Stand Code 2026-04-04) > **Zweck:** Du kannst diese Datei **lesen, anpassen, abstreichen**. Nach Freigabe: Kommentare / Schließungen / Konsolidierungen in Gitea umsetzen (manuell oder per `scripts/gitea/gitea_api.py`). > > **Sortierung:** Nach **`created_at` aufsteigend** (älteste Issues zuerst). Duplikat-Issues mit gleichem Inhalt sind am Ende des Abschnitts „Duplikate“ gebündelt. > > **Legende `Vorschlag`:** > - `OFFEN` – noch sinnvoll, weiterverfolgen > - `TEILWEISE` – Teil umgesetzt, Beschreibung/AC anpassen > - `PRÜFEN` – kurzer manueller Test nötig > - `DUPLIKAT` – mit anderem Issue zusammenführen > - `DONE?` – wirkt im Repo erledigt, ggf. schließen nach deiner Bestätigung --- ## Kurz-Übersicht (28 eindeutige Issue-Nummern, zeitlich älteste zuerst) | # | Titel (gekürzt) | Vorschlag | Notiz | |---|-----------------|-----------|--------| | 14 | Icon Picker Trainingstypen | OFFEN | Nur Freitext-Feld `icon` | | 15 | Quality-Filter KI & Charts | TEILWEISE | Registry/Charts Confidence, kein durchgängiges Produkt | | 21 | Universeller CSV-Parser + Mapping | OFFEN | Modul-spezifische Parser | | 25 | Ziele-System Goals | DONE? | GoalsPage, Router, Focus Areas | | 26 | Charts erweitern | TEILWEISE | Phase-0c API + History/NutritionCharts | | 27 | Korrelationen & Insights | TEILWEISE | C-Charts + offene Data-Layer-TODOs | | 29 | Abilities-Matrix UI | TEILWEISE | Admin/ProfileBuilder, UX offen | | 30 | Responsive UI Sidebar | OFFEN | Weiterhin Bottom-Nav-fokussiert | | 32 | version.py + `/api/version` | OFFEN | `version.py` ja, dedizierter Endpoint nein | | 33 | main.py Hardcoded Version | OFFEN | FastAPI `3.0.0`, Root `v9c-dev` | | 34 | External Volumes Doku | PRÜFEN | Gegen Compose abgleichen | | 35 | `subscriptions` Tabelle | PRÜFEN | Schema prüfen | | 36 | BUG Trainingstyp ISE | PRÜFEN | Logs nötig | | 37 | Feature Enforcement Activity CSV | OFFEN | Import ohne vorgeschalteten Check | | 38 | Feature Enforcement Nutrition CSV UI | DONE? / TEILWEISE | Backend-Check da | | 39 | Usage-Badges Dashboard/Assistent | TEILWEISE | v. a. Gewicht im Dashboard | | 40 | Logout Header | DONE? | `App.jsx` LogOut-Button | | 42 | Enhanced Debug UI | DUPLIKAT | Mit #43 zusammenführen | | 43 | Enhanced Debug UI | DUPLIKAT | Mit #42 zusammenführen | | 45 | Prompt-Optimierer | OFFEN | Backlog | | 46 | Prompt-Ersteller | OFFEN | Backlog | | 47 | Wertetabelle Optimierung | OFFEN | UX-Feinschliff | | 49 | Prompt-Zuordnung Verlauf | OFFEN | Kein klarer Treffer | | 54 | Placeholder Registry … | DUPLIKAT | Wie #55 | | 55 | Placeholder Registry … | OFFEN / TEILWEISE | `validate_all` existiert | | 56–58 | Body Cluster Restarbeiten | DUPLIKAT | Dreimal gleicher Inhalt → ein Issue | --- ## Details je Issue (älteste zuerst) ### #14 – [FEAT-001] Icon Picker für Trainingstypen **Code-Stand:** `AdminTrainingTypesPage.jsx` nutzt ein **Textfeld** `icon` (frei, z. B. Emoji). Kein dedizierter Icon-Picker (Palette, Vorschau, Kategorien). **Vorschlag:** `OFFEN` – Issue beibehalten; optional präzisieren: „Emoji-Picker oder vordefinierte Icon-Liste statt Freitext“. **Kommentar-Entwurf für Gitea:** > Stand Backend/Frontend: `icon` wird als String in `training_types` gespeichert, Eingabe ist Freitext. Icon-Picker-UX steht noch aus. --- ### #15 – [FEAT-002] Quality-Filter für KI-Auswertungen & Charts **Code-Stand:** Charts/Data-Layer nutzen **Confidence** u. a.; Placeholder-Registry hat viele `quality_filter_policy` / Evidence-Felder (teilweise `UNRESOLVED`/`TO_VERIFY`). Ein **einheitlicher** „Quality-Filter“-Mechanismus über alle KI-Auswertungen ist nicht eindeutig als fertiges Feature erkennbar. **Vorschlag:** `TEILWEISE` – Issue-Text auf konkrete Lücken schärfen (welche Prompts/Charts, welche Schwellen, SSoT Registry?). **Kommentar-Entwurf:** > Teilaspekte existieren (z. B. Confidence in Chart-Endpoints, Registry-Felder). Offen: durchgängige KI-/Chart-Quality-Pipeline und Abgleich mit Issue-Zielbild. --- ### #21 – [FEATURE] Universeller CSV-Parser mit lernbarem Feldmapping **Code-Stand:** Modulspezifische CSV-Imports (Activity, Nutrition, Vitals, Sleep, …) mit jeweils eigenem Parser; **lernbares Mapping** stark bei **Activity** über `activity_type_mappings`. Kein **ein** generischer CSV-Engine wie im Issue beschrieben. **Vorschlag:** `OFFEN` – oder Scope reduzieren („pro Modul konsolidieren“). --- ### #25 – [FEAT] Ziele-System (Goals) v9e Kernfeature **Code-Stand:** `goals`-Router, `GoalsPage`, Focus Areas, Migrationen – laut Projektstand **weitgehend implementiert**. **Vorschlag:** `DONE?` nach deiner Abnahme – Issue-Body auf verbleibende Teilziele kürzen oder schließen. **Kommentar-Entwurf:** > Backend/Frontend Goals + Focus Areas sind im Repo vorhanden. Bitte verbleibende Wünsche als neue Sub-Issues oder AC hier abhaken und schließen. --- ### #26 – [FEAT] Charts & Visualisierungen erweitern **Code-Stand:** `backend/routers/charts.py` (Phase 0c), viele `api.get…Chart` in `api.js`; `History.jsx` + `NutritionCharts` / `RecoveryCharts` nutzen Chart-Daten. **Vorschlag:** `TEILWEISE` – Issue auf konkrete fehlende Chart-Typen/UI-Verdrahtung schärfen (falls noch offen). --- ### #27 – [FEAT] Korrelationen & Insights erweitern **Code-Stand:** Chart-Endpunkte C1–C4 u. a.; Data-Layer `correlations.py` mit TODO-Stellen in Teilen. **Vorschlag:** `TEILWEISE` – Liste fehlender Korrelationen/Insights vs. Code ergänzen. --- ### #29 – [FEAT] Abilities-Matrix UI (v9f) **Code-Stand:** Training Types mit `abilities` JSONB, `AdminTrainingProfiles`, `ProfileBuilder` – vollständige „5D Matrix“-UX unklar ohne Produktvorgabe. **Vorschlag:** `TEILWEISE` – AC mit aktuellen Screenshots/Flows abgleichen. --- ### #30 – [FEAT] Responsive UI – Desktop Sidebar + 2-spaltig **Code-Stand:** Weiterhin stark **Mobile-first** (z. B. `bottom-nav` in `App.jsx`); keine ausgebaute Desktop-Sidebar wie im klassischen Admin-Dashboard. **Vorschlag:** `OFFEN`. --- ### #32 – Version-System (`version.py` + `/api/version`) **Code-Stand:** `backend/version.py` existiert mit `APP_VERSION`. **`GET /api/version`** im Backend **nicht** gefunden (Suche nach Route); Root liefert u. a. `"version": "v9c-dev"`. **Vorschlag:** `OFFEN` für #32 – `/api/version` implementieren oder Issue anpassen („nur version.py ohne Endpoint“). --- ### #33 – main.py hardcoded Version entfernen **Code-Stand:** `main.py`: `FastAPI(..., version="3.0.0")`; Root-JSON noch `v9c-dev`. **Vorschlag:** `OFFEN` – auf `version.py` vereinheitlichen (inkl. FastAPI-`version`-Feld und Health-Payload). --- ### #34 – External Volumes dokumentieren (Legacy bodytrack_*) **Vorschlag:** `PRÜFEN` – gegen aktuelle `docker-compose`/Deploy-Doku im Repo halten; dann schließen oder Aktualisierung kommentieren. --- ### #35 – Deprecated Tabelle `subscriptions` entfernen **Code-Stand:** Im Migrations-Ordner **kein** aktueller Treffer auf `subscriptions` (Stichprobe); Membership-System nutzt andere Tabellen. **Vorschlag:** `PRÜFEN` – einmal `schema.sql` / DB prüfen, ob Tabelle noch existiert. Wenn weg: Issue schließen mit Verweis auf Migration. --- ### #36 – BUG-009: Trainingstyp-Erstellung → Internal Server Error **Code-Stand:** `TrainingTypeCreate` enthält `abilities` / `profile` (JSONB). ISE oft durch DB-Constraint, NULL/JSON oder fehlende Spalte – **ohne Laufzeit-Log nicht verifiziert**. **Vorschlag:** `PRÜFEN` – in Gitea Notiz: aktueller Request-Body + Stacktrace aus `docker logs`; wenn behoben: schließen. --- ### #37 – Feature-Enforcement Activity CSV-Import **Code-Stand:** `create_activity` nutzt `check_feature_access` für `activity_entries`. **`import_activity_csv`** startet **ohne** vorgeschalteten Limit-Check (im gelesenen Abschnitt nur `get_pid` + Parse) – von Issue #37 noch **nicht** erfüllt. **Vorschlag:** `OFFEN` – hoch priorisieren; analog Nutrition: ein Check vor Bulk-Import + Zählung. --- ### #38 – Feature-Enforcement Nutrition CSV-Import UI **Code-Stand:** `import_nutrition_csv` ruft **`check_feature_access`** für `nutrition_entries` auf (inkl. Logging). **Vorschlag:** `TEILWEISE` / `DONE?` – falls UI-Feedback gewünscht, im Issue auf konkrete UI-Lücken eingehen (Banner, Disable Button). --- ### #39 – Usage-Badges im Dashboard-Assistenten **Code-Stand:** `Dashboard.jsx` nutzt `getFeatureUsage()` für **Gewichts-Widget** (Limit/Lock). Unklar ob „Assistent“-Modus = gesamtes Dashboard oder separater Guide. **Vorschlag:** `TEILWEISE` – Issue präzisieren, welche Kacheln/Bereiche Badges brauchen. --- ### #40 – Logout-Button im App-Header (neben Avatar) **Code-Stand:** `App.jsx` – Header mit **`LogOut` neben Avatar** (Umsetzung vorhanden). **Vorschlag:** `DONE?` – nach kurzem Klicktest **schließen**. **Kommentar-Entwurf:** > In `App.jsx` ist ein Logout-Button im Header umgesetzt. Bitte in target Umgebung verifizieren und schließen. --- ### #42 / #43 – Enhanced Debug / Prompt Analysis UI (Issue #28 Phase C) **Code-Stand:** `Analysis.jsx` mit Expert-Modus, Platzhalter-Gruppierung – kann Teile von Phase C abdecken. **Vorschlag:** `DUPLIKAT` – **ein** Issue behalten; anderes schließen mit Verweis. Inhalte zusammenführen. --- ### #45 – KI Prompt-Optimierer **Vorschlag:** `OFFEN` – Backlog, nicht im aktuellen Code sichtbar. --- ### #46 – KI Prompt-Ersteller **Vorschlag:** `OFFEN` – wie #45. --- ### #47 – Wertetabelle Optimierung **Code-Stand:** Wertetabelle in `Analysis.jsx` / Metadata – viele Punkte eher UX/Performance. **Vorschlag:** `OFFEN` – konkrete UI-Schmerzpunkte in Sub-Tasks splitten. --- ### #49 – Prompt-Zuordnung zu Verlaufsseiten **Code-Stand:** Kein eindeutiger Treffer zu „History page prompt assignment“ in kurzer Suche. **Vorschlag:** `OFFEN` – kurz präzisieren (Welche Seite, welches Datenmodell). --- ### #54 / #55 – Placeholder Registry UNRESOLVED & TO_VERIFY **Code-Stand:** `placeholder_registry_export.py` liefert **`validation_report` über `registry.validate_all()`** (nicht mehr leer aus dem frühen Issue-Text für Body-Cluster „{}“-Teil). Evidence `TO_VERIFY`/`UNRESOLVED` existieren weiter in Registrations. **Vorschlag:** `#54` und `#55` **zusammenlegen** (gleiches Thema, Titel nur Encoding-Unterschied). Ein Issue offen lassen, Metadaten-Audit fortsetzen. --- ### #56 / #57 / #58 – Body Cluster Restarbeiten & Metadaten-Verifizierung **Inhalt:** identische bzw. nahezu identische Langbeschreibung (Metadaten, Layer 2b, Nutrition confidence_logic, Validation Report). **Vorschlag:** `DUPLIKAT` – **eines** behalten (z. B. niedrigste Nummer oder neueste #58 mit aktualisiertem Stand), andere **schließen** mit Verweis „Duplicate of #X“. Validation-Teil: Code hat bereits `validate_all` – Issue-Text Abschnitt „leeres validation_report“ **aktualisieren**. **Kommentar-Entwurf:** > Dreimal dasselbe Issue. Vorschlag: #56/#57 schließen, Tracking nur in #XX. `validation_report` wird aus `registry.validate_all()` befüllt; verbleibende Arbeit: TO_VERIFY-Felder Layer 2b + Nutrition confidence_logic laut Checkliste. --- ## Nachbearbeitung in Gitea (Checkliste für dich) - [ ] Duplikate schließen und verlinken (#42/#43, #54/#55, #56–#58). - [ ] „DONE?“-Issues manuell testen (`#25`, `#38`, `#40`). - [ ] `#37` umsetzen oder Kommentar „noch offen“ bestätigen. - [ ] `#32`–`#33` Versionierung planen (ein gemeinsames Mini-Epic). - [ ] Kommentare aus diesem Dokument kopieren/anpassen. - [ ] Optional: Labels in Gitea setzen (`duplicate`, `blocked`, `needs-retest`). --- ## Technischer Hinweis (Audit / Security) Aus dem Code-Audit 2026-04-04: kritische Punkte (`get_pid` / `X-Profile-Id`, `/api/profiles` ohne Admin) sind **nicht** 1:1 als Gitea-Issues in dieser offenen Liste sichtbar – ggf. **separate** Security-Issues aus `.claude/docs/audit/20260404_code_audit/gitea/` anlegen, falls noch nicht vorhanden. --- *Erzeugt aus Gitea API (28 offene Issues, sortiert nach `created_at`) und statischer Code-Analyse im Workspace. Kein Laufzeit-Test auf dem Pi.*