Cache : KEEP_TURN_IMAGES, relecture — budget plein vérifié avant de ranger l'image

Le relais rangeait l'image sur disque avant de regarder si le budget des
images gardées était déjà plein : un fichier écrit pour rien, élagué 24 h
plus tard.

- budget vérifié d'abord ; plein, l'image reste éphémère sans être rangée
- README : sur un modèle hybride, le gain dépend des points de reprise du
  moteur après une image, à vérifier dans la télémétrie avant d'adopter la clé
- test : budget plein, rien d'écrit dans chatimg

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-04 09:49:06 +02:00
1 parent f74f64ed90
commit c1d3757f23
3 files changed
+38 -14

No files matched your search

+15
View File
@@ -526,3 +526,18 @@ func TestKeepImagesRetireesEnCoursDeTour(t *testing.T) {
t.Fatalf("extra après publication : %+v", extra)
}
}
// Budget déjà plein : l'image suivante reste éphémère sans même être rangée.
func TestKeepImagesBudgetPleinAvantRangement(t *testing.T) {
testHome(t)
k := &keepImages{}
msgs := []Message{um("q"), keptRelay(keepImgBudget())}
img := seeImageMessage("x.png", imageURLPart([]byte("png"), "image/png"))
got, extra := k.relay(msgs, nil, img, 1)
if len(got) != 3 || len(extra) != 0 || !k.stopped || len(k.pend) != 0 || !got[2].ImgRelay {
t.Fatalf("relais au budget plein : %+v / %+v", got, k)
}
if ents, _ := os.ReadDir(chatImgDir()); len(ents) != 0 {
t.Fatal("image rangée alors que le budget était plein")
}
}