Files
Loki/RELEASE_NOTES.md
T
Claude 513aca1c7b Version 0.13.0
Le rattrapage de l'amont (navigateur piloté, chiffrement de la mémoire,
notifications, tâches script, sous-agents, anglais) était parti sur main
sous le numéro 0.12.3 : huit fonctionnalités sous un numéro de correctif.

Bump des trois porteurs de version — la constante Go, versioninfo.json et
les .syso Windows régénérés (go generate) — et notes de release réécrites
pour 0.13.0. Sans ça, `loki update` et le bandeau de mise à jour comparaient
une version qui ne bougeait pas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6CAgoLJzufeA8rZTSpSpY
2026-09-23 07:52:59 +00:00

5.0 KiB

Loki 0.13.0

Loki rattrape deux versions majeures d'AJEAN (0.14 → 0.15.4) et reprend deux idées d'OpenFox. L'IA peut piloter un navigateur, la mémoire se chiffre sur le disque, et le serveur sait te prévenir quand c'est prêt.

L'IA pilote un navigateur

Un interrupteur dans Réglages → Contrôle du navigateur et l'IA ouvre des pages dans le Chromium déjà embarqué dans l'image. Elle en reçoit les éléments interactifs numérotés ([12] bouton « Se connecter ») et agit par numéro : browser_open, browser_find, browser_click, browser_type, browser_key, browser_scroll. Aucune vision requise — ça marche avec un petit modèle texte. Avec un projecteur mmproj chargé s'ajoutent browser_screenshot (capture quadrillée tous les 100 px) et browser_click_xy, pour ce que l'arbre d'accessibilité ne montre pas : canvas, bandeau cookies en iframe.

Ce sont des actions réelles sur le web : l'interrupteur est distinct de l'accès internet et n'agit qu'en mode agent, au même niveau de confiance que bash. En CLI : loki computer [on|off|status].

La mémoire se chiffre

Réglages → Mémoire → chiffrer la mémoire sur le disque : pages mémoire, discussions, blocs archivés au compactage et trackers passent en AES-256-GCM sous /data. La clé de données est enfermée dans un coffre par une clé dérivée en Argon2id ; ce qui l'ouvre, c'est la clé de pilotage de cet appareil (le serveur n'en garde qu'une empreinte — il ne peut pas ouvrir le coffre seul) ou une clé de récupération affichée une seule fois à l'activation.

La clé ne vit qu'en RAM : après un redémarrage à froid, la mémoire reste verrouillée jusqu'à ce qu'un navigateur se reconnecte. Verrouillé, Loki n'écrase jamais du chiffré par du clair — il refuse d'écrire. Un snapshot est pris avant chaque bascule, une migration interrompue reprend au démarrage, et rien n'est supprimé avant que son remplaçant ait été relu et vérifié.

Sauvegarde chiffrée : exporter télécharge un paquet scellé (mémoire, presets, réglages) que importer rejoue sur un autre serveur avec la seule clé — de quoi remonter le conteneur ailleurs. Le fichier reste chez toi : aucun envoi vers un service tiers.

Notifications, même app fermée

Le serveur pousse une notification à la fin d'une réponse et à la fin d'une tâche planifiée, succès comme échec — c'est le cas qui compte, personne ne regarde. Interrupteur dans Réglages → Mode agent, à armer sur chaque appareil. Demande HTTPS (ou localhost) ; sur iPhone, ajoute d'abord Loki à l'écran d'accueil.

Tâches : des scripts qui tournent sans modèle

Un nouveau dossier /data/scripts, hors du workspace jetable : supprimer une discussion n'y touche pas. Une tâche peut désormais être un script seul — le planificateur le lance sans charger le modèle ni consommer un jeton. Une sauvegarde, une synchro, un nettoyage n'ont rien à demander à un LLM.

L'IA dispose aussi de task_create, task_list, task_update et task_delete : elle se pose ses propres rappels et veilles, cloisonnés par projet.

Mode code : des sous-agents

L'outil subagent délègue une recherche (explorer), une relecture (code-reviewer) ou un découpage (planner) à un rôle qui travaille dans son propre contexte et ne rend que sa réponse. Sur un modèle local, c'est la fenêtre de contexte qu'on sauve : « trouve où est géré le cache » coûte dix lectures de fichiers, qui restaient sinon dans l'historique alors que seule la réponse comptait. Tous les rôles délégués sont en lecture seule.

Le builder ne publie plus de lui-même : sans demande explicite, ni commit, ni push, ni redémarrage de service.

Interface

  • Anglais (Apparence → Langue) : la coque — navigation, intitulés, boutons — passe en anglais. Ce qui n'est pas encore traduit reste en français plutôt que d'afficher une clé technique, et le fil de discussion n'est jamais touché.
  • Résultats d'outils : le flux ne transporte plus qu'un aperçu ; « voir plus » charge le reste à la demande et déplie vraiment le bloc. Le compteur « ~N tok » dit enfin la taille réelle, pas celle de l'aperçu.
  • Longues discussions : à l'ouverture, seule la fin du fil est rejouée. Un bandeau dit combien d'événements sont masqués et charge le début d'un clic.
  • Images : l'orientation EXIF est cuite dans les pixels (fini les photos de téléphone couchées pour le modèle) et le grand côté ramené sous 1568 px.

Corrections

  • Un outil qui porte une image dans un message séparé (see_image, browser_screenshot) renvoyait « [déjà fait] » sans l'image et le modèle bouclait. Relancer la même commande bash est de nouveau permis.
  • MCP ne tronque plus sa réponse à 12000 caractères avant le modèle.
  • Le dossier mémoire n'est plus joignable qu'aux outils mem_* : un cat memory/… contournait l'index MEMORY.md.

Mise à jour

docker compose pull && docker compose up -d