Skip to content

fix: sanitize Eino reduction paths on Windows - #283

Open
alexiss31 wants to merge 1 commit into
Ed1s0nZ:mainfrom
alexiss31:fix/sanitize-eino-offload-paths
Open

fix: sanitize Eino reduction paths on Windows#283
alexiss31 wants to merge 1 commit into
Ed1s0nZ:mainfrom
alexiss31:fix/sanitize-eino-offload-paths

Conversation

@alexiss31

@alexiss31 alexiss31 commented Aug 26, 2026

Copy link
Copy Markdown

Problème

Sur Windows, certains identifiants CallID Eino générés pour les tool calls contiennent le caractère | (par exemple call_...|fc_...). Le middleware de réduction réutilisait cet identifiant tel quel dans les chemins tmp/reduction/.../trunc et clear, ce qui provoquait une erreur NodeRunError fatale : The filename, directory name, or volume label syntax is incorrect.

Les événements « audit agent rejected » observés dans la conversation sont séparés : ils correspondent à un échec d’appel du LLM d’audit et restent des refus de sécurité souples, sans auto-approbation.

Correctif

  • Ajout de callbacks de chemin dédiés aux réductions Eino classique et agentique.
  • Sanitisation des segments avant écriture : caractères interdits Windows, caractères de contrôle, séquences de traversal et noms de périphériques DOS.
  • Application de la même protection aux fichiers de spill MCP/exec.
  • Tests de régression avec l’identifiant fautif exact, couvrant l’écriture via Eino et le backend local.

Vérification

  • Tests ciblés des packages internal/multiagent et internal/tooloutput passent avec CGO/SQLite.
  • go vet passe sur les packages modifiés.
  • Build complet du serveur avec CGO/SQLite réussi.
  • Binaire corrigé redémarré localement et endpoint HTTP répondant 200.

Périmètre

Cette PR ne contient que les 4 fichiers nécessaires : 2 fichiers de production et leurs 2 tests. Aucun refactor ni fichier généré.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant