KI-Feature 4.5.22: KI-Unterstützung direkt aus dem Stunden-Editor starten

Bisher musste man aus dem Stunden-Editor raus, die KI-Hilfe für die ganze
Einheit aufrufen und die gewünschte Stunde in der freien Anweisung erst
benennen. Neuer Button "KI-Unterstützung für diese Stunde" im LessonDialog
öffnet denselben AiAssistDialog im neuen Fokus-Modus.

AiPlanningRequest.FocusLessonId weist die KI im Systemprompt an, sich auf
genau diese Stunde zu beschränken; zusätzlich wie beim Umfangs-Umschalter
client-seitig hart durchgesetzt in Send() und ApplyResponse, statt der
KI-Antwort blind zu vertrauen.

Da "Übernehmen" direkt ins Repository speichert, wären die noch offenen
Feldwerte des ursprünglichen LessonDialog danach veraltet gewesen - der
Dialog schließt sich deshalb nach einer angewendeten KI-Änderung automatisch
mit dem frischen Stand statt ihn mit alten Werten zu überschreiben.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-16 22:48:00 +02:00
co-authored by Claude Sonnet 5
parent 364df378f0
commit 10d82e5e2c
9 changed files with 147 additions and 10 deletions
+21
View File
@@ -840,6 +840,27 @@ folgenden Punkte gehören direkt in `LehrerApp.Desktop`:
(`AiLessonReviewItem.RequestExplanationCommand`), der nach Laden durch den Text ersetzt
wird — dieselbe Anfrage wird nicht zweimal angeboten. Kein neues DB-Schema nötig (nutzt
dieselben `users`/`tokens`/`transactions`-Tabellen wie `plan.php`).
- [x] **4.5.22** KI-Unterstützung direkt aus dem Editor einer einzelnen Stunde heraus statt nur aus
der Einheiten-Übersicht (Nutzer-Feedback: bisher musste man aus der Stunde raus, die
Einheiten-KI aufrufen und die gewünschte Stunde in der freien Anweisung erst benennen).
**Umsetzung:** neuer "Fokus-Modus" im `AiAssistDialog` statt eines separaten Dialogs — Button
"🤖 KI-Unterstützung für diese Stunde" im `LessonDialog` (nur bei bereits gespeicherten
Stunden, eine gerade erst angelegte hat noch keine Id zum Fokussieren) öffnet denselben
`AiAssistDialog`, aber mit `focusLesson` gesetzt. Neues Wire-Feld
`AiPlanningRequest.FocusLessonId`: der Systemprompt in `plan.php` weist die KI an,
ausschließlich diese eine Stunde zu bearbeiten, keine neuen Stunden vorzuschlagen und keine
andere Stunde anzufassen — zusätzlich (wie beim Umfangs-Umschalter 4.5.15) client-seitig hart
durchgesetzt in `AiAssistDialogViewModel.Send` (Antwort wird auf die Fokus-Id gefiltert,
bevor sie überhaupt angezeigt wird) und `AiPlanningService.ApplyResponse`. Der
Umfangs-Umschalter ("Auch bestehende Stundeninhalte anpassen") ergibt im Fokus-Modus keinen
Sinn und wird ausgeblendet (immer erzwungen an).
**Datenkonsistenz-Falle vermieden:** Da `AiAssistDialog` bei "Übernehmen" direkt ins
Repository speichert, wären die noch offenen Feldwerte des ursprünglichen `LessonDialog`
danach veraltet — ein anschließendes normales "Speichern" hätte die KI-Änderung
stillschweigend wieder überschrieben. Der `LessonDialog` schließt sich deshalb nach einer
angewendeten KI-Änderung automatisch (`LessonDialogViewModel.MarkAppliedExternally`, lädt den
frischen Stand statt der eigenen Felder), die aufrufende Liste aktualisiert sich wie nach
einem normalen Speichern.
---