Files
IdeA/.ideai/tickets/197/carnet.md

2.3 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#197 9
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1786712736077

2026-08-14 Main

  • Ticket créé suite au bug utilisateur sur la dernière AppImage: même avec toutes les permissions accordées dans le menu IdeA, les agents ne peuvent pas écrire dans le root du projet.
  • Aucun ticket ouvert correspondant trouvé.
  • Architect: RCA principale = split de contrat entre projection générique Codex et launch structuré des agents. Le chemin structuré ne propage que des racines Git en writable_roots au lieu des write grants effectifs du menu, donc le root projet n'est jamais accordé à Codex même quand il devrait l'être. RCA secondaire = sélection sandbox_mode trop dépendante du fallback posture au lieu des write grants effectifs. Inverse bug lié côté ticket assistant = sur-grant whole project root hardcodé.
  • Git: branche locale préparée fix/197-sandbox-permissions-match-menu depuis develop @ 6a98752c.
  • DevBackend a livré le fix backend sans commit: ajout d'un compilateur canonique de permissions Codex partagé par le launch structuré et ticket assistant; writable_roots dérivés des grants effectifs; sandbox_mode dérivé des writable_roots effectifs; tests ciblés verts sur agent_lifecycle et ticket_assistant.
  • QA a d'abord donné PASS WITH RISK à cause d'un risque d'overgrant si une policy autorise large puis refuse un sous-chemin.
  • DevBackend a confirmé le finding, corrigé en fail-closed la traduction Codex quand un deny d'écriture n'est pas représentable par --add-dir, et ajouté des tests de régression couvrant broad allow + subpath deny, fallback-wide write + subpath deny, disjoint explicit allow + unrelated deny, et ticket assistant.
  • QA verdict final PASS: le symptôme exact est couvert et le contrat fort est respecté côté runtime/source. Quand la policy est représentable, les writable_roots correspondent aux grants; sinon le système fail-close en read-only. Verdict crédible: le fix doit fonctionner après rebuild d'un nouveau binaire.
  • Limite assumée: la dernière AppImage déjà buildée n'a pas été revalidée et ne peut pas être modifiée sans rebuild; la validation a été faite depuis les sources/runtime local et les tests exécutés.