mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 06:28:11 +02:00
Longues discussions : ne rejouer que la fin, charger le début d'un clic
Inspiré du fenêtrage du fil d'OpenFox (2.0.151+). À chaque ouverture d'onglet, le serveur rejouait TOUT le journal d'affichage : sur une discussion de plusieurs centaines de tours, des dizaines de milliers d'événements traversaient le flux, puis autant de bulles s'installaient dans le DOM que le navigateur devait traîner à chaque rendu. Le replay initial est désormais borné à ses 4000 derniers événements. Rien n'est tronqué sur le disque : le serveur annonce combien d'événements sont restés en arrière, l'interface l'affiche en tête du fil et le bouton « charger le début » se réabonne en demandant le journal entier. Jamais borné sur une reprise de flux (from > 0) : là, le client a déjà le début à l'écran et attend la suite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K6CAgoLJzufeA8rZTSpSpY
This commit is contained in:
8 files changed
+182
-11
No files matched your search
@@ -84,7 +84,7 @@ func sseHeartbeat(w http.ResponseWriter, flusher http.Flusher) (*sync.Mutex, fun
|
||||
// goroutine détachée — fermer le navigateur n'arrête donc plus rien. Partagé par
|
||||
// handleChat (clair) et handleE2EChat (chiffré).
|
||||
func runChatStream(ctx context.Context, body chatReq, emit func(map[string]any) bool) {
|
||||
conv.Subscribe(ctx, body.From, emit)
|
||||
conv.Subscribe(ctx, body.From, body.Full, emit)
|
||||
}
|
||||
|
||||
// handleChatSend ajoute un message et lance la génération en arrière-plan. Réponse
|
||||
|
||||
Reference in new issue
Block a user