mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-12 01:37:06 +02:00
Repris d'AJEAN 0.15.7 (chat_images.go et son test), adapté. Une image jointe (ou une capture de web_screenshot) vivait en base64 dans les messages de la conversation, et persist() réécrit la conversation ENTIÈRE à chaque fin de tour : une photo de téléphone, c'étaient des Mo remis sur disque à chaque réponse. Elle est désormais rangée une fois sous $LOKI_HOME/chatimg/<empreinte>.<ext> (hors du dossier de travail, que l'IA peut vider) ; l'historique n'en garde que « loki-img:<nom> ». Juste avant l'envoi, expandImageRefs remet les octets exacts (cache mémoire borné à 64 Mo) : pour le modèle, rien ne change. DEUX ÉCARTS AVEC L'AMONT - Copie à l'écriture : l'amont remplace l'URL en place. Chez nous, persist peut tourner pendant qu'un runChat sérialise ces mêmes maps (compactage en vol, bascule de projet) — « concurrent map read and map write », fatal. Les parties modifiées sont donc recopiées. - Le rechargement reste éphémère : stripImageParts retire toujours les images d'une conversation rouverte (garde-fou contre un modèle sans vision qui lirait le base64 comme du texte). L'amont, lui, les garde ; on pourra le suivre plus tard si l'on veut. Pas de migration des archives : une conversation rouverte est allégée par stripImageParts, comme avant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>