mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-16 19:59:56 +02:00
Port de l'état de Conversation et de subscribeSink : état persisté et
discussion chargée, epoch (reset, bascule), verrou du tour et son arrêt,
ajout au journal avec rejet des deltas d'un tour périmé, coalescence de fin
de tour, instantané numéroté sous le même verrou, /api/chat/state.
Subscription rend les lots à émettre : rejeu (padding, reset si le curseur
vient d'une autre discussion, pagination, caught_up, contexte), puis le
direct, avec {reset} et l'en-tête paginé quand l'epoch change. Réveil par
compteur de version marqué lu avant la relecture de l'état : aucun réveil
perdu.
Tests Go de l'abonnement portés.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
25 lines
1004 B
Rust
25 lines
1004 B
Rust
//! Cœur chat en Rust (lot 6) — bibliothèque, pas encore branchée.
|
|
//!
|
|
//! Port de `llm_client.go`, `chat_conversation.go`, `chat_compact*.go` :
|
|
//! - [`engine`] : transport HTTP vers le moteur (envoi, flux, reprises) ;
|
|
//! - [`types`] : types partagés, JSON identique au Go ;
|
|
//! - [`wire`] : ce qui part vers le moteur (messages, charge utile) ;
|
|
//! - [`stream`] : analyse du flux SSE du moteur (texte, raisonnement, appels
|
|
//! d'outils, statistiques) ;
|
|
//! - [`compact`] : estimation du contexte et compactage de l'historique ;
|
|
//! - [`journal`] : journal d'affichage (compactage, rejeu, pagination) ;
|
|
//! - [`conv`] : la discussion en mémoire (état, epoch, verrou du tour,
|
|
//! abonnés) ;
|
|
//! - [`persist`] : format en base, index des discussions, écrivain unique ;
|
|
//! - [`lease`] : bail du moteur (verrou de génération partagé avec le Go).
|
|
|
|
pub mod compact;
|
|
pub mod conv;
|
|
pub mod engine;
|
|
pub mod journal;
|
|
pub mod lease;
|
|
pub mod persist;
|
|
pub mod stream;
|
|
pub mod types;
|
|
pub mod wire;
|