Phase 3 : chat streaming SSE et persistance des sessions

Backend :
- db.py : SQLite (sessions + messages), schéma et CRUD
- routes/sessions.py : créer/lister/ouvrir/renommer/supprimer une session
- routes/chat.py : POST /api/chat, relais token par token depuis Ollama (SSE),
  persistance des messages, titrage auto de la session au 1er message
- main.py : lifespan -> init_db, montage des nouvelles routes

Frontend :
- api/client.ts : APIs sessions + streamChat (parsing SSE event/data)
- store : sessions, messages, état de streaming, envoi optimiste
- ChatPanel : fil de conversation réel, bulles user/agent, curseur de frappe
- LeftPanel : historique réel (ouvrir/supprimer, horodatage relatif)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
This commit is contained in:
MichaelandClaude Opus 4.8 committed 2026-06-29 18:46:51 +00:00
1 parent 3ad37ae2c7
commit 48cbcaafaf
9 files changed
+688 -50

No files matched your search

+4 -2
View File
@@ -15,7 +15,9 @@ Frontend (React + Vite + TS + Tailwind)
│ HTTP + SSE
Backend (FastAPI, Python)
├── /api/status, /api/models, /api/models/pull (Ollama)
│ (chat agentique & outils : phases suivantes)
├── /api/sessions (CRUD sessions)
├── /api/chat (conversation streaming, SSE)
│ (outils agentiques : phases suivantes)
│ httpx │ volume
Ollama (:11434) /workspace + /data (SQLite)
```
@@ -67,7 +69,7 @@ npm run dev # http://localhost:5173
- [x] **Phase 1** — Socle + design system fidèle au thème, layout 3 panneaux
- [x] **Phase 2** — Connexion Ollama : statut, liste des modèles, pull avec progression, sélecteur
- [ ] **Phase 3** — Chat streaming (SSE) + persistance des sessions (SQLite)
- [x] **Phase 3** — Chat streaming (SSE) + persistance des sessions (SQLite)
- [ ] **Phase 4** — Boucle agentique & outils fichiers (read/write/list)
- [ ] **Phase 5** — Aperçu HTML live + onglets Code/Logs + arborescence
- [ ] **Phase 6** — Configuration complète (génération, toggles d'outils, invite système)