KAIA

Release Notes

Jede Änderung am KAIA-Prototyp — vom ersten Commit bis heute. Mit Aufwandszeit, Commit-SHA und wissenschaftlicher Einordnung.

Einträge
Release-Tage
Gesamtaufwand
NeuVerbesserungFixInfraDocs
2026-08-07/08Studienstart live · Abschluss-Redesign · Admin-Fortschrittsübersicht · CI-Fixes13 Änderungen
Verbesserungd9541591h 10min

**Admin Auswertung: Pre/Post-Fragebogen-Status je Teilnehmer:in.** Neue Spalten "Pre-Fragebogen" / "Post-Fragebogen" mit grünem "ausgefüllt"-Badge oder grauem "ausstehend". Backend-Endpoint `/admin/participants/progress` liefert `pre_survey_done` + `post_survey_done` via GseResult-Abfrage in einem DB-Roundtrip. Coverage-Gate: 63% → 65.06% via 14 neue Tests (participants/progress, send_single_study_start_mail, reset_test_user, settings-Routen, build_session_detail). nanoid <3.3.17 High-Severity-Vuln geschlossen.

feat: participant progress with survey status + fix CI coverage & nanoid

Verbesserung960213a45min

**Admin Auswertung: Fortschrittsübersicht aller aktiven Teilnehmenden.** Neue Tabelle mit Fortschrittsbalken (Session x/10) erscheint sobald jemand die erste Session gestartet hat — unabhängig vom COMPLETED-Status. Macht Studienfortschritt in Echtzeit sichtbar.

feat: add participant progress overview to admin Auswertung

Verbesserung9fb70b715min

**Admin Auswertung: korrekter Leerstand-Text.** Vorheriger Text suggerierte fälschlicherweise "Noch keine Teilnehmenden markiert", obwohl die Studie bereits läuft. Korrekte Botschaft: Daten werden erfasst, Tabelle erscheint erst nach Abschluss aller 10 Sessions. Modell-Liste bereinigt.

fix: update auswertung empty state + clean up model list

Verbesserungd516e6f20min

**Admin Thesis-Cockpit: falsche Dateinamen korrigiert.** Alle 6 Kapitel-Seiten (Theorie, Kap3–Kap6) hatten inkorrekte `readDoc()`-Dateinamen und zeigten Fallback-Platzhalter statt Thesis-Inhalt. Ursache: Dateinamen im Code entsprachen nicht den tatsächlichen `docs/KAIA_Kap*.md`-Dateien.

fix: correct thesis chapter filenames in all admin pages

Verbesserung31b142e30min

**WeasyPrint PDF: native Libraries im Docker-Image.** `python:3.12-slim` enthält kein libcairo/libpango — WeasyPrint installierte sich, crashing dann zur Laufzeit mit `OSError`. Fix: `apt-get install libpangocairo-1.0-0 libgdk-pixbuf-2.0-0 fonts-noto-core` im Runner-Stage des Dockerfiles. PDF-Download auf der Abschluss-Seite funktioniert jetzt vollständig. Rebuild des API-Images erforderlich.

fix: install WeasyPrint system libs in API Docker image

Verbesserung072b4ae30min

**WeasyPrint: Fehlerbehandlung und Fehleranzeige im UI.** `except ImportError` fing native-Library-Fehler nicht — auf `except Exception` erweitert. HTML-Fallback mit `Content-Disposition: attachment`. Frontend zeigt jetzt konkrete Fehlermeldung unter dem Download-Button statt still zu scheitern.

fix: catch all WeasyPrint exceptions and show PDF error in UI

Verbesserungfe1466a4h

**Abschluss-Seite `/abschluss` vollständig neu gestaltet.** Radar-Chart (Chart.js) für MSLQ-Subskalen. Session-Summaries einzeln aufklappbar. Vollständige Chat-Transkripte je Session. Farbiger PDF-Bericht. GSE prä/post-Vergleich mit Delta-Badge. Die Abschluss-Seite ist die zentrale Ergebnisdarstellung für Teilnehmende nach 10 Sessions — zeigt die persönliche Lernentwicklung.

feat: redesign /abschluss page with radar charts, session summaries, full chat logs + colorful PDF

Verbesserungeac1d0145min

**Admin Testauswertung-Seite.** Zeigt Rohdaten der Simulation-User (GSE-Werte, MSLQ, Chat-Transkripte) zur Verifizierung des Journey-Test-Flows. Macht Datenspeicherung kontrollierbar ohne echte Studienteilnehmende zu benötigen.

feat: admin Testauswertung page for journey test data review

Verbesserungde193f330min

`is_simulation`-Flag wird jetzt persistent in die DB geschrieben. Chat-Route bypassed Session-Limit und Daily-Limit konsistent für alle Simulation-User — verhindert False-Positive-Sperren bei Admin-Tests.

fix: correct is_simulation persistence + consistent bypass in chat routes

Verbesserung78b164915min

Test-Token-Laufzeit auf 8h verlängert (vorher 15 min — zu kurz für vollständige Session-Tests). Slot-Counter aus Registrierungs-UI entfernt (irreführend bei `STUDY_MODE=locked`).

fix: extend test token to 8h, remove slot counter from registration

Verbesserung0e566b830min

**Seed-Sessions-Endpoint** `POST /admin/users/{id}/seed-sessions`: generiert N abgeschlossene Sessions für Simulation-User — Journey-Test in Sekunden statt Minuten. Forscher-Links auf der Mitmachen-Seite direkt zur Registrierung.

feat: seed-sessions endpoint + journey test researcher links

Verbesserungd34793315min

Session-Summary-Extraktion: `response_format={"type": "json_object"}` erzwungen — verhindert `JSONDecodeError` wenn GPT Markdown-Codeblock-Wrapping erzeugt.

fix: active users table UI improvements

Verbesserungd5050d430min

Tests für Export- und Admin-Endpoints ergänzt. npm-Audit-Vulnerabilities gefixt (esbuild + vite).

test: add export + admin tests; fix npm audit vulnerabilities

2026-08-03/04Feature Freeze · LLM-Umbau auf OpenAI · Abschluss-Seite · Studie-Exportstack11 Änderungen
Verbesserungc1bfbfd5h

**LLM-Architektur-Umbau: Anthropic vollständig entfernt.** `_iter_llm()` als einheitlicher Streaming-Einstiegspunkt für alle LLM-Calls — ein Code-Pfad, kein Provider-spezifischer Branch mehr. Anthropic-SDK aus Dependencies entfernt, kein impliziter Claude-Fallback möglich. Standard-Modell ab sofort `gpt-4.1-mini`. Commits `c1bfbfd` · `6cb57bb` · `39927e7` · `ab42e15`.

feat: implement real-time token streaming via _iter_llm, remove Anthropic

Verbesserunge2201551h 15min

**thinking_strip vollständig wiederhergestellt.** `<thinking>`-Blöcke werden gepuffert und vor dem SSE-Output entfernt — Nutzer:innen sehen nie die internen Klassifikationsschritte des V7-Warm-Prompts. Warnung im Log wenn Block unvollständig (verhindert stilles Partiell-Strippen). meta_question max_tokens auf 400 erhöht (Meta-Fragen wurden gelegentlich abgeschnitten).

fix: strip <thinking> blocks before SSE output, restore thinking_strip

Verbesserung74cfa371h 30min

Unit-Tests für `_provider()` und `_iter_llm()` ergänzt — Coverage-Gate (65%) nach dem LLM-Umbau wiederhergestellt. CI wieder grün.

test: add _provider and _iter_llm unit tests to restore coverage above 65%

Verbesserung66188533h

**Abschluss-Seite `/abschluss`**: GSE prä/post-Vergleich (numerische Werte + Differenz), MSLQ-Subskalen als Balkengrafik (4 Subskalen: Kognition, Motivation, Lernstrategie, Ressourcenmanagement), Session-Tabelle (alle 10 Sessions mit Datum und Message-Count), Reflexionsfeld, PDF-Button. Zentrale Ergebnisdarstellung für Studienteilnehmende nach Abschluss aller 10 Sessions — zeigt die persönliche Entwicklung der Selbstwirksamkeitserwartung.

feat: implement /abschluss completion screen with GSE/MSLQ comparison

Verbesserungb83add61h

`GET /api/v1/chat/sessions/summary` Endpoint: liefert `message_count` pro Session für die Abschluss-Seite. Seed-Completion-Logik für Simulation-User (MSLQ/GSE-Dummy-Werte, 10 Session-Stubs) — macht `/abschluss` testbar ohne echte 10 Sessions zu durchlaufen.

feat: add sessions/summary endpoint and seed-completion for sim users

Verbesserung270cec730min

Admin-Button "Studie abschließen" für Simulation-User: setzt Journey-State manuell auf COMPLETED (ausschließlich `is_simulation=True`). Vollständiger Test des Abschluss-Flows in wenigen Klicks.

feat: add seed-completion button for simulation users in admin panel

Verbesserungc81c06d3h

**Studien-Export-Endpoints:** `GET /api/v1/admin/export/participants.csv` — 37 Spalten, R-ready, participant_ids (P01/P02 Pseudonymisierung), alle 10 GSE-Items + 4 MSLQ-Subskalen + Session-Counts. `GET /api/v1/admin/users/{id}/export/pdf` — WeasyPrint, Chat-Transkripte + Scores. Direkter Eingang für R-Analysen nach Studienende ohne manuelles Datenzusammenführen.

feat: add admin export endpoints for study data (CSV + PDF)

Verbesserung9b6dd1a2h

**Admin-Auswertungsseite `/admin/auswertung`**: Tabelle aller COMPLETED-Teilnehmenden mit Aggregate-Stats (Ø GSE prä/post, Ø MSLQ-Subskalen über alle Abgeschlossenen), Einzel-Download-Buttons für CSV und PDF direkt aus der Tabellenzeile. Anthropic vollständig aus Model-Selector und Survey-Profile-Service entfernt.

feat: add Auswertung admin page with per-participant CSV/PDF export

Verbesserungbd1da0e45min

**Studienstart-Mail pro Teilnehmer:in**: Admin kann Studienstart-Nachricht an einzelne Accounts senden. Simulation-User (`is_simulation=True`) werden automatisch aus Sammel-Versand ausgeschlossen — kein versehentlicher Mail-Blast an Test-Accounts.

feat: per-user study-start mail + exclude simulation users from bulk send

Verbesserungf1e38161h 30min

**Admin-Fixes:** Kompakte Icon-only-Buttons in Aktiv-User-Tabelle (Platzersparnis). Delete-Button direkt in der Aktiv-Ansicht. Hard-Delete für Vorregistrierungen (kein Soft-Delete, keine Benachrichtigungs-E-Mail). Delete-Button auch in Entfernt-Ansicht sichtbar. Admin-Remove als Hard-Delete aus DB (kein Soft-Delete-Zombie). Onboarding-Thema wird vorausgefüllt wenn Profil vorhanden.

fix: compact icon-only buttons · add delete buttons · hard-delete pre-registrations

Verbesserungd42af6630min

**Topic-Lock (Thema-Anker) im V7-Warm-Prompt**: KAIA verankert das Lernthema aus dem Onboarding explizit als Gesprächsanker — verhindert thematischen Drift in späteren Sessions. Alle 10 Sessions bleiben auf das deklarierte Lernthema fokussiert.

feat: add topic-lock (Thema-Anker) to V7 warm prompt

2026-08-02Studienstart-Clearance · Session-Reflexion UX · Summary-Fallback · Admin Session-Picker15 Änderungen
Verbesserungfe450721h 30min

**Studienstart-Clearance: drei Code-Fixes + zwei Server-Aufgaben.** (1) Daily-Limit-SQL: Browser-Crash erzeugte leere Geister-Session die das Tageslimit aufbrauchte — `EXISTS`-Subquery auf Messages korrigiert das. (2) Datenschutzerklärung: Anthropic Claude Sonnet korrekt als primärer LLM-Anbieter eingetragen, OpenAI GPT-4.1-mini als Fallback — DSGVO Art. 13 Empfänger-Transparenz hergestellt. (3) DSE-Self-Service-Versprechen entfernt — "Profil → Datenschutz"-UI existiert nicht, Ausübung der DSGVO-Rechte jetzt per E-Mail (Art. 12 Abs. 3). (4) CSP-Header in Caddyfile: `default-src 'self'`, Sentry `connect-src`, `frame-ancestors 'none'`. Server: STUDY_MODE=pilot gesetzt (Daily-Limit jetzt aktiv), Hetzner-Backup aktiviert (€1.20/Mo).

fix: study readiness blockers — daily limit, DSE, CSP

Verbesserung31853d530min

Session-Nummern-Logik: `COUNT(sessions with messages)` → `MAX(session_number)` — verhindert Session-Nummern-Rücksprünge wenn leere Sessions vorhanden sind. Admin-Session-Picker schreibt korrekte Nummern auch bei Lücken.

fix: use MAX(session_number) instead of COUNT for session numbering

Verbesserung486c6df1h

Session-Summary-Extraktion: vollständiger Fallback von Claude Haiku auf GPT-4.1-mini bei API-Fehler, mit Traceback-Logging für alle Fehlerpfade. Die KAIA-Reflexion nach Session-Ende wird jetzt garantiert berechnet — auch bei temporären Anthropic-Ausfällen.

fix: add OpenAI fallback + full tracebacks for session summary extraction

Verbesserungf78da7f45min

Admin Chat-Test: Session-Picker (1–10) erlaubt gezieltes Testen einer bestimmten Session ohne alle Vorgänger durchlaufen zu müssen. Ref-Pattern verhindert Race Condition bei schnellem Wechsel. Nur für `is_simulation=True`-User.

feat: add session picker (1-10) in admin chat-test for targeted testing

Verbesserung0ee382920min

PDF-Download-Button in der KAIA-Reflexion-Karte prominent gestaltet: volle Breite, "Gespräch + Reflexion als PDF speichern". Reflexionsinhalt ist jetzt tatsächlich im PDF enthalten.

fix: make PDF download in reflexion card prominent and correctly labeled

Verbesserung28b256f15min

Datenschutzerklärung und Mitmachen-Seite auf GPT-4.1-mini als Session-Summary-Fallback hingewiesen. (Durch `fe45072` nochmals korrigiert: Anthropic korrekt als Primäranbieter.)

docs: update Datenschutzerklärung und Mitmachen für GPT-4.1-mini

Verbesserung3136da620min

Closing max_tokens auf 600 erhöht (Abschlussphrase wurde gelegentlich abgeschnitten). Timeout-Meldung "Reflexion konnte nicht geladen werden" nach 30s wenn Summary-Extraktion hängt.

fix: increase closing max_tokens to 600, add summary loading timeout

Verbesserungd11dd9b20min

Opening max_tokens auf 1200 erhöht. preferred_name stale-closure in useEffect repariert (Wunschname wurde in Session-1-Eröffnung nicht korrekt verwendet).

fix: increase opening max_tokens to 1200 and fix preferred_name stale closure

Verbesserungb39170b15min

Opening-Trigger sperrt Zeitreferenzen (KAIA fragt nicht mehr nach Tagesgeschehen in Session-Eröffnungen). Summary-Polling auf 2s beschleunigt.

fix: prohibit time references in opening trigger, faster summary polling

Verbesserung33b7cbb30min

KAIA-Reflexion nach Session-Ende als erste und prominenteste Aktion: separates Panel, volle Breite, eigener CTA — nicht mehr versteckt unter dem "nächste Session"-Flow.

feat: Reflexion-Button als erste prominente Aktion nach Session-Ende

Verbesserung2df512b30min

MAX_TOKENS auf 4000 erhöht (war 2048 — zu knapp für komplexe Antworten in späteren Sessions). Session-Openings laufen jetzt auf Haiku statt Sonnet — günstiger, schneller, ausreichend für strukturierte Eröffnungsfragen.

fix: increase MAX_TOKENS to 4000 and use Haiku for session openings

Verbesserungba18d9715min

Operator-Precedence-Bug in Prompt-Rendering behoben. setState-in-effect-Lint-Fehler in Admin-Eval-Seite gefixt.

fix: operator precedence and setState-in-effect lint errors

Verbesserungbb3e7cb2h

**PDF-Export** der Session-Transkripte inkl. KAIA-Reflexion aus dem Chat-Interface. **Thinking-Indicator** während KAIA antwortet. Reflexions-Button prominent nach Session-Ende.

feat: PDF-Export, Thinking-Indicator und prominenter Reflexions-Button

Verbesserungdcf5b811h

**Per-Teilnehmer-Cost-Tracking**: Kosten pro Nutzer:in in Admin-Ansicht sichtbar. Korrekte Sonnet-4-6-Preise hinterlegt. Kostenlimit-Sperre bei Überschreitung des pro-User-Budgets.

feat: per-participant cost tracking + correct Sonnet 4.6 prices

Verbesserung88d1cab20min

V7-Warm-Prompt: Explizite Cross-Session-Referenzen erlaubt — KAIA kann jetzt direkt auf frühere Sessions verweisen. Vorher blockierte ein zu strenger Constraint alle Rückbezüge.

fix(prompts): enable explicit cross-session references in V7 warm

2026-07-29Mitmachen-Seite · KAIAs Reflexion · Session-Journey · npm Audit5 Änderungen
Verbesserungc2d444e20min

npm audit: 6 High-Severity-Vulnerabilities in Web-Dependencies behoben. `package.json overrides` für `postcss` (≥8.5.18) und `sharp` (≥0.35.0) zwingen Next.js, gepatchte Versionen in eigenen node_modules zu nutzen. CI-Audit auf `--omit=dev` umgestellt: `brace-expansion` läuft ausschließlich durch ESLint (devOnly, nie in Production). Lokal und CI: 0 high vulnerabilities.

fix: resolve npm audit high severity vulnerabilities in web

Verbesserung1a3ccf41h 30min

**Mitmachen-Seite vollständig neu** — nach 3-Agenten-Review (UX, Compliance, Psychologe). Neu: Einführungsgespräch als Schritt 2 (~15 Min Videocall vor Studienstart), KAIAs Session-Reflexion erklärt, alle 10 Session-Namen als Grid (Ankern → Loslassen). Korrekturen: "mindestens" → "genau 10 Sessions", Interview 45 Min → 15–20 Min, "Nach Woche 4" → "Nach Woche 3", CTA-Widerspruch aufgelöst, Telefonnummer Forscherin (0176 611 59 403), zweite Krisenhotline (0800 111 0 222), CoI-Deklaration im Footer. DSGVO-Fix: "Keine US-Clouds" durch korrekte SCC-Formulierung ersetzt (Anthropic/OpenAI erhalten Chat-Inhalte zur KI-Verarbeitung auf Basis von EU-SCCs).

feat: update mitmachen page for study launch

Verbesserung4c7354215min

KAIAs Reflexion: Ladetext korrigiert auf "Ich notiere kurz, was ich aus diesem Gespräch mitnehme." (Vorgänger "nachlassen" bedeutet auf Deutsch auch "abnehmen" — grammatikalisch mehrdeutig).

feat: KAIA reflection — notiz-text while loading, button on ready

Verbesserung436d53845min

**KAIAs Reflexion** — Session-Zusammenfassung nach Session-Ende hinter Button statt Auto-Show. UX: "Ich notiere kurz…" → "KAIAs Reflexion ansehen"-Button → expandierbare Karte (Stimmung, Themen, stärkstes Zitat, nächster Schritt).

feat: KAIA-Reflexion button — session summary on demand, not auto-shown

Verbesserunga5446bb1h

Studienzeitraum finalisiert: 8.–28. August 2026 (3 Wochen), Interviews 1.–4. September, Thesis-Abgabe 3. Oktober. Alle Thesis-Dokumente aktualisiert (Kap. 2, 4, 6, Studienprotokoll, Teilnahmevereinbarung, Anhang, Ethikkommission). "Vier Wochen" → "drei Wochen" durchgehend.

docs: update study timeline — 3 weeks, Aug 8–28, interviews Sep 1–4, thesis Oct 3

2026-07-26V7 Prompt · Session-Journey · Tages-Limit · Completion-Page · Studienstart verschoben22 Änderungen
Verbesserung65af3644h

**KAIA Prompt V7** — Vollständige Überarbeitung des System-Prompts: Session-spezifische Opening-Trigger für alle 10 Sessions (jeweils mit eigenem Gesprächseinstieg und Retrieval-first Memory-Anchor). Einzel-Fragen-Constraint: genau 1 Fragezeichen pro KAIA-Antwort ([EINZEL-FRAGE]-Block + Check #14). Beziehungsreife-Block ab Session 6 (Elenchos, schärfere Konfrontation). `session_tone` und `session_memory_horizon` pro Session differenziert. Chat-Header: "Session 4 — Ausprobieren · von 10". Phase-Marker nach S3 ("Einstiegsphase abgeschlossen") und S5 ("Halbzeit"). Abschluss-Seite (`/abschluss`) neu: "Alles abgeschlossen.", privates Textarea-Ritual, "Fertig."-Button.

feat: V7 prompt + session-named journey arc + hero experience improvements

Verbesserungfcfb59d30min

Thema-Lock: Session 1 erlaubt einmalige Thema-Änderung, danach gesperrt. Meta-Reflexion Polling-Fix: `showSummaryCard` state korrekt reset auf `resetSession`.

feat: topic lock + one-time change in session 1 + fix meta-reflection polling

Verbesserungb33e03125min

Alembic-Migration für KAIA Prompt v6 repariert: `updated_at`-Spalte entfernt (existiert nicht in Prod-Schema), DELETE + INSERT statt ON CONFLICT (idempotent).

fix: prompt v6 migration — remove updated_at + use DELETE/INSERT instead of ON CONFLICT

Verbesserung0ba14b230min

Studienabschluss-Seite `/abschluss` + Redirect nach Post-Survey. Teilnehmende landen nach dem Post-Fragebogen auf einer Abschlussseite statt auf einem leeren State.

feat: study completion page + redirect after post-survey

Verbesserungd5e752c1h 30min

**KAIA Prompt v6** — Konzept-Drift-Sperre (Check #12): KAIA wechselt das Gesprächsthema nicht, solange der aktuelle Faden unabgeschlossen ist. Schritt-Abschluss-Check (Check #13): KAIA fragt nach dem konkreten nächsten Schritt bevor sie zum nächsten Gedanken wechselt.

feat: KAIA prompt v6 — Konzept-Drift-Sperre + Schritt-Abschluss-Check

Verbesserunge13f10b1h 15min

Tages-Limit pro User: max. 1 Session/Tag (studienkonform). Preferred Name: KAIA fragt in Session 1 nach dem Wunschnamen, speichert in `users.preferred_name`, verwendet ihn in allen folgenden Sessions im System-Prompt. Admin-Timestamp in Kostentabelle.

feat: daily session limit, preferred name collection, name in prompt

Verbesserungf825db820min

Studienstart auf **8. August 2026** verschoben (war 1. August). Studiendauer von 4 auf **3 Wochen** reduziert (Ende: 28. August 2026). 10 Sessions bleiben. Alle Stellen im System aktualisiert: StudyCountdown, Mitmachen-Seite, Landing Page, Onboarding, Survey, E-Mails, Thesis-Dokumente.

feat: add foreign language + new learning topic examples to onboarding

Verbesserung9869f1310min

authFetch für Disclosure-Acknowledgement repariert: Bearer-Token wurde nicht mitgeschickt → 401 beim KI-Disclosure-Bestätigungs-Endpoint.

fix: use authFetch for disclosure-ack to send Bearer token

Verbesserungcda4e6d10min

Fragebogen-Einstiegstexte auf Transfer-USP ausgerichtet. Titel: „Wie weit bringst du dein Wissen in die Praxis?" (war: „Wie lernst du bisher?"). Erklärtexte benennen jetzt explizit die Wissen-Handeln-Lücke als Messziel — kein generischer Lernfragebogen mehr.

fix: align survey intro texts with KDG/transfer USP

Verbesserungcc1fb4025min

Docker-Dev-Umgebung repariert: Prompts-Volume-Mount und KAIA_EVAL_PROMPTS_DIR fehlten in docker-compose.dev.yml (war in Prod vorhanden). Dockerfile.dev läuft jetzt Alembic-Migrationen beim Start automatisch.

fix: add prompts volume mount and migrations to dev docker setup

Verbesserung942157a3h

Thesis-Kapitelstruktur vollständig auf Exposé-Gliederung umgestellt (mit Betreuern abgestimmt). Einleitung v2.0: Terminologische Grundlagen für „neuroadaptiv" und „Lernbegleitung/KDG". 7 neue Dokumente: Kap. 5–7 (Platzhalter), Abstract, Eidesstattliche Erklärung, Abkürzungsverzeichnis, Navigationsübersicht.

docs: Thesis-Kapitelstruktur auf Exposé-Gliederung umgestellt

Verbesserung9ad9e812h

**KDG als USP — vollständiger Umbau.** KAIA positioniert sich nicht mehr als generischer Lernbegleiter, sondern explizit als Transfer-Instrument für den Knowing-Doing Gap (Pfeffer & Sutton, 2000). Alle Nutzertexte, Onboarding, Mitmachen-Seite, KI-Disclosure und Fragebogen-Rahmung überarbeitet. Placeholder-Beispiel: „Kritische Feedbackgespräche, die ich immer wieder aufschiebe."

feat: Knowing-Doing Gap als USP — vollständiger Umbau

Verbesserung499b91e45min

Journey-Guard verschärft: Reihenfolge Disclosure → Onboarding → Prä-Fragebogen wird nun serverseitig erzwungen (403 bei falscher Reihenfolge). Kein Bypass durch direkte URL mehr möglich.

feat: enforce full journey order in app guard

Verbesserungdd69ac61h

Crisis-Detection: Bypass-Bug behoben (bestimmte Formulierungen umgingen den Pre-Filter), fehlende Muster ergänzt. Eval-Pipeline: Goldset-Validierung für Crisis-Szenarien erweitert.

fix: crisis detection bypass and missing patterns in eval pipeline

Verbesserung4c1e67630min

Eval-Judge-Kalibrierung: Score-Grenzen für M3 (Persona-Responsivität) und M5 (Sequenz-Kohärenz) geschärft. Central-Tendency-Bias reduziert — Judge verteilt Scores jetzt trennschärfer über die volle Skala.

fix: sharpen M3 and M5 judge score boundaries to reduce central-tendency bias

Verbesserungbaeeb4b45min

KAIA System-Prompt v5: Schweiger-Check (#11) integriert. KAIA unterscheidet jetzt zwischen einsilbiger Antwort als Rückzug vs. als Nachdenken — Rupture-Repair-Sequenz reagiert entsprechend differenziert.

feat: add Schweiger-Check #11 to KAIA system prompt v5

Verbesserunged888b145min

MSLQ Subskala V "Control of Learning Beliefs" (4 Items): misst, ob Teilnehmende glauben, dass ihr Lernerfolg von ihrer eigenen Anstrengung abhängt (vs. externen Faktoren). Fünfte Subskala im Pre/Post-Survey.

feat: add MSLQ subscale V "Control of Learning Beliefs" (4 items)

Verbesserung7c7029d30min

MSLQ Subskala V im Survey-UI sichtbar: motivierender Intro-Screen vor dem Fragebogen ("Bevor wir starten — ein kurzer Moment für dich").

feat: add MSLQ Subskala V to survey UI + motivating intro screen

Verbesserung994ae3315min

Goldset-Beispiel m6-g001 ersetzt: Coaching-Drift im alten Beispiel führte zu systematisch zu hohem Judge-Score für M6 (Autonomie-Respekt). Neues Beispiel zeigt echte KAIA-Grenze (direktive Formulierung korrigiert).

fix: replace m6-g001 goldset example to eliminate coaching drift

Verbesserungc786ca945min

Judge-Validierungsmethodik in Thesis Kap. 5 + Anhang M dokumentiert: Cohen's κ-Berechnung, Goldset-Design, Inter-Rater-Reliabilität-Protokoll für LLM-Evaluationsbericht.

docs: add judge validation methodology to thesis (Kap 5 + Anhang M)

Verbesserung860d6e910min

User-Kostenlimit auf €5.00 erhöht (war €2.00). Pre-Test zeigte: €2.00 reicht für ~15 KAIA-Turns — zu wenig für sinnvolle 10-Session-Journey.

fix: raise user cost limit to €5.00 for study participants

Verbesserungf8bc25510min

Prompt-Versions-ID für v4_warm korrigiert + Supersession-Test aktualisiert (referenzierte falsche Version).

fix: correct v4_warm version number and update supersession test

2026-07-13Chat-Anleitung, Tages-Banner, Melde-Funktion + UX-Redesign9 Änderungen
Verbesserung2c41f5015min

Chat-Header-Icons korrigiert nach UX-Review: Flag → AlertCircle (semantisch: Meldung, kein Punkt-setzen), DoorOpen → CheckCircle2 (Session abschließen = Abschluss, nicht Abgang), "Session beenden" → "Sitzung abschließen" (sprachlich positiver), Info → HelpCircle.

Verbesserung2e99a9020min

Charakter-Buttons aus dem Header in den Input-Bereich verschoben. Kontextuell sinnvoller: Die Charakterwahl gehört zur Gesprächsgestaltung, nicht zur globalen Navigation. Labels: 🌸 Begleitend · ⚡ Konfrontierend · 🎭 Perspektivwechselnd. Tap-Target ≥44px (WCAG 2.5.5).

Verbesserungddd481120min

Studienstart auf 1. August 2026 verschoben (war 16. Juli). StudyCountdown, /mitmachen, Landing Page, Vorregistrierungs-Flow, Studienprotokoll, Backend-Service aktualisiert. Study-Lock jetzt 28. Juli 2026.

Verbesserung158df1620min

Ton-Selector direkt über Chat verschoben (war versteckt im Header). Sitzung-abschließen-Button neben Senden-Button für konsistentere Bedienbarkeit.

fix: Ton-Selector direkt über Chat, Sitzung-abschließen neben Senden-Button

Verbesserung5e784c315min

Beenden-Button prominenter: Icon (CheckCircle2) + Label direkt neben dem Senden-Button sichtbar. Verhindert unbewusstes Tab-Schließen ohne Session-Abschluss.

fix: Beenden-Button prominenter — Icon + Label direkt neben Senden

Verbesserungff405cb15min

Session-Counter-Bug: Zähler ging nach `resetSession` rückwärts (3 → 2). Fix: Session-Nummer wird aus DB geladen, nicht aus lokalem State.

fix: session counter goes backwards after resetSession

Verbesserung2691e6910min

TypeScript-Narrowing im Charakter-Selektor: `disabled`-Bedingung korrigiert — verhinderte falsches Greying-out von Charakter-Buttons.

fix: TypeScript-Narrowing in Charakter-Selektor — disabled-Bedingung korrigiert

Verbesserung3ac152710min

DPA-Tasks mit Frist 18. Juli 2026 und Links zu Anthropic/OpenAI-DPA-Seiten im Backlog hinterlegt.

chore: DPA-Tasks mit Links und Frist 18. Juli 2026 im Backlog

Verbesserungf7aa3651h 30min

Vollständige Thesis- und Dokumentations-Aktualisierung auf Stand 13. Juli: Kap. 2–6, Studienprotokoll, Teilnahmevereinbarung, BACKLOG, ARCHITECTURE synchronisiert.

docs: vollständige Thesis- und Doku-Aktualisierung auf Stand 13. Juli 2026

2026-07-15DPAs abgeschlossen · Mistral ausgeschieden · Prompt v4 · Celebration Screen · B1/B3-Fixes11 Änderungen
Verbesserung45a995820min

Anthropic DPA archiviert: Mit Commercial ToS automatisch akzeptiert (SCCs Module Two, irisches Recht, controller→processor). PDF in `docs/legal/anthropic_dpa_2026-07-15.pdf`. Backlog-Task abgehakt.

docs: archive Anthropic DPA and mark as complete

Verbesserung7e2927820min

Mistral nach Pre-Test aus LLM-Eval-Scope ausgeschlossen. Begründung: Empathiequalität im Acceptance-Test unzureichend für Studienstandards. LLM-Eval läuft jetzt mit Anthropic Claude + OpenAI only. Vereinfacht LLM-Evaluationsbericht erheblich.

docs: drop Mistral from LLM eval scope after pre-test

Verbesserung4357f2d10min

OpenAI DPA-Bestätigung archiviert: OpenAI Ireland Ltd. als Vertragspartner (EWR), SCCs Modul 2, gültig ab 1. Januar 2026.

docs: archive OpenAI DPA confirmation and mark as complete

Verbesserung16ba1e210min

OpenAI DPA-PDF archiviert + vollständige Compliance-Dokumentation abgeschlossen. Beide DPA-Backlog-Tasks erledigt.

docs: archive OpenAI DPA PDF, complete compliance documentation

Verbesserung8b98a3530min

Vorläufiger Acceptance-Test dokumentiert (Acceptance-Kriterien G1-G3 für Claude-Sonnet-4.6 erfüllt). Mistral offiziell aus Studienscope ausgeschlossen und in allen Dokumenten aktualisiert.

docs: integrate preliminary acceptance test + exclude Mistral from study scope

Verbesserung519e1951h

**Post-Studie Celebration-Screen** — Nach der Post-Messung sehen Teilnehmende eine Abschlussseite mit Pre/Post-Vergleich ihres GSE-Scores und der MSLQ-Subscores. Visualisiert die persönliche Entwicklung ohne sie zu interpretieren. Psychologen-Gate G11: Normative Referenz (Schwarzer & Jerusalem, 1995), keine klinische Aussage.

feat: post-study celebration screen with pre/post comparison

Verbesserung91868fc2h

**KAIA Prompt v4** — Drei Verbesserungen: (1) Typ-5-Loop-Fix: KAIA fragt nicht mehr in jeder Antwort nach dem gleichen Schrittfortschritt. (2) Koan/Analogie als neues Gesprächselement für Session 4+. (3) Melden-Button im Prompt explizit sichtbar gemacht.

feat: KAIA Prompt v4 — Typ-5-Loop-Fix + Koan/Analogie + Melden-Button sichtbar

Verbesserung1cf814815min

OSF-Vorregistrierung vollständig aus Thesis und Backlog entfernt. Vom Betreuer nicht als Pflicht bestätigt — Entfernung vereinfacht Thesis-Struktur ohne wissenschaftlichen Verlust.

docs: OSF-Vorregistrierung vollständig aus Thesis und Backlog entfernt

Verbesserung0aa22eb20min

Datenschutzerklärung: Mistral aus Auflistung der Datenempfänger entfernt. Schrems-II-Formulierung präzisiert: Transfers an Anthropic/OpenAI auf Basis von EU-SCCs dokumentiert.

fix: Datenschutzerklärung — Mistral entfernt, Schrems-II-Formulierung präzisiert

Verbesserunge9663ee20min

Session-1-Abschlussfrage korrigiert: war Bloom-5-Synthesefrage ("Was hast du heute entdeckt?") — ersetzt durch nicht-präsupponierende Bloom-1-2-Frage ("Woran würdest du heute Abend merken, dass sich etwas bewegt hat?"). Psychologen-Gate G11.

fix: S1 Abschlussfrage — nicht-präsupponierende Bloom-1-2-Frage statt Bloom-5-Discovery

Verbesserung94b3c3c20min

Post-Closure Bug B1 behoben: `is_final_exchange`-Flag verhindert jetzt, dass KAIA nach dem formalen Session-Abschluss noch eine neue Frage stellt (war: Endlosschleife im Abschluss-State).

fix: Post-Closure B1 — is_final_exchange verhindert neue Frage nach Sitzungsabschluss

2026-07-16Session-10-Flow · Meta-Reflexion UI · Passwort-Reset · B3-Fix4 Änderungen
Verbesserungfa569a61h 30min

**Passwort-Reset-Flow** via Brevo SMTP: User fordert Reset an, bekommt E-Mail mit Token (30 Min Gültigkeit), setzt neues Passwort. Vollständig: `POST /auth/forgot-password` + `POST /auth/reset-password`. DSGVO-konform (kein Tracking-Pixel).

feat: password-reset flow via Brevo SMTP

Verbesserung725fc8d1h

**Meta-Reflexion UI** — KAIA schreibt nach Session-Ende eine kurze Reflexion (Stimmung, Themen, stärkstes Zitat, nächster Schritt). Karte erscheint nach dem Abschluss — optional lesbar, kein Pflicht-Interaktionspunkt.

feat: meta-reflection UI — session summary after session end

Verbesserung79144ad20min

Bug B3 behoben: `count_sessions()` zählte orphaned Sessions (ohne Nachrichten) mit — Tages-Limit wurde dadurch fälschlicherweise überschritten. Fix: Query schließt leere Sessions aus (`WHERE message_count > 0`).

fix: B3 — count_sessions excludes empty orphaned sessions

Verbesserungf079f1f30min

Session-10-Abschluss-Flow: Nach der letzten Session werden Teilnehmende automatisch zur Post-Befragung weitergeleitet (`/umfrage/post`). Kein manueller Schritt mehr nötig.

feat: session-10 completion flow — redirect to post-survey

2026-07-18Goldset M2-M6 + Judge-Validierungsscript + Release Gates1 Änderung
Verbesserungcce50552h

**Goldset M2-M6 + Release Gates** — Goldset-Beispiele für alle fünf operationalisierten Metriken (M2 Empathie, M3 Persona-Responsivität, M4 Sokratische Reinheit, M5 Sequenz-Kohärenz, M6 Autonomie-Respekt) manuell gelabelt. Judge-Validierungsscript: berechnet Cohen's κ zwischen Judge-Scores und Goldset-Labels. Release Gates: Eval-Pipeline startet erst nach erfolgreichem Gate-Check (κ ≥ 0.6).

feat: add goldset M2-M6, judge validation script, release gates

2026-07-11Per-User LLM-Modell + GPT-5.6 Terra + GPT-4.1 mini + Eval-Fix5 Änderungen
Verbesserung20319f82h 30min

Per-User-Modellzuweisung implementiert: Admin kann für jeden Studienteilnehmenden das LLM individuell festlegen (Admin → User-Liste → Modell-Dropdown, auch in Journey-Test). Neue Spalte `kaia_model` (nullable) in `users`. PATCH `/api/v1/admin/users/{id}`. Gilt für alle vier Stream-Funktionen (opening, response, closing, meta-question). System-Standard wenn leer. Schema-Update: `UserRead` gibt `kaia_model` zurück.

feat: per-user LLM model assignment + GPT-5.6 Terra support

Verbesserung2a275ae30min

Kritischer Fix für OpenAI GPT-5.x: API lehnt `max_tokens` ab (invalid_request_error), erwartet `max_completion_tokens`. Betrifft alle Chat-Stream-Calls und Eval-Judge-Calls für GPT-5.x. Mistral verwendet weiterhin `max_tokens`.

fix: use max_completion_tokens for OpenAI GPT-5.x models

Verbesserung52df1e630min

GPT-5.6 Terra (gpt-5.6-terra) in Eval-Pipeline, Admin-Model-Switcher und Kostentabelle. Kosten: $5.00/M Input · $15.00/M Output.

Verbesserung430b6f015min

GPT-4.1 mini Labels und Cost-Estimates im Eval-UI.

Verbesserung50e633930min

Eval-Judge JSON-Parse-Fehler: LLMs betten gelegentlich literale Newlines in JSON-Strings ein. Fix: Zwei-Stufen-Parse (sauber → `re.sub(r"[\n\r\t]", " ", ...)` Bereinigung → Fallback score=None mit Logging).

2026-07-07Chat-Abschluss-Stabilisierung1 Änderung
Verbesserung7b7077945min

Vier kritische Chat-Fixes: (1) Abschluss-Schleife — KAIA fragte nach dem Close endlos nach Feedback (State-Machine-Fix). (2) Logout-Redirect nach Session-Ende. (3) Startseite-Link im Footer. (4) Token-Refresh robuster — stale Tokens werden proaktiv rotiert.

2026-07-06E-Mail-System, Registrierung v2, Datenschutz-Bereinigung5 Änderungen
Verbesserung56870291h 30min

E-Mail-Benachrichtigungen für drei Ereignisse: Registrierung (Bestätigung + Wartehinweis), Freischaltung durch Admin (mit Login-Link), Studienstart (mit Journey-Link). DSGVO-konform, kein Tracking-Pixel, SMTP via FastAPI BackgroundTask.

Verbesserung169ce2b45min

Lernthema-Eingabe direkt im Registrierungsformular (war bisher erst im Onboarding). Admin kann User löschen (DSGVO Art. 17 Kaskade aller Daten).

Verbesserungfaf281830min

Journey-Routing-Fix, Registrierungsformular-Redesign, Session-Start-403-Fix.

Verbesserungd1f19db15min

OSF-Pre-Registration und Ethikvotum-Hinweise aus allen öffentlichen Seiten entfernt. Hintergrund: Beides noch nicht abgeschlossen — öffentliche Ankündigung wäre irreführend.

Verbesserung390310a5min

Unbenutzter Mail-Import in Admin-Users entfernt.

2026-07-05Eval-Matrix, Crash-Persona-Simulation, Multi-Model, Prompt Caching (Mega-Sprint)30 Änderungen
Verbesserungf2185a34h

Eval-Matrix v1: Vier Metriken (Empathie, Sokratik, Konsistenz, Crisis-Detection-Safety). LLM-as-Judge (Claude Sonnet 4.6). Simulation-Persona-Runner (10 Crash-Personas). Cancel-Endpoint. Admin-UI mit Live-Log + Heatmap.

Verbesserung0bef8761h

Simulation: Stop-Button, Persona-Auswahl (alle/Teilmenge), Lauf-Historie mit Zeitstempel.

Verbesserung3c5f4d62h

Multi-Model Eval: Alle vier LLMs (Claude Sonnet, Claude Haiku, GPT-4o, Mistral Large) parallel evaluierbar. Admin Model Switcher für Chat.

Verbesserung703d42e1h

Eval-Vergleichsmodus: Direkte Gegenüberstellung zweier Modelle über alle Metriken.

Verbesserung720afc820min

KAIA_CHAT_MODEL env-var für Modell-Override ohne Code-Änderung.

Verbesserung062495110min

KAIA_CHAT_MODEL via .env ins Docker-Environment durchgereicht.

Verbesserungd0a09e945min

Anthropic Prompt Caching für alle LLM-Calls aktiviert. System-Prompts + Session-Kontext als Cache-Kandidaten markiert. ~70% Kostenreduktion bei langen Prompts.

Verbesserungfce8d3620min

Prompt Caching auch für Eval-Judge und Persona-Simulator. Judge-System-Prompt identisch über alle Metriken — idealer Cache-Kandidat.

Verbesserung678320630min

Eval Compare Mode: Per-Persona-Blöcke vertikal gestapelt für bessere Lesbarkeit.

Verbesserung9b60e4220min

Compare Mode UX: Deltas in Ø-Spalten, klareres Differenz-Banner.

Verbesserungc3ef8ec30min

Eval-Run löschen möglich. Compare-Mode-Fixes. Model-Badge generalisiert.

Verbesserung82aa06e45min

Simulation + Eval-Matrix UX: 4-Schritt-Flow (Modell → Simulation → Eval → Ergebnisse), ETA-Banner, Fortschrittsanzeige.

Verbesserung76fc9f120min

Heatmap zeigt geflaggte Metriken pro Zelle statt has_flags-Bool.

Verbesserung8ebeb1045min

Session-spezifische Abschlussfragen (Session 10 ≠ 1-9). Session-Wiederaufnahme wenn Browser ohne Abschluss geschlossen wird (window-close-Handling via GET /sessions/active).

Verbesserung1d10b9730min

Session-Prompt-Modell mit M2-Judge synchronisiert. Crisis-Detection erweitert (mehr Trigger-Phrasen).

Verbesserung0e5cfad30min

Rate-Limit-Retry mit exponenziellem Backoff. Mistral-Small-Empfehlung im Eval-UI für kosteneffiziente Evaluierungen.

Verbesserungea3fb2b15min

Fix: Mistral + OpenAI brauchen mindestens eine User-Message (leere Message-History crash).

Verbesserung9751e6015min

Fail-fast bei erschöpftem Anthropic API-Kontingent (429 → sofortiger Fehler).

Verbesserungfe4daab20min

Eval-Log zeigt Simulations-Fehler + Judge-Reasoning bei score=None.

Verbesserunge7aa1b615min

Eval Stop = tatsächlich Stop. Live-Log. Prompt-Pfad-Fix.

Verbesserungc2b2bf210min

Eval-Matrix Leerstate erklärt Trennung von Simulation und Eval.

Verbesserung9e5428e10min

ETA-Banner zeigt korrekte Gesamtsession-Anzahl bei Teilauswahl.

Verbesserung8ff33f410min

session_numbers im Eval-Modal korrekt übertragen.

Verbesserung106616f5min

Haiku-Kostenrate auf 0.040 EUR/Turn (empirisch gemessen).

Verbesserung73b05c410min

Kostenschätzung auf empirische Messwerte kalibriert.

Verbesserung1622c615min

Kostenangaben auf 2 Nachkommastellen.

Verbesserung56c610210min

Eval-Matrix Login-Redirect behoben (Next.js Admin-Proxy-Routen).

Verbesserungeab24df20min

test_chat + test_prompts repariert (UserProfileRepository + v3 warm-Prompt).

Verbesserung43915b430min

Release Notes Redesign: Neue Timeline-Ansicht. Admin-Link in Nav für eingeloggte Admins.

Verbesserung3bf298320min

Coverage-Gate wiederhergestellt: 66% (war 53% durch neue Eval/Simulation-Dateien).

2026-07-04Supplement: Live-Kosten, Auth, API-Stabilisierung, Quality Gates13 Änderungen
Verbesserungb14a8f945min

Live-Kostentransparenz: llm_usage-Tabelle, Admin-Dashboard zeigt Kosten pro User in Echtzeit. Basis für Cost-Guard (max. €2/User).

Verbesserungfbe9ef315min

API-Timeouts auf alle Anthropic-Client-Calls (connect=5s, read=60s, write=10s).

Verbesserungdccd0e510min

MAX_TOKENS 1500 → 3000. v3-Prompt braucht deutlich mehr Denk-Budget.

Verbesserunga58188715min

authFetch leitet bei abgelaufener Session automatisch auf /login um.

Verbesserungf3af2625min

Admin-Test-Token auf 2h (war 15min — zu kurz für Journey-Tests).

Verbesserungbb2c30620min

KAIA nutzt learning_topic in erster Session für gezieltes Motiv-Probing.

Verbesserungf60241c5min

Admin-Dashboard Health-Check URL korrigiert (doppeltes /api entfernt).

Verbesserung2315c2310min

Migration ON CONFLICT → DELETE+INSERT (PostgreSQL-Kompatibilität).

Verbesserungaecb22130min

Haiku gibt JSON mit Markdown-Fences zurück — Strip-Mechanismus. Cross-Session-Kontext robuster.

Verbesserungb284aa11h

Tier-2 Qualitäts-Gates: Domain-Grenzen durch import-linter erzwungen, Factory-Pattern.

Verbesserunga9a460445min

Quality Gates Tier 1: chat/service.py aufgeteilt, Test hardening.

Verbesserung4c181cc20min

mypy zum Pre-Commit-Hook hinzugefügt.

Verbesserung550a2c220min

mypy-Fehler in summary, survey/service, users/models behoben.

2026-07-04Session-Architektur v3: Persistentes Nutzerprofil, kumulatives Gedächtnis, session-aware Prompt

04.07.2026 · Session-Architektur-Redesign v0.9.0

Vollständige Neugestaltung der KAIA-Session-Architektur auf Basis eines interdisziplinären Team-Reviews (Psychologe, Didaktiker, AI Engineer, UX Designer). KAIA war bisher session-blind — kein Zugriff auf Sitzungsnummer, kein kumulatives Gedächtnis, kein persistentes Lernenden-Profil. Das ist jetzt grundlegend behoben.

▸ Technische Details einblenden

Was sich für Nutzer:innen ändert:

KAIA weiß ab jetzt in welcher Session sie sich befindet und verhält sich entsprechend. Die Gesprächsführung eskaliert systematisch von explorativem Erkunden (Sessions 1–2) über Transferarbeit und Analyse (Sessions 3–8) bis zur Synthese (Sessions 9–10). Session 5 enthält immer einen obligatorischen Halbzeit-Spiegel. Session 10 endet mit drei simultanen Aufgaben: Gegenüberstellung der eigenen Aussagen von Session 1 mit heute, Autonomisierungsfrage ("Wie lernst du ohne mich weiter?") und — bewusst — kein GSE-Priming vor der Post-Messung.

Im Chat-Header wird jetzt "Session N von 10" angezeigt. Ab Session 9 erscheint ein stiller Kontext-Satz ("Das ist deine vorletzte Session." / "Das ist deine letzte Session.") — ohne Fanfare, ohne UI-Element, als einfacher Hinweis.

Technische Umsetzung (vollständig):

Zwei-Schichten-Profil-Modell: • Layer 1: Neue Tabelle user_learning_profiles — unveränderlicher Snapshot nach Pre-Survey (MSLQ + GSE). Speichert gse_baseline, subscale_scores (JSONB), gse_items (JSONB) und eine LLM-generierte profile_interpretation (Haiku, max. 120 Wörter). UNIQUE-Constraint verhindert Doppelanlagen auch unter paralleler BackgroundTask-Ausführung. • Layer 2: session_summary in chat_sessions — kumulative Verhaltensdaten inkl. neu hinzugefügtem Feld strongest_quote (stärkster eigener Satz des Lernenden pro Session).

PromptContext v3 — 7 neue Felder: session_number, session_phase (early/mid/late), is_final_session, user_turns, learner_profile, gse_baseline, session_history_summary, historical_quotes.

Kumulatives Session-Gedächtnis: load_all_session_contexts() aggregiert alle Vorsessions kompakt (älteste zuerst). Inline-Re-Extraktion mit 12-Sekunden-Timeout entfernt — das war das größte Latenz-Risiko beim Session-Start.

KAIA_PROMPT_V3_WARM (aktiv): Jinja2-Template mit session-aware Logik: Session-Kontext-Header, Lernenden-Profil-Block (Hintergrund, nie explizit zitieren), obligatorischer Session-5-Trigger, Historical-Quotes-Block (ab Session 6 für Widerspruchsarbeit Typ 3), Session-10-Drei-Aufgaben-Abschluss. V2 als Eval-Regression-Baseline erhalten.

Profil-Trigger nach Pre-Survey: maybe_create_learning_profile() als BackgroundTasks-Task nach /survey/mslq und /survey/gse — idempotent, kein LLM-Call pro Session.

Thesis-Relevanz: Das persistente Nutzerprofil ist ein Kernbaustein der neuroadaptiven Personalisierung (Forschungsfrage 2). Die regelbasierte MSLQ-Profil-Übersetzung (4 Kombinationen: Enthusiast / Kompetente-ohne-Antrieb / Gewissenhafte / Lernstarke) ist als Phase-3-Feature geplant — die Architektur ist vorbereitet. Wichtig für die LLM-Evaluation: V2 bleibt als Eval-Regression-Baseline für kontrollierte Vergleiche in der Pilotstudie erhalten. · ~12h Teamarbeit + Implementierung

2026-06-22Survey-Fix, Masterthesis SSR, Auswertungsinterpretation, Lernthema-Fix5 Änderungen
Verbesserung2184a3130min

Survey 500-Fehler behoben: Parametername-Mismatch (`mt` vs. `measurement_type`). MSLQ- und GSE-Items werden jetzt Fisher-Yates randomisiert. Fortschrittsleiste. Auswertungsansicht nach Abschluss des Fragebogens.

fix: Survey 500-Fehler + Randomisierung + Auswertungsanzeige

Verbesserungbfd5a6d45min

Masterthesis server-seitig gerendert: Markdown wird serverseitig zu HTML konvertiert — kein Client-JS für 170 KB Thesis-Text mehr nötig. CSS-Toggle ohne React-Reconciliation. Survey-Auth-Flow: Admin-Token in tokenStore.

fix: Masterthesis server-side rendering + Survey-Auth-Flow

Verbesserung744ce471h 20min

Fragebogen-Auswertung mit Interpretationstext und Farbkodierung (niedrig/mittel/hoch). GSE-Normdaten: M=2,97 dt. Stichprobe (Schwarzer & Jerusalem, 1995). ITC-Richtlinien / Psychometrik-Gate G11. Admin-Journey-Test kann Chat starten: `kaia_session`-Cookie-Middleware-Fix.

feat: Auswertungs-Interpretation + Chat-Auth-Fix für Admin-Journey-Test

Verbesserungcd698a51h

Kritischer Fix: `user.learning_topic` wurde gespeichert aber nie an den Prompt weitergegeben. PromptContext + alle vier Stream-Funktionen + DB-Migration aktualisiert. KAIA kennt das Lernthema jetzt von Anfang an. `is_simulation` + `simulation_run`-Felder für Crash-Test-Simulation ergänzt.

fix: Lernthema wird jetzt in jeden KAIA-Prompt übergeben

Verbesserungfc7829320min

"Session beenden" als sichtbarer Header-Button (DoorOpen-Icon, Border-Stil). Feedback-Buttons mit Kategoriezeile und Tooltips für bessere Erkennbarkeit.

feat: Chat-UX — Session-beenden-Button in Header + Feedback-Erklärungen

2026-06-21Admin Lerndesign + Messinfrastruktur (MSLQ/Journey)10 Änderungen
Verbesserungc7af4dd20min

Session-2-Einstieg erinnert jetzt an Session 1. resetSession ruft POST /sessions/{id}/end auf bevor die neue Session startet — extract_session_summary läuft im Hintergrund und befüllt insight_for_next_session, last_first_step und observation für die Folgesession.

fix: Session-Ende vor Reset aufrufen — Cross-Session-Gedächtnis aktiviert

Verbesserunge7fda9f2h 30min

Neue Admin-Seite /admin/lerndesign zeigt vollständige Session-Architektur (Sessions 1–10, Bloom-Progression, Sentiment-Signale, verbotene Muster, Feature-Status-Matrix, EMA-Referenz). EMA-Feedback-Buttons (Wow, Weiterdenken, Hänge fest, Unklar) im Chat-Test aktiv. SRL-Messung via MSLQ (Pintrich et al., 1991) — Instrumentenwahl auf Basis psychologischer Fachberatung. Relevant für Studien-Testing und Thesis-Messkonzept.

feat: Admin Lerndesign-Seite + EMA Feedback-Buttons im Chat-Test

Verbesserung7466be66h

Vollständige Studien-Journey implementiert: Pre-Befragung (MSLQ + GSE) vor erstem Chat, bis zu 10 Sitzungen, Post-Befragung danach — mit Chat-Gating (HTTP 403 wenn Fragebögen fehlen). Admin Instrumente-Seite: alle 30 MSLQ-Items, Auswertungslogik, APA-Zitate für Thesis-Anhang. Masterthesis-Navigation fix (useMemo). v0.8.0.

feat: Journey-Infrastruktur (MSLQ/GSE Pre/Post) + Admin Instrumente + Masterthesis-Fix

Verbesserungf6a54071h 30min

Admin "Journey testen"-Seite: kompletten Studienflow in einem Schritt, Reset-Button. `learning_topic` als DB-Feld (neue Migration). Masterthesis-Freeze: `React.memo` auf `ChapterContent`.

feat: Journey-Test-Seite (Admin) + learning_topic + Masterthesis-Freeze-Fix v2

Verbesserung83a8ce315min

JourneyTestClient nutzt Admin-Test-Token (wie chat-test): 401-Fehler auf Journey-Testseite behoben.

fix: JourneyTestClient nutzt admin test-token (wie chat-test)

Verbesserung8c0628a10min

JourneyTestClient korrekter api-Import: `apiFetch` existiert nicht — auf `api.get` + nativen `fetch` umgestellt. Build-Fehler behoben.

fix: JourneyTestClient — korrekter api-Import (apiFetch → api.get + fetch)

Verbesserungc4a71e640min

Masterthesis lazy-mount in DOM. Survey-Formular sendet Auth-Header korrekt.

fix: Masterthesis lazy-mount + Survey-Auth

Verbesserung41e125b20min

Masterthesis-Navigation mit `startTransition` unterbrechbar. Journey-Auth-Fix (401).

fix: Masterthesis startTransition + Journey authFetch (401)

Verbesserung3baa6a520min

Masterthesis-Navigation: alle sechs Kapitel werden einmalig gerendert, per CSS ein-/ausgeblendet. Kein Reconciliation-Overhead mehr.

fix: Masterthesis-Navigation — alle Kapitel im DOM

Verbesserung215187a2min

Ungenutzte Imports aus Lerndesign-Seite entfernt. Keine funktionale Änderung.

chore: unused imports aus Lerndesign-Seite entfernen

2026-06-20Prompt-Verbotslisten final + FK-Fix2 Änderungen
Verbesserunge9bdea130min

FK-Violation nach Von-vorne-Reset behoben (stream_opening verwirft Session-gone-Fehler statt zu crashen). Prompt-Verbotsliste um Affekt-Spiegeln-Muster erweitert + Strukturprinzip für emotionale Einstiege explizit gemacht.

fix: IntegrityError bei Reset-Race + Affekt-Strukturprinzip im Prompt

Verbesserung5b2608c5min

KAIA darf keine menschliche Gesprächsgeschichte behaupten ("das kenne ich aus vielen Gesprächen", "das höre ich oft") — solche Vergleiche sind fabricated und täuschend.

fix: Erfahrungsvergleiche in KAIA-Verbotsliste

2026-06-19Session-1-Design, Prompt-Verbotslisten, Thesis6 Änderungen
Verbesserung2dda94530min

KAIAs erste Session hat jetzt einen vollständigen Lernziel-Flow: (1) offene Einladung, (2) Thema + Motiv, (3) Bestätigung, (4) Lernintention ("was könntest du in 4 Wochen können/verstehen?"), (5) erster Schritt + Evidenzanker ("woran würdest du merken, dass sich etwas bewegt hat?"). Wissenschaftlich fundiert durch Hattie & Timperley (2007, d=0.54), Knowles' evidence of accomplishment (1975), Gollwitzer & Sheeran (2006, d=.65) und RCT Schimpf et al. (2026) zur KI-gestützten Zielformulierung.

feat: Session-1-Flow — Lernintention + Evidenzanker (Knowles/Hattie)

Verbesserung0c62cf630min

KAIAs erste Frage in Session 1 ist jetzt offen — "Was beschäftigt dich gerade — womit möchtest du heute anfangen?" statt der fehlerhaften Variante, die ein Thema voraussetzte das noch gar nicht da war. Im Admin-Chat-Test zeigt die Kopfzeile jetzt Session 1/2/3 (Lernzähler) statt der internen DB-ID.

fix: Session-1-Prompt und Session-Nummer-Anzeige im Chat-Test

Verbesserunga9f24ed45min

Kapitel 3 (Rahmenwerk) und 6 (Pilotstudie) der Masterthesis aktualisiert. Neue Abschnitte: konzeptuelle Trias Lernziel/Lernschritt/Erfolgskriterium (Knowles, 1975), Task vs. Learning Intention (Hattie & Timperley, 2007, d=0.54), Evidenzanker als Alternative zu "messbarem Erfolg", Implementation Intentions (Gollwitzer & Sheeran, 2006, d=.65). 11 neue Quellen in APA-7, darunter RCT zu KI-gestützter Zielformulierung (Schimpf et al., 2026).

docs: Thesis Kap3+6 — Session-1-Design wissenschaftlich fundiert

Verbesserung6a9ee2810min

KAIA sagt nicht mehr "Muss nichts Großes sein", "Kein Druck", "Das ist okay so" o.ä. — diese Sätze entlasten statt zu aktivieren und gehören in Therapie, nicht in Lernbegleitung. Bei "weiß nicht" scaffoldet KAIA jetzt mit drei konkreten Orientierungsrichtungen statt emotionaler Beruhigung.

fix: Therapiesprache aus KAIA-Prompt verbannt

Verbesserung75a8fe55min

KAIA fragt nicht mehr nach innerer Wahrnehmung — kein "spürbar", kein "was taucht auf", keine Abend-/Morgenritual-Einstiege. Diese Muster sind Therapie-Sprache, keine Lernbegleitung. Bei Orientierungslosigkeit scaffoldet KAIA mit konkreten Beispielbereichen, nicht mit Innenschau-Einladungen.

fix: Innenraum-Muster in KAIA-Prompt verboten

Verbesserunga5d8bb745min

KAIA bleibt bei negativem Affekt-Einstieg im Lern-Frame statt in den emotionalen Frame zu folgen. Wissenschaftliche Grundlage: D'Mello & Graesser (2012), Boekaerts (1993/2011), Pekrun (2006) — Thesis-Kapitel 3.3.10.4 mit 6 neuen APA-7-Quellen ergänzt.

fix: Affekt-Pivot-Regel im Prompt + Thesis 3.3.10.4

2026-06-14Admin Chat-Test: Von-vorne-Button1 Änderung
Verbesserungeb1525b20min

Im Admin-Chat-Test gibt es jetzt den Button "Von vorne" (mit Trash-Icon). Erster Klick: roter Bestätigungsbutton "Sicher löschen?", zweiter Klick: alle Chat-Sessions, Nachrichten und Memory-Chunks des admin_test-Users werden gelöscht. Die nächste Session startet wieder als Session 1 — inklusive frischer Eröffnungsfrage. Relevant für iterative Prompt-Tests ohne Datenbank-Zugriff.

feat: Admin Chat-Test — Von-vorne-Button löscht alle Chat-Daten

2026-06-12Chat Core V2: EMA-Buttons, Coverage-Gate, Docs3 Änderungen
Verbesserung4bddc2b2h 30min

Vier Feedback-Buttons erscheinen während einer Session: "Muss ich weiterdenken", "Wow — das trifft was", "Ich hänge gerade", "Das verstehe ich noch nicht". Passive Buttons speichern das Signal nur (kein LLM-Eingriff). Aktive Buttons ("Ich hänge gerade", "Das verstehe ich noch nicht") triggern zusätzlich eine kurze Metakognitions-Frage von KAIA. Technisch: session_feedback-Tabelle (Alembic-Migration f6a2b4c8d1e9), POST /feedback + POST /meta-question Endpoints, stream_meta_question() Service-Funktion. Wissenschaftlich: EMA/ESM-Paradigma (Csikszentmihalyi & Larson, 1987), Affect Labeling (Lieberman et al., 2007), Selbstregulations-Monitoring (Zimmermann, 2000).

feat: STORY-002 In-Session Feedback Buttons (EMA)

Verbesserung7e1f83b30min

CI-Coverage-Gate war bei 59% (Schwelle 70%). Neue Testdateien: test_chat.py (45 Tests: Chat-Repository alle Methoden, Schemas-Validatoren, SSE-Helpers, Thinking-Strip, stream_closing und stream_meta_question mit gemocktem Anthropic-Client inkl. Debug-Mode, LLM-Error, malformed JSON, leerer Content) + test_observability.py (6 Tests: configure_logging debug/json-mode, init_sentry mit/ohne DSN). Coverage: 59% → 70%.

test: Coverage-Gate auf 70% gebracht

Verbesserung06d6a8530min

Dokumentation erweitert: AUSWERTUNG.md mit neuen SQL-Abfragen für Cross-Session-Gedächtnis (session_summary, first_step-Persistenz-Analyse). Neues UX-Designdokument für STORY-FUNKEN (Microcopy-Bewertung, vollständige Zustandsbeschreibung, Accessibility-Anforderungen). kaia_lerndesign_referenz.html bereinigt. .gitignore schließt *.local.md aus.

docs: Auswertungs-SQL erweitert, UX-Spec Funken, .gitignore *.local.md

2026-06-13Wochenbilanz KW241 Änderung
Verbesserung138cde830min

Erste Wochenbilanz des KAIA-Teams — KW24 zusammengefasst: Kernprinzip gerettet, Chat Core deployed, STORY-001 Closure + STORY-002 EMA-Buttons, Coverage-Gate 70%, Funken-Feature-Spec, Data Scientist ongeboardet. Enthält Agent-Konflikte, Entscheidungen, Retrospektive und Thesis-Timeline.

docs: Wochenbilanz KW24 (06.06–12.06.2026)

2026-06-09Chat Core live: SSE-Streaming, Claude-Integration, Admin-Test18 Änderungen
Verbesserung179852c3h

Chat Core Backend: FastAPI SSE-Endpoint `/chat/stream`, Claude-Integration mit `claude-sonnet-4-5`, thinking-Strip (interne `<thinking>`-Blöcke nie an den Client), Conversation-History-Builder, PromptContext-Befüllung. KAIA erzeugt echten Gesprächsoutput.

feat: Chat Core Backend — SSE-Streaming, Claude-Integration, thinking-strip

Verbesserungd8d5c3c2h

Chat Core Frontend: SSE-Client mit EventSource, drei Charakter-Auswahl (warm/challenging/wild), Streaming-UI mit Tipp-Indikator, Nachrichtenhistorie. Erste vollständige Konversation zwischen User und KAIA möglich.

feat: Chat Core Frontend — SSE-Client, 3-Charakter-Auswahl, Streaming-UI

Verbesserung716af4f30min

KAIA eröffnet das Gespräch: `stream_opening()` Service-Funktion erzeugt die erste Nachricht der Session, bevor der User tippt. `character`-Feld in Session-Model ergänzt.

feat: KAIA eröffnet das Gespräch + character-Feld im Model ergänzt

Verbesserung5c22f251h

Admin Chat-Test: JWT-gesicherter Testbereich für echten Produktions-Chat. POST `/admin/test-token` generiert kurzlebige Admin-Tokens. Split-Layout: links Chat, rechts Debug-Panel.

feat: Admin Chat-Test — JWT-gesicherter Testbereich für echten Produktions-Chat

Verbesserungdb7cae830min

Admin Chat-Test Split-Layout: Phase-Indicator zeigt aktuelle Session-Phase (Opening/Active/Closing), Fragetyp-Extraktion aus KAIA-Responses (Typen 1–6 sichtbar).

feat: chat-test split layout fix + phase indicator + Fragetyp extraction

Verbesserung9b0c6f01h

Admin Analysis Panel: Live-Thinking-Block-Inspector zeigt KAIAs interne `<thinking>`-Prozesse in einem aufklappbaren Debug-Panel neben dem Chat. Nur im Admin sichtbar.

feat: admin analysis panel — live thinking-block inspector

Verbesserunge0bf40b20min

Thinking-Raw-Persistenz: jede KAIA-Antwort speichert `thinking_raw` in der DB. Ermöglicht retrospektive Analyse von KAIAs internen Entscheidungsprozessen für den LLM-Evaluationsbericht.

feat: persist thinking_raw on every KAIA assistant message

Verbesserung998fd8615min

Web wartet auf API-Healthcheck: Next.js-Startskript prüft `/api/v1/health` bevor die App hochkommt — kein 502 mehr bei zeitversetztem Container-Start. `test-token`-Route mit try-catch abgesichert.

feat: Web wartet auf API-Healthcheck + test-token Route mit try-catch

Verbesserungfa1c5cf10min

MAX_TOKENS erhöht und Schutz gegen unclosed thinking-Blöcke eingebaut — verhindert abgeschnittene Antworten bei langen KAIA-Turns.

fix: increase MAX_TOKENS and guard against unclosed thinking blocks

Verbesserung4a6e00d10min

thinkCounter-State durch Ref ersetzt: vermeidet Side-Effects im SSE-Updater, der bei State-Änderungen neu evaluiert würde.

fix: replace thinkCounter state with ref to avoid side effects in updater

Verbesserung3c32df95min

`str()` für MessageRole in Conversation-History-Builder: Enum-Vergleich schlug fehl bei SQLAlchemy-Deserialisierung.

fix: use str() for MessageRole in conversation history builder

Verbesserung4d967a05min

Roadmap- und Survey-ORM-Models beim App-Start registriert: verhindert `NoInspectionAvailable`-Fehler bei Alembic-Autogenerate.

fix: register roadmap and survey ORM models at startup

Verbesserungdac66ef5min

`detect_crisis` im Chat-Service korrekt importiert: falsche Import-Pfad führte zu `ImportError` beim ersten Chat-Request.

fix: Crisis-Import — detect_crisis korrekt importiert in chat service

Verbesserungd999d045min

Migration c8f2e4b6d1a3: doppelter Index auf `prompt_templates.name` entfernt — verhinderte Alembic-Migrations-Fehler nach vorherigem partiellem Rollout.

fix: Migration c8f2e4b6d1a3 — remove duplicate index on prompt_templates.name

Verbesserung362f6eb5min

Admin Chat-Test: TypeScript-Fehler bei `authHeader`-Konstruktion behoben — `undefined`-Check fehlte im Header-Builder.

fix: Admin Chat-Test — authHeader TypeScript-Fehler behoben

Verbesserung37f6f595min

Admin `test-token`-Route: doppeltes `/api`-Präfix in `INTERNAL_API_URL`-Konstruktion entfernt — führte zu 404 bei Token-Anfragen.

fix: Admin test-token — INTERNAL_API_URL Pfad-Duplikat behoben

Verbesserung33ace8310min

Admin-Layout `h-screen` gesetzt: Chat-Test Split-Panel füllt jetzt den gesamten Viewport — kein Scrollen mehr im Outer-Container.

fix: admin layout h-screen so chat-test split panel fills viewport

Verbesserung32110b930min

`docs/AUSWERTUNG.md`: vollständige SQL-Referenz für die Studienauswertung — alle relevanten Queries für Session-Analyse, Feedback-Auswertung und LLM-Usage-Tracking.

docs: Auswertung.md — vollständige SQL-Referenz für Studienauswertung

2026-06-10Lerndesign-Fundament vollständig (Theorie-Sprint)3 Änderungen
Verbesserung321a4cb1h 30min

Session-Abschluss mit Closure-Phase: KAIA generiert eine Abschluss-Bubble wenn der User "Session beenden" klickt. 4-State-Machine (idle → loading → awaiting_confirm → ended), `stream_closing()` Service-Funktion, POST `/sessions/{id}/end` Endpoint. Max. 2 Exchanges, kein Paternalismus. Gagné's 9. Unterrichtsereignis (Transfer-Vorbereitung), Peak-End-Rule (Kahneman).

feat: STORY-001 Session-Abschluss mit Closure-Phase

Verbesserung33e07a245min

Session-Summary als BackgroundTask: Nach jeder Session analysiert KAIA mit `claude-haiku-4-5` das Transkript und extrahiert `first_step`, `observation`, `insight_for_next_session`, `mood`, `topics`, `strengths_observed`, `friction_points` als JSON in `session_summary`. KAIA erinnert sich in Session 2+ an Session 1.

feat: extract_session_summary als BackgroundTask + insight_for_next_session

Verbesserungcdc276b10min

mypy strict-mode Fehler in `main.py`, `prompts/repository` und `chat/service` behoben.

fix: mypy-Fehler in main.py, prompts/repository, chat/service

Saturday, 07. June 2026 (Abend)18 Änderungen
Neua69adf12h

Voranmeldungs-Feature komplett: max. 50 Plätze mit Live-Counter, witziges Formular mit Inspiration-Button, Bestätigungsmail via Brevo, Slack-Notification, Danke-Seite mit Countdown, Abmelde-Link. Admin `/admin/vorregistrierung` mit Entfernen-Button.

feat: Voranmeldung komplett (Backend + Frontend + Admin + E-Mails)

Neu653c14e30min

Kontaktformular `/kontakt`: "Liegt dir was auf der Seele?" — Name optional, Kontaktart wählbar (E-Mail/Telefon/Lieber nicht), Slack-Notification bei Absenden. Telefonnummer +49 176 61159403 eingetragen.

feat: Kontaktformular + Telefonnummer

Neu466403620min

Pre-Commit Hook: ruff + ESLint laufen jetzt lokal vor jedem Commit. Blockiert bei Fehlern, zeigt Fix-Anleitung. Einmalige Installation: `bash scripts/setup-hooks.sh`.

feat: Pre-Commit Hook für ruff + ESLint

Neu805993b10min

Plausible Analytics eingebunden: datenschutzkonform, kein Cookie-Banner, DSGVO out-of-the-box, EU-Server. Eigene Aufrufe per `localStorage.setItem('plausible_ignore', 'true')` ausschließen.

feat: Plausible Analytics

Neu32bd2df15min

Impressum nach § 5 TMG: Dagmar Rostek, Klosterstr. 12, 52511 Geilenkirchen. Verantwortlich nach § 18 Abs. 2 MStV, KI-Hinweis mit Krisentelefon.

feat: Impressum — § 5 TMG

Neu6933f5c20min

Landing Page komplett neu: klare Botschaft, drei Informationskarten, primärer CTA "Jetzt vorregistrieren", kein kaputtes "Konto erstellen" mehr. Anmelden-Link unauffällig erhalten.

feat: Landing Page neu

Neu76714cb20min

Migration `c8f2e4b6d1a3`: `llm_usage` (Token/Kosten-Tracking pro Session), `audit_events` (DSGVO append-only Audit-Log), `prompt_templates` (DB-managed Jinja2-Prompts). DB-Schema damit vollständig — alle 11 Tabellen live.

feat: Migration — llm_usage, audit_events, prompt_templates

Verbesserunge0265f315min

Impressum + Datenschutz auf jeder Seite: `LegalFooter`-Komponente in public und auth Layout, Impressum/Datenschutz-Links am Ende der Admin-Sidebar.

fix: Impressum+Datenschutz auf jeder Seite

Verbesserungb644da510min

Session-Ablauf auf Mitmachen-Seite bewusst offen gelassen: Mechanismus nicht beschreiben, Neugier wecken. Wissenschaftlich sinnvoll — Teilnehmende die den Ablauf kennen, verhalten sich anders.

feat: Session-Beschreibung offen lassen

Verbesserung5e7008610min

"Was ist KAIA?": Sechs Fragetypen-Liste entfernt, Mechanismus nicht erklärt. "Was in einer Session passiert, lässt sich schwer vorausschreiben — das ist auch der Sinn der Sache."

feat: KAIA-Beschreibung neugierig statt technisch

Verbesserung4c6135b5min

"Voranmeldungen" in Admin-Sidebar ergänzt.

feat: Voranmeldungen in Admin-Sidebar

Verbesserung6c895d410min

`docs/ANALYTICS.md`: Plausible-Tracking deaktivieren, Setup neuer Rechner, Pre-Commit Notfall-Bypass dokumentiert.

docs: Analytics + Pre-Commit Anleitung

Fixfeaf70720min

Voranmeldung: abgemeldete E-Mails können sich wieder anmelden (`create_or_reactivate`). Nur aktive werden als doppelt blockiert. Placeholder ohne Therapeutin-Satz.

fix: Voranmeldung — Re-Registrierung, Lint, Placeholder

Fix04f3e9120min

Admin-Voranmeldung als Server Component: nutzt `INTERNAL_API_URL` + `ADMIN_PASSWORD` direkt statt Cookie-HMAC. Proxy-Route für Entfernen-Button.

fix: Admin-Voranmeldung als Server Component

Fix52fb87d10min

Doppeltes `/api/api/v1/...` in Voranmeldungs-Requests: relative URLs statt `NEXT_PUBLIC_API_URL`.

fix: relative URLs in Voranmeldung

Fixe0265f310min

mypy: `get_db` direkt aus `app.db.session` importiert. SMTP- und `ADMIN_EMAIL`-Env-Vars in `docker-compose.prod.yml` ergänzt.

fix: mypy get_db + docker-compose SMTP

Fix2bf799e10min

Ruff I001 + ESLint: unused vars (`MessageSquare`, `bqContent`, `CheckCircle2`, `Clock`, `AlertTriangle`) entfernt. `setState` in `abgemeldet/page.tsx` via `setTimeout(fn, 0)` deferred.

fix: ruff + ESLint cleanup

Fix6714dd42min

ruff format `email.py`.

fix: ruff format email.py

Saturday, 07. June 202610 Änderungen
Neuf1109c615min

404-Seite: KAIA stellt natürlich eine Gegenfrage zurück. Buttons zu Startseite und Mitmachen-Seite.

feat: 404-Seite mit KAIA-Charakter

Neuf1109c630min

Öffentliches Entwicklungs-Tagebuch unter `/tagebuch`: Liest `docs/DAILY_LOG.md` und rendert alle Einträge. In der öffentlichen Navigation verlinkt — der Entwicklungsprozess ist Teil des Projekts.

feat: öffentliches Tagebuch unter /tagebuch

Neu4a3ca6520min

GSE-Fragebogen und Auswertungskonzept vollständig dokumentiert: alle 10 deutschen Items, Auswertungskonzept (Summenscore 10–40, Wilcoxon-Test, Effektgröße r), Normwerte (Hinz et al. 2006, M≈29), Gütekriterien (α .80–.90), Lizenznachweis (CC BY-NC-ND 3.0), 4 APA-7-Vollzitate. Projektbeschreibung Ethikkommission aktualisiert.

docs: GSE-Fragebogen + Auswertungskonzept für Ethikvotum

Verbesserungf1109c630min

Registrierung und Login gesperrt bis 16. Juli 2026: Beide Seiten zeigen rückwärtszählenden Countdown (Tage/Stunden/Minuten/Sekunden). Öffnet automatisch am 16.07.2026 00:00.

feat: Registrierung + Login gesperrt mit Countdown bis 16. Juli

Verbesserungf1109c620min

Mitmachen-Seite: Countdown-Banner oben + CTA-Buttons deaktiviert bis 16. Juli.

feat: Mitmachen-Seite mit Countdown + deaktivierten CTAs

Verbesserung369583f30min

Mitmachen-Seite: "Was ist KAIA?" und Session-Ablauf auf v2-Prompt-Design aktualisiert. Kernprinzip direkt kommuniziert, 6 Fragetypen sichtbar, 4-Schritte-Onboarding mit Spiegel-Schritt, "Was KAIA niemals tut"-Box, Rupture-Repair sichtbar gemacht.

feat: Mitmachen-Seite aktualisiert — KAIA v2-Beschreibung

Verbesserungf1109c610min

KAIA-Link in Auth-Layout: Login- und Registrierungsseiten haben jetzt Header mit KAIA-Link und Theme-Toggle.

feat: KAIA-Header in Auth-Layout

Verbesserungf1109c65min

Öffentliche Navigation um "Tagebuch" erweitert.

feat: Tagebuch in öffentliche Navigation

Fix35769245min

ruff E501: Test-Assertion zu lang — auf mehrere Zeilen aufgeteilt.

fix: ruff E501 — test assertion auf mehrere Zeilen aufgeteilt

Fix331acd65min

Build-Fehler: deutsche Anführungszeichen in JS-String-Literalen verursachten Parsing-Fehler (exit code 1 beim Docker-Build).

fix: Anführungszeichen in Fragetypen-Array — single quotes statt double

Friday, 06. June 20266 Änderungen
Neua5123054h

`KAIA_PROMPT_V2_WARM`: Alle 29 Erkenntnisse aus 6 Prompt-Engineering-Quellen integriert (Anthropic Tutorial, Real World Prompting, Prompt Evaluations, Red Teaming, Guardrails, Evaluating AI Agents). Neue Elemente: XML-Tags für Daten/Instruktions-Trennung, `<thinking>/<final_answer>`-Split mit 8 internen Klassifikationsschritten (Lazarus, Fragetyp, Crisis, Grenz, Grounded, Session-Phase, Rupture, Erwünschtheit), Few-Shot Kontrast-Paare für Fragetypen 3/4/5, Jailbreak-Schutz, Bias-Neutralitäts-Constraint, Halluzinations-Guard, Kontext-Referenz-Verbot, diskrete Eval-Targets, Convergence-Constraint (4–6 Turns), Soziale-Erwünschtheit-Intervention, Rupture-Repair-Protokoll. v1 bleibt als inaktive Regression-Baseline. 19 Tests grün.

feat: KAIA_PROMPT_V2_WARM mit 29 Prompt-Engineering-Erkenntnissen

Neua51230515min

Data Scientist als 14. Teammitglied ongeboardet: Rolle, Trigger-Bedingungen (LLM-Evaluationsbericht, Studienauswertung, Experiment-Framework), G13 Statistik-Gate (Eval-Methodik, Convergence-Score, Stichprobenqualität).

feat: Data Scientist onboarded, G13 Statistik-Gate

Verbesserungdd7050830min

Sandbox-Kommunikation-Warm-Prompt auf v2 gehoben (identisch mit `KAIA_PROMPT_V2_WARM`, ohne Jinja2). Sandbox-Backend (`/admin/api/sandbox-chat`) strippt `<thinking>`-Blöcke vor der Ausgabe an den Nutzer — nur `<final_answer>`-Inhalt sichtbar. Rupture-Repair und Soziale-Erwünschtheit testbar in der Sandbox.

feat: Sandbox v2-Prompt + thinking-stripping im Backend

Verbesserung8a78b2c20min

Neue Prompt-Regel: Sobald Lernende eine eigene Formulierung, einen Plan oder eine Erkenntnis produzieren, fragt KAIA nach Wirkung — nicht nach Verbesserung. KAIA ersetzt niemals die Formulierung des Lernenden durch eine eigene.

fix: neue Prompt-Regel — eigene Formulierung des Lernenden nie ersetzen

Fixb3f1fc245min

Vier Fixes aus Live-Gesprächsanalyse: (1) Schritt 4 form-sensitiv — unterscheidet Verhaltensziele (erster Schritt) von inneren Zielen (erstes Zeichen). (2) Techniken-/Methoden-Vorschläge explizit verboten — auch als "Was wäre wenn..."-Frage verkleidet. (3) Rupture-Repair geht nicht zurück an den Anfang — pivotiert mit "Was wäre jetzt hilfreicher?". (4) React setState-in-useEffect-Lint-Fehler behoben — lazy useState-Initializer statt useEffect für localStorage-Restore.

fix: Prompt-Korrekturen aus Live-Test + React setState-Lint-Fix

Fixdd7050815min

Sandbox-Motiv-Probing überarbeitet: keine Checkliste mehr — KAIA folgt dem echten Gesprächsfaden. Schritt 3 (Der Spiegel) mit explizitem Gewicht — KAIA geht nicht zu Schritt 4 bevor der Lernende den Spiegel bestätigt hat. Spiegel spiegelt das Motiv, nicht das Thema. Rupture-Repair um Kontraindikation erweitert: nach Rupture nie zurück an den Anfang.

fix: Schritt 2 Motiv-Probing + Spiegel-Gewicht + Rupture-Repair

Wednesday, 03. June 202611 Änderungen
Neucd2155c1h 30min

Admin User-Approval UI (/admin/users): Übersicht aller pending/aktiven/gesperrten Teilnehmenden. Freigabe-Button setzt Status ACTIVE + trägt `approved_at`/`approved_by` ein + Slack-Notification. Ablehnen-Button mit optionalem Grund-Eingabefeld. Aktive Teilnehmende mit Login-Datum, Reaktivierung gesperrter Accounts. Server Actions — Admin-Token verlässt den Server nie.

feat: Admin User-Approval UI — Teilnehmende freigeben/ablehnen

Neub89d5941h 30min

Crisis-Detection-Pre-Filter (`app/core/crisis.py`): 20+ deutsche Regex-Muster für Suizidgedanken und Selbstverletzung. Bei Treffer: keine LLM-Verarbeitung, statische Antwort mit Telefonseelsorge 0800 111 0 111 und Notruf 112. KI-Disclosure-Seite (`/ki-disclosure`) mit Bestätigungs-Button der POST `/auth/disclosure-ack` auslöst. Datenschutzerklärung (`/datenschutz`) DSGVO-konform mit allen Art. 15–21 Rechten, Schrems-II-Hinweis, 6-Monate-Löschfrist.

feat: crisis detection + KI-disclosure + Datenschutzerklärung

Docs7404aa345min

Studienprotokoll (v1.0) + Teilnahmevereinbarung/Einwilligungserklärung erstellt: Forschungsfrage, drei vorregistrierungsfähige Hypothesen (H1–H3), Prä-Post-Design mit GSE-Skala, Krisenprotokoll, Risikobewertung. Einwilligungserklärung druckfertig mit DSGVO-Rechten und KI-Disclosure-Hinweis.

docs: Studienprotokoll + Teilnahmevereinbarung für Ethikvotum SRH

Docsbccc53020min

R-basierte Power-Analyse (`docs/power_analyse.R`): Wilcoxon-Vorzeichenrangtest, d=0.5, α=0.05, Power=80%. Ergebnis: N=32 Minimum. Power-Kurve als PNG. Reproduzierbar und thesis-zitierfähig.

docs: R-basierte Power-Analyse

Docsaa12bf910min

Ziel-N auf 32 angehoben: Studienprotokoll mit exakten Power-Werten aktualisiert (N=32 → 80%, N=20 → 56.5%). Rekrutierungsziel ~46 mit 30% Dropout-Puffer.

docs: Ziel-N auf 32 angehoben (80% Power)

Verbesserung635ca911h

Admin-Roadmap komplett überarbeitet: Filter-Bar (Status/Tags/Agents kombinierbar), Feature-Karten mit beteiligten Agents (12 Typen farbkodiert), Aufwand-Schätzung und Git-Hash bei fertigen Features. Wissenschaftliche Pflichten als einklappbares Accordion.

feat: redesign admin roadmap — filters, agents, time, sha

Verbesserung7f5b0a420min

Roadmap-Filter von Inline-Pills auf Dropdown-Boxen umgestellt (Status/Tags/Agents mit Checkbox-Listen). Spaltenreihenfolge: Backlog → Juni → Juli → August → Fertig.

feat: roadmap filter as dropdowns + column order

Fix9390ec920min

passlib (unmaintained seit 2023) mit bcrypt>=4.0 inkompatibel: `__about__`-Attribut fehlt, 72-Byte-Limit strict. Ersetzt durch direktes bcrypt + SHA-256-Pre-Hash. Fünf Crisis-Detection-Patterns korrigiert (Wortstellungsfehler: 'nicht mehr leben' ohne Trailing-Verb, 'rItze' statt 'ritzen', Verb-vor-Objekt-Fälle).

fix: passlib → bcrypt direkt + crisis-Patterns korrigiert

Fixa01be4b5min

`INTERNAL_API_URL` in docker-compose war `http://api:8000` statt `http://api:8000/api` — Admin User-Approval API-Calls wären fehlgeschlagen.

fix: INTERNAL_API_URL mit /api-Prefix in docker-compose

Fix336ab0a15min

ruff E501 (Zeile zu lang in crisis.py), A003 global ignoriert (SQLAlchemy `id`-Attribute — Standard), I001 auto-fixed. `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true` im CI-Workflow.

fix: ruff E501/A003/I001 + Node.js 24 in CI

Fixaf559c85min

ruff format auf crisis.py, test_crisis.py, test_service.py angewendet.

style: ruff format crisis.py + test files

Tuesday, 02. June 20265 Änderungen
Neu1c0aaa11h 30min

Produktroadmap im Admin-Bereich (/admin/roadmap): Feature-Timeline Juni–August 2026 mit 34 Features in 4 Spalten (Fertig / Juni / Juli / August). Jede Karte zeigt Status-Badge, Beschreibung, Thesis-Kapitel-Mapping und farbkodierte Tags (DSGVO, Ethik, Psychometrie, LLM-Eval). Wissenschaftliche-Pflichten-Tracker listet alle 13 Pflichtpunkte — Blocker für das Ethikvotum rot hervorgehoben. Studienziel-Übersicht (20 Teilnehmende, 6-Monate-Datenlöschung, Token-Budget). Seite ist passwortgeschützt im Admin-Bereich.

feat: add admin roadmap page with thesis chapter mapping

Fix0f271d61h

Admin-Login war wegen falscher Runtime-Annahme dauerhaft defekt: `process.env.ADMIN_PASSWORD` ist im Next.js Edge Runtime (Middleware) nicht erreichbar — das HMAC wurde mit leerem Key berechnet, der Cookie nie akzeptiert. Fix: Admin-Authentifizierung aus der Middleware in ein Server Component Layout (Node.js Runtime, `admin/(protected)/layout.tsx`) verschoben, wo `process.env` korrekt funktioniert. Gleichzeitig: 3 neue Backend-Test-Dateien (security.py, service.py, slack.py) bringen CI-Coverage von 60 % auf über 70 %.

fix: move admin auth from Edge Runtime middleware to Server Component layout

Fix30e637330min

Kritischer Deployment-Bug: `apps/web/.env.local` enthielt `ADMIN_PASSWORD=testpasswort123` und wurde durch `COPY . .` im Dockerfile in das Docker-Image gebacken. Next.js lud diese Datei beim Server-Start und überschrieb den korrekten Runtime-Wert aus docker-compose — Admin-Login war auf dem Server dauerhaft mit dem falschen Passwort gesperrt. Fix: `.dockerignore` erstellt (schließt alle `.env.local`-Dateien aus dem Build aus), `ADMIN_PASSWORD` aus `.env.local` entfernt.

fix: exclude .env.local from Docker image, remove hardcoded ADMIN_PASSWORD

Infra645a0e815min

Deploy-Skript `scripts/deploy.sh` erstellt: Docker Compose mit `-f infra/docker-compose.prod.yml` suchte die `.env` im Verzeichnis der Compose-Datei (`infra/`) statt im Repo-Root — alle Variablen (ADMIN_PASSWORD, JWT_SECRET, DB-Credentials, API-Keys) wurden als leer interpretiert. Das Script übergibt `--env-file` explizit. Verwendung: `./scripts/deploy.sh [web|api|all]`.

fix: add deploy script that correctly passes --env-file to docker compose

Infra9eabd2b5min

Unbenutzter `RefreshToken`-Import in `test_service.py` entfernt (ruff F401 nach Refaktor).

fix: remove unused RefreshToken import (ruff F401)

Monday, 01. June 20262 Änderungen
Neuf82d2632h

Auth Phase 4 abgeschlossen: Login-Seite (`/login`), Registrierung (`/registrierung`) mit DSGVO-Zweifach-Consent (Pflichtfeld + freiwillige Analytics), `AuthContext` mit `loading/authenticated/unauthenticated`-States, `AuthGuard` in `(app)/layout.tsx`, `kaia_session`-Cookie als Middleware-lesbarer Session-Indikator (Access-Token bleibt In-Memory, nie in Storage). Slack-Benachrichtigung bei Neuregistrierung. Middleware schützt `/chat`, `/onboarding`, `/gse`.

feat: Auth Phase 4 — Frontend Login, Registrierung, geschützte Routen

Infra464820f1h

Sentry vollständig ins Next.js-Frontend integriert: `instrumentation.ts` mit `onRequestError`-Hook fängt alle Server-Component-Fehler, `instrumentation-client.ts` (Next.js 15.3-Feature) initialisiert Sentry clientseitig vor React-Hydration, globaler `global-error.tsx`-Boundary sendet Root-Layout-Crashs. DSN via Build-Arg in Bundle baked + Runtime-Env für Server. War nicht konfiguriert, obwohl das Package installiert war.

feat: Sentry Frontend-Integration (instrumentation.ts + client)

Friday, 30. May 20262 Änderungen
Neu7bc19293h 30min

Auth-Flow implementiert: Registrierung mit DSGVO-Pflichtconsent (zwingend True, kein Opt-out), Login/Logout, JWT Access-Token (15 min, Bearer) + Refresh-Token (30 d, httpOnly-Cookie). Token-Rotation mit Family-basierter Reuse-Detection — gestohlener Token sperrt die gesamte Familie (RFC 6749). Brute-Force-Schutz (5 Versuche → 15 min Kontosperre). Konten starten als `pending`, Admin-Freigabe erforderlich. KI-Disclosure-Gate als eigener Endpunkt. Alembic async konfiguriert, erstes DB-Schema live.

feat: Auth-Flow Phase 1+2 — Alembic, JWT, Register/Login/Refresh/Logout

Infraad29b9e1h

Team-Charta auf Exposé-Stand gebracht: drei wissenschaftliche Spannungsfelder, vier Thesis-Deliverables, WCAG 2.2 AA (statt 2.1), 80% Coverage-Gate. Diskussions-Kultur-Sektion (ehrliche Kritik, kein Pseudo-Konsens) und Code-Verhalten-Regeln (Einfachheit, chirurgische Änderungen) hinzugefügt. Drei neue Slash-Commands: `/morning`, `/evening`, `/weekly` mit Thesis-Fortschritt-Tracking.

chore: update team charter + add morning/evening/weekly commands

Monday, 25. May 202611 Änderungen
Neu8085cb73h

Admin-Bereich gebaut (Production Readiness, Changelog, Architektur, Dashboard) — passwortgeschützt via Edge-Middleware. Code auf Produktionsstandard gebracht: PyJWT statt python-jose (CVE), Non-Root-Docker, 70%-Coverage-Gate in CI, React Query + Zod, typisierter API-Client, BugReportWidget sauber refaktoriert.

feat: admin area + code review fixes (towards 10/10)

Neu83bdee930min

Kosten-Übersichtsseite im Admin-Bereich — Infrastruktur, Claude Code Entwicklungskosten und zukünftige LLM-Inferenzkosten auf einen Blick. Tages-Zeittracker mit /log Command.

feat: cost overview page, daily log tracker, /log command

Neu4988db320min

Entwicklungs-Tagebuch im Admin-Bereich — tägliche Einträge als witzige Stories aus Agenten-Sicht, erstellbar mit /log Command.

feat: daily log page + story-style /log command

Neuf54371c45min

Neue öffentliche Seite /wissenschaft — alle 24 wissenschaftlichen Quellen der Masterthesis mit Erklärung warum jede Quelle für KAIA relevant ist. Aus dem Exposé + Empfehlungen des Psychologen.

feat: public wissenschaft page with all theoretical foundations

Verbesserungb32cd9945min

Entwicklungs-Tagebuch jetzt mit Monats-Navigation und Accordion — der neueste Eintrag ist sofort sichtbar, ältere per Klick aufklappbar.

feat: daily log UX — accordion + month index navigation

Verbesserungda909b545min

Alle öffentlichen Seiten (Release Notes, Architektur, Wissenschaft) haben jetzt eine gemeinsame Navigation — von jeder Seite aus erreichbar.

feat: shared public layout with nav for all public pages

Fix56f48a010min

API-Startfehler behoben (fehlende email-validator Dependency); Caddy DNS-Konfiguration korrigiert für Let's Encrypt.

fix: add email-validator dependency and remove Caddy DNS override

Fix32a276620min

Tagebuch, Release Notes und Architektur sind jetzt auch auf dem Server sichtbar — docs/-Ordner wird als Volume in den Web-Container gemountet.

fix: mount docs/ volume in prod + unified readDoc helper

Fixb1ff04c10min

Tagebuch, Release Notes und Architektur zeigen jetzt tatsächlich Inhalte auf dem Server.

fix: force-dynamic on all doc-reading pages

Infra747e7d530min

Spezialisiertes 12-köpfiges Sub-Agent-Team integriert (Architect, Security, Compliance, Psychologist, AI Engineer, AI Ethics, UX, QA, MLOps, Product Owner, Discovery Researcher, Coordinator) mit vollständigem KAIA-Projekt-Kontext.

chore: add 12-agent development team with KAIA onboarding

Infraf79e75f25min

Lokale Entwicklungsumgebung mit Docker eingerichtet — Backend und Datenbank starten per docker compose, Frontend läuft nativ für schnellen Hot-Reload.

feat: local dev environment with Docker (DB + API)

Monday, 18. May 20262 Änderungen
Fix4a161405min

Docker-Build-Fehler behoben – Next.js produziert jetzt das für den Container benötigte standalone-Verzeichnis.

fix: enable standalone output for Next.js Docker build

Infraf581dd210min

Sentry-Umgebungsvariablen von SENTRY_DSN_API/WEB zu SENTRY_KAIA_API/WEB umbenannt.

refactor: rename Sentry env vars to SENTRY_KAIA_API/WEB

Saturday, 16. May 20261 Änderung
Infra426aa273h

KAIA v2 startet — komplett neu aufgebaut als FastAPI + Next.js Monorepo. Ab diesem Commit wird jede Änderung hier dokumentiert. Bereits enthalten: Release-Notes-Seite, Architektur-Seite, Bug-Report-Widget (→ Slack), Dark/Light-Mode, CI/CD mit Study-Lock-Guard, Docker Compose für Lokal und Produktion, Projekt-Backlog mit 73 priorisierten Issues.

chore: initial monorepo skeleton (KAIA v2)

Stand: 8. August 2026