Lot 6 : la boucle d'un tour portée en Rust (chat::turn)

Port de runChatLoop : complétions enchaînées jusqu'à la réponse, sur les
modules déjà portés (charge utile, flux, compactage). Les filets du Go y
sont : reprises réseau et statuts passagers, flux externe coupé (rejoué ou
poursuivi après le texte affiché), intensité refusée par le gabarit,
raisonnement renvoyé refusé ou trop long, compaction réactive puis
réduction forcée, 500 (tool_choice none puis outils retirés), réponse vide
(rejeu si fenêtre pleine, relances « pensé sans agir »), appel écrit en
texte, budget souple, appels identiques court-circuités, arguments
illisibles jamais exécutés, pré-vol du mode Code, compaction en cours de
tour, file d'attente injectée entre deux étapes.

Aucune entrée-sortie dans la boucle : envoi, outils, compaction, résultats
complets et mémoires des refus passent par TurnHost ; l'arrêt par Cancel.
Non portés (clés opt-in ou machinerie du moteur local restée au Go) :
KEEP_TURN_IMAGES, PROJ_SNAPSHOT, NUDGE_IN_TOOL, SIDE_SLOT, SLOT_PERSIST,
préchauffage, sonde de gabarit, télémétrie.

15 tests sur un faux hôte aux réponses scriptées (temps suspendu pour les
reprises).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
Claude committed 2026-10-15 10:22:48 +00:00
1 parent bec3d2cbfd
commit 73bbf92f69
4 files changed
+1423 -1

No files matched your search

+5 -1
View File
@@ -12,15 +12,19 @@
//! abonnés) ;
//! - [`persist`] : format en base, index des discussions, écrivain unique ;
//! - [`sessions`] : plusieurs discussions (index, bascules, chargement) ;
//! - [`lease`] : bail du moteur (verrou de génération partagé avec le Go).
//! - [`lease`] : bail du moteur (verrou de génération partagé avec le Go) ;
//! - [`nudges`] : budget d'outils, rappels, appels répétés, aperçus ;
//! - [`turn`] : la boucle d'un tour (complétions, outils, filets).
pub mod compact;
pub mod conv;
pub mod engine;
pub mod journal;
pub mod lease;
pub mod nudges;
pub mod persist;
pub mod sessions;
pub mod stream;
pub mod turn;
pub mod types;
pub mod wire;