comcoach and teamsbot redesign started
This commit is contained in:
parent
c2ab5d976c
commit
4f4c1c25be
3 changed files with 30 additions and 4 deletions
|
|
@ -1,5 +1,6 @@
|
|||
<!-- status: plan -->
|
||||
<!-- status: build -->
|
||||
<!-- started: 2026-04-29 -->
|
||||
<!-- verified: 2026-05-03 -->
|
||||
<!-- component: gateway, frontend-nyla -->
|
||||
|
||||
# ComCoach Greenfield-IA: TrainingModule + Sessions
|
||||
|
|
@ -41,6 +42,16 @@ ComCoach erst zum vermarktbaren Produkt.
|
|||
(`frontend_nyla/src/pages/views/commcoach/CommcoachKeepAlive.tsx`)
|
||||
beibehalten -- die Voice-Session darf nicht gekillt werden bei
|
||||
Sidebar-Wechsel.
|
||||
- **Bestehendes `goals`-Feld**: `CoachingContext.goals` existiert bereits
|
||||
als `Optional[str]` (JSON-Array `[{id, text, status, createdAt}]`).
|
||||
Beim Rename wird es zu Freitext umgewidmet; bestehende JSON-Werte per
|
||||
Migration zu Plain-Text konvertieren (Ziel-Texte extrahieren).
|
||||
- **Bestehendes `category`-Feld**: `CoachingContext.category` ist ein Enum
|
||||
(`leadership`, `conflict`, `negotiation`, ..., `custom`). Beim Rename
|
||||
wird `category` durch `moduleType` ersetzt. Migration:
|
||||
alle bestehenden `category`-Werte -> `moduleType="coaching"`, altes
|
||||
Feld `category` wird deprecated/entfernt.
|
||||
- **Bestehendes `description`-Feld**: Bleibt erhalten, ergaenzt `goals`.
|
||||
|
||||
## Ziel und Nicht-Ziele
|
||||
|
||||
|
|
@ -110,7 +121,8 @@ flowchart LR
|
|||
| `title` | text | "Konfliktgespraeche", "JS-Grundkurs" |
|
||||
| `moduleType` | enum | `coaching` \| `training` \| `exam` \| `elearning` |
|
||||
| `personaId` | UUID? | Default-Persona fuer Sessions |
|
||||
| `goals` | text | freie Zielbeschreibung |
|
||||
| `description` | text | Kurzbeschreibung (besteht bereits) |
|
||||
| `goals` | text | freie Zielbeschreibung (existiert als JSON, wird zu Freitext migriert) |
|
||||
| `kpiTargets` | jsonb | strukturierte Ziel-KPIs |
|
||||
| `status` | enum | `active` \| `archived` \| `completed` |
|
||||
| `createdAt` / `updatedAt` | timestamp | -- |
|
||||
|
|
@ -144,6 +156,9 @@ flowchart LR
|
|||
| 2026-04-29 | Sidebar 5 Tabs (statt 4 mit Doppelung) | Use-Cases brauchen klare Trennung Assistent vs. Liste |
|
||||
| 2026-04-29 | Statistik im Settings-Tab raus, nur Dashboard | Doppelung weg |
|
||||
| 2026-04-29 | KeepAlive bleibt nur fuer Session-Tab (nicht Module/Dashboard) | Voice-Session muss persistieren, Listen koennen unmounten |
|
||||
| 2026-05-03 | `goals`-Feld wird von JSON-Array zu Freitext migriert | Vereinfachung, JSON-Struktur war overengineered |
|
||||
| 2026-05-03 | `category`-Enum entfaellt zugunsten von `moduleType` | Keine zwei Klassifizierungs-Dimensionen noetig |
|
||||
| 2026-05-03 | Alle Zeilennummern gegen Codebase verifiziert, alle korrekt | Pre-Build-Audit |
|
||||
|
||||
## Umsetzungs-Checkliste
|
||||
|
||||
|
|
@ -152,7 +167,12 @@ flowchart LR
|
|||
- [ ] `datamodelCommcoach.py`:
|
||||
- Klasse `CoachingContext` -> `TrainingModule` (Rename, alle
|
||||
FKs in Childs `contextId` -> `moduleId`).
|
||||
- Neue Felder `kpiTargets jsonb`, `moduleType enum`, `goals text`.
|
||||
- Neues Feld `kpiTargets jsonb`, neues Feld `moduleType enum`.
|
||||
- Bestehendes `goals` (JSON-Array) -> Freitext migrieren.
|
||||
- Bestehendes `category` (Enum) -> entfernen (ersetzt durch
|
||||
`moduleType`). Bestehende Werte per Migration alle auf
|
||||
`moduleType="coaching"`.
|
||||
- `description` bleibt unveraendert.
|
||||
- [ ] DB-Migration: `script_db_rename_coaching_context_to_training_module.py`.
|
||||
Tabellenname Postgres-Rename, FK-Spalte `contextId` -> `moduleId`
|
||||
auf allen abhaengigen Tabellen (`CoachingSession`,
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
<!-- status: plan -->
|
||||
<!-- status: build -->
|
||||
<!-- started: 2026-04-29 -->
|
||||
<!-- verified: 2026-05-03 -->
|
||||
<!-- component: gateway, frontend-nyla, teams-bot -->
|
||||
|
||||
# TeamsBot Greenfield-IA: MeetingModule + Live-Update-Fixes
|
||||
|
|
@ -38,6 +39,9 @@ TeamsBot zum verlaesslichen Meeting-Tool.
|
|||
- Backend `stats`-Payload bereits vorhanden, nur nicht gebunden.
|
||||
- `MeetingModule` ist additiv -- alte `TeamsbotSession`-Eintraege
|
||||
bekommen `moduleId` per Migration (Default-Modul "Adhoc").
|
||||
- **Namenskonvention**: `TeamsbotSession` hat `startedByUserId` (nicht
|
||||
`userId`/`ownerUserId`). `MeetingModule.ownerUserId` ist konsistent
|
||||
mit dem bestehenden Pattern.
|
||||
|
||||
## Ziel und Nicht-Ziele
|
||||
|
||||
|
|
@ -177,6 +181,7 @@ flowchart LR
|
|||
| 2026-04-29 | 5 Tabs (statt 3) | Use-Cases brauchen klare Trennung Assistent/Module/Live |
|
||||
| 2026-04-29 | SSE bleibt (kein WS) | Architektur stabil, Browser-Bot nutzt WS, Frontend nicht |
|
||||
| 2026-04-29 | Dashboard-Counts: Adaptive Polling jetzt, SSE-Channel als Follow-up | Pragmatisch, schnell sichtbar |
|
||||
| 2026-05-03 | Alle Zeilennummern gegen Codebase verifiziert, alle korrekt | Pre-Build-Audit |
|
||||
|
||||
## Umsetzungs-Checkliste
|
||||
|
||||
|
|
@ -14,6 +14,7 @@ Skip: reine Refactors, Formatting, Lint, Dep-Bumps, Test-only, Wiki-Tippfehler.
|
|||
|
||||
## 2026-05-03
|
||||
|
||||
- 2026-05-03 | docs | wiki | **ComCoach + TeamsBot Greenfield-IA: Plaene verifiziert und in `2-build/` verschoben.** Alle Zeilennummern und Code-Referenzen gegen aktuelle Codebase geprueft (alle korrekt). ComCoach-Plan ergaenzt: `goals`-Feld existiert bereits (JSON->Freitext-Migration), `category`-Enum wird durch `moduleType` ersetzt, `description`-Feld bleibt. TeamsBot-Plan ergaenzt: Namenskonvention `startedByUserId` dokumentiert. Beide Plaene: `<!-- status: build -->`, `<!-- verified: 2026-05-03 -->`. (c-work: `2-build/2026-04-comcoach-greenfield-ia.md`, `2-build/2026-04-teamsbot-greenfield-ia-and-live-update.md`)
|
||||
- 2026-05-03 | fix | gateway | **AI Step Output: `context` Feld zeigte Prompt statt Input-Context.** `actionNodeExecutor.py` baute `out["context"]` falsch aus `promptText + extractedContext` zusammen. Wenn AI ein Binary-Dokument erzeugte (z.B. Excel), war `extractedContext` leer und `context` wurde identisch mit `prompt`. Jetzt wird der tatsaechliche aufgeloeste `context`-Input-Parameter gespeichert.
|
||||
- 2026-05-03 | fix | frontend-nyla | **FormGeneratorTree: Auto-Scroll bei Expand am unteren Bildschirmrand.** Wenn ein Gruppenobjekt in der unteren Haelfte des sichtbaren Bereichs expanded wird, scrollt der Container den Parent-Node zur Mitte, damit Kinder ohne manuelles Scrollen sichtbar sind.
|
||||
- 2026-05-03 | fix | frontend-nyla | **Automation > Workspace Tab: Polling fuer laufende Runs.** `_WorkspaceTab` pollt `fetchWorkspaceRunDetail` alle 3s solange Run-Status nicht terminal. Stoppt automatisch bei completed/failed/cancelled.
|
||||
|
|
|
|||
Loading…
Reference in a new issue