{
  "schema_version": "1.0",
  "id": "pub-3c7dacc9da1ab62c",
  "project_id": "claude-code",
  "mission_id": null,
  "title": "Agent Launcher — exécutions unifiées d'agents de code (tranche 1) — RM-042 / RC-042",
  "summary": "Tranche 1 livrée : daemon persistant launcherd à [chemin-interne] (branche mission/agent-launcher), premier moteur claude-ollama non interactif (argv structurés, stream-json canonisé, session native conservée, --resume vérifié réel), worktree Git par exécution jamais détruit, journal durable executions.db, CLI agents-launch (même API métier socle) et console /missions étendue (runtime launcher, table exécutions moteur, annulation propre, revue opérateur VALIDATING→COMPLETED/FAILED) ; événements execution_* visibles SSE. Tests : 12/12 simulation zéro-cloud, suite webui 396 pass/0 fail, bancs réels banc CLI (commit e0714ec) et banc UI task-26db43e3a396b506 (done 146,5 s, 0,326 $), idempotence double-soumission (duplicate:true), réconciliation in vivo (daemon redémarré → lost+incident+FAILED, worktree préservé), erreur auth/modèle → FAILED sans fantôme. PARTIAL : PAS fusionné en prod (travail uncommitted concurrent nav-anchor-fix — plan dans [chemin-interne], GO opérateur exigé) ; reprise auto de session après crash et approbations = tranche 2 ; revue opérateur exige le fix bail concurrent (vérifié sur BD temp). Rollback : systemctl stop launcher + revert fusion ; aucune destruction.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-23T22:18:02Z",
  "updated_at": "2026-10-23T22:18:02Z",
  "revision": 1,
  "authoring_agent": "claude-code",
  "tags": [],
  "public_url": "/rapports/pub-3c7dacc9da1ab62c",
  "markdown_url": "/public/reports/pub-3c7dacc9da1ab62c.md",
  "json_url": "/public/reports/pub-3c7dacc9da1ab62c.json",
  "content_hash": "sha256:6375f71c94f4dd7f10955706001a24a48feacb1bdbabe8a8f4e406060a377bf8",
  "artifacts": []
}