API interne d'un tour de discussion tenu par Rust

Ce qui décrit un tour reste au Go le temps d'être porté (lot 7) ; la
façade le demande ici :
- /turn/start : pièces jointes et vision (userMessageContent), capacités
  demandées et celles du tour (rôle du mode Code figé), nom du modèle,
  puce « mode Code » (une fois par discussion) ;
- /turn/view : la tête de turnView sans PROJ_SNAPSHOT (prompt du preset,
  consignes du dépôt, contexte du projet), le préambule d'InjectSkills et
  les outils du tour, MCP compris ; 409 sous PROJ_SNAPSHOT ;
- /turn/done : notification Web Push de fin de tour ;
- /conv/active : la discussion active des outils suit la façade ;
- /conv/dropped : fichiers, travaux, critères, mode et résultats d'outils
  d'une discussion supprimée.

injectPrefix et codeHintDue sortent d'InjectSkills et de maybeCodeHint,
sans changement de comportement.

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:48:38 +00:00
1 parent fea055fd52
commit ef11454a21
5 files changed
+334 -17

No files matched your search

+12 -4
View File
@@ -86,18 +86,26 @@ func convHasRepo() bool {
// maybeCodeHint émet la puce « passer en mode Code ? » si le message s'y
// prête. Une seule fois par discussion : une suggestion répétée est du bruit.
func maybeCodeHint(c *Conversation, epoch int, text string) {
if codeHintDue(text) {
c.appendDelta(epoch, map[string]any{"code_hint": true})
}
}
// codeHintDue dit si la puce doit apparaître pour ce message, et la marque
// alors comme montrée pour la discussion active (une fois par discussion).
func codeHintDue(text string) bool {
if convCodeMode() || !agentEnabled() {
return
return false
}
id := convEnsureActive()
if getBool(bkChat, hintKey(id)) {
return
return false
}
if !looksLikeCode(text) && !convHasRepo() {
return
return false
}
_ = putBool(bkChat, hintKey(id), true)
c.appendDelta(epoch, map[string]any{"code_hint": true})
return true
}
// --- API ---------------------------------------------------------------------