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-07-13Chat-Anleitung, Tages-Banner, Melde-Funktion + UX-Redesign3 Ä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.

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: 13. Juli 2026