263 lines
12 KiB
Markdown
263 lines
12 KiB
Markdown
# 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 | **ERLEDIGT** | `EmojiIconPicker` in `AdminTrainingTypesPage.jsx`; Gitea #14 geschlossen (2026-04) |
|
||
| 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 | **TEILWEISE** | P1–P6 + **P7 Admin-Shell** + iOS Bottom-Nav Safe-Area; SSoT-Doku: **`GUI_IA_ADMIN_NAV_2026-04-05.md`**; #30 bleibt offen bis P8/Abnahme |
|
||
| 32 | Version-System (inkl. ehem. #33) | OFFEN | Gitea: Body/Titel 2026-04-04 aktualisiert; Runner/Build-Git bewusst später |
|
||
| 33 | — | GESCHLOSSEN | In #32 konsolidiert (superseded) |
|
||
| 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 — **ERLEDIGT**
|
||
|
||
**Code-Stand:** `AdminTrainingTypesPage.jsx` nutzt **`EmojiIconPicker`** (`frontend/src/components/EmojiIconPicker.jsx`) für Neu- und Bearbeiten-Dialoge; Wert bleibt String in `training_types.icon`.
|
||
|
||
**Gitea:** Issue **#14 geschlossen** (Kommentar + Close, Stand 2026-04).
|
||
|
||
---
|
||
|
||
### #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 (2026-04-05):** **Desktop-Sidebar** (`DesktopSidebar`, `config/appNav.js`) und **Mobile Bottom-Nav** mit horizontalem Scroll + **Safe Area** (`app.css`); **Admin** eigener Bereich **`AdminShell`** mit Gruppen-Hub wie Analyse (`adminNav.js`, `/admin/g/:groupId`, `RequireAdmin`). Siehe **`docs/issues/GUI_IA_ADMIN_NAV_2026-04-05.md`** (Dateipfade, IA, Deploy-Hinweis).
|
||
|
||
**Umsetzungsplan:** `docs/issues/PHASE_PLAN_RESPONSIVE_UI.md` (Phasen P0–P8). **P7** Kern umgesetzt; **P8** (Regression, finale Abnahme) stehen noch aus – Issue **nicht** schließen ohne P8-Checkliste.
|
||
|
||
**Vorschlag:** `TEILWEISE` – Gitea-Kommentar mit Link auf die GUI-Doku; Titel/Beschreibung optional um „Admin-Shell / Ziele-Nav / iOS PWA-Leiste“ ergänzen.
|
||
|
||
---
|
||
|
||
### #32 – Version-System (inkl. ehem. #33)
|
||
|
||
**Gitea (2026-04-04):** #33 geschlossen; Inhalt in **#32** zusammengeführt (ein Epic: `/api/version`, `version.js`, Settings, `main.py`-Konsistenz). Automatische Git-/Build-Identität über den Runner: **zurückgestellt**, geplant als **separates Issue** nach der Basis.
|
||
|
||
**Code-Stand:** `backend/version.py` vorhanden; **`GET /api/version`** fehlt; `main.py`: Root `v9c-dev`, `FastAPI(..., version="3.0.0")`.
|
||
|
||
**Vorschlag:** `OFFEN` – Umsetzung laut aktualisiertem Gitea-Issue #32.
|
||
|
||
---
|
||
|
||
### #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.
|
||
- [x] `#32`–`#33` in Gitea zusammengeführt (#33 geschlossen); Umsetzung weiter über #32.
|
||
- [ ] 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.*
|