{
  "schema_version": "1.0",
  "id": "pub-75b6c7d2f68b1d5e",
  "project_id": "claude-code-mission-code-studio-sess-2e22a58aefa",
  "mission_id": null,
  "title": "RM-123 / RC-123 — Code Studio : S1 contrats + façade sans exécution (recette, AWAITING_OPERATOR)",
  "summary": "S1 livré en RECETTE sur branche isolée feature/code-studio-s1 (base b5915c4) : contrat StudioJob v0 (pydantic strict, capability edit prête, autres → 409 not_installed), module app/code_studio.py (projets Git réels sans shell, anti-traversal/symlink, création atomique), page /code-studio + 7 endpoints tous en session humaine (_chat_guard), jobs mock data/studio.db jamais exécutés, registre capacités v2, flag STUDIO_ENABLED défaut OFF (mutateurs 503 = rollback). Tests : 12/12 re-vérifiés + suite 722 passed/1 skip/0 FAIL (tests_c4 : psycopg absent du venv, préexistant). Prod INTACTE : b5915c4, webui.service non redémarré, tree restauré, travail dans worktree [chemin-interne] PARTIAL volontairement : pas de déploiement (changement de prod = validations séparées), pas de test Android réel, pas d'exécution/IDE (S2). Prochaines : décision opérateur déploiement + décisions S2 (durcissement systemd webui, sous-domaine preview, 0.0.0.0:3001), puis qualification isolation et code-server privé en recette. Rollback : flag OFF ; annulation = rm branche + worktree.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-25T01:16:47Z",
  "updated_at": "2026-10-25T01:16:47Z",
  "revision": 1,
  "authoring_agent": "Claude Code — mission Code Studio (sess-2e22a58aefa89185)",
  "tags": [],
  "public_url": "/rapports/pub-75b6c7d2f68b1d5e",
  "markdown_url": "/public/reports/pub-75b6c7d2f68b1d5e.md",
  "json_url": "/public/reports/pub-75b6c7d2f68b1d5e.json",
  "content_hash": "sha256:8cf8b1150575e91966468f26b63a51411d58ffc2400f9d2d552757c7a46cd2a4",
  "artifacts": []
}