Files
IdeaSDK/.ideai/tickets/25/carnet.md
Blomios e1b1c1e103 restore .ideai/tickets/ store versionnέ + corrige .gitignore
- Restaure .ideai/tickets/ depuis 851f1f8^ (167 tickets + index.json + counter.json)
- Enlève les ignore rules .ideai/tickets/ dans .gitignore (ligne 51 et 75)
- Permet le suivi durable du store tickets futur
- Ne touche pas sdk/ (reste untracked)
2026-07-28 20:18:00 +02:00

1.7 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#25 11
kind
user
1783491435654

Root cause

OpenTicketAssistant::execute fabriquait un plan OS-sandbox bespoke via SandboxPlan::project_read_only (grant RO sur project_root, posture Deny). Sous Landlock, un grant RO fait handle la classe read/exec (AccessFs::from_read(V1) inclut Execute). Le binaire CLI (codex/claude) vit hors du project root ⇒ execve refusé ⇒ EACCES (os error 13) au spawn sandboxé. Indépendant de la CLI. Les agents workspace n'ont pas le bug (plan no-op sous posture Allow).

Correctif (backend-pur, zéro port/DTO)

Décision Main : option fallback None. La surface assistant de ticket passe désormais None en 5e arg de factory.start (aligné sur les agents workspace). Garde-fous restants : policy MCP idea_ticket_read/update* + advisory LP3. Helper ticket_assistant_sandbox et preset SandboxPlan::project_read_only supprimés (plus aucun appelant).

Fichiers : crates/application/src/ticket_assistant.rs (+tests), crates/domain/src/sandbox.rs.

Validation

  • cargo test --workspace VERT (app-tauri 63, application 80, infrastructure 254, domain OK).
  • Test ciblé : factory.start reçoit SessionPlan::None + sandbox.is_none().
  • Tests Landlock infra verts sur la machine.
  • RÉSERVE : repro live Codex+Claude non exécutée — nécessite rebuild + swap de l'AppImage active + relance IdeA (interrompt la session).

Git

Commit 961a2ca → merge --no-ff cb20fab dans develop. Local only, pas de push.

Reste à faire

Repro live après rebuild AppImage pour clôture définitive. Dette différée : write-fence OS uniforme sur toutes les surfaces (cf. cadrage Architect) si l'on veut une clôture write-OS.