---
title: "Admettre un rapport déterministe de statut de tâche"
method: POST
path: "/api/v1/agent-runs/task-status-report"
tags: ["Agent Runs"]
---

# Admettre un rapport déterministe de statut de tâche

`POST /api/v1/agent-runs/task-status-report`

## Request

- Base URL: `https://arcadeops.leadalpes.fr`
- URL: `https://arcadeops.leadalpes.fr/api/v1/agent-runs/task-status-report`
- Auth: one of:
  - API key in cookie `sb-<project-ref>-auth-token`
  - HTTP bearer

Pilote fermé par défaut par son allowlist tenant TASK_STATUS_REPORT_CANARY_ORG_IDS et un manifeste TASK_STATUS_REPORT_PILOT_MANIFEST borné à un agent, dix tâches uniques et deux heures, revérifié avant replay et lecture native. Exige une session ou un bearer utilisateur valide, une appartenance active au tenant orgId du corps, le rôle CONTRIBUTOR et les contrôles de consommation AGENT_RUN. Quota Redis agent partagé strict de 5 requêtes par minute et tenant, commun à la lecture déléguée et à la mémoire vérifiée, y compris les replays HTTP ; Redis indisponible ferme l'admission. Le serveur crée une racine et un sous-agent liés à missionId (identifiant exact d'une Task du tenant), avec une seule lecture native task_get, zéro coût LLM et aucun appel modèle. Le worker produit ensuite le rapport déterministe depuis cette lecture vérifiée ; aucun rapport ni preuve n'est fourni dans le POST ou retourné par l'admission. Pilote one-shot : une seule racine durable de délégation par mission, partagée avec delegated-task-read ; changer requestId ne réinitialise pas ce budget. requestId assure le réemploi durable dans le périmètre utilisateur, tenant et procédure ; une requête différente sous le même requestId est refusée. Idempotency-Key HTTP est facultatif ; allowlist, autorisation courante et quota sont revérifiés avant un replay. L'outbox déclenche le worker après commit. Corps JSON strict borné à 2048 octets. Les références 201 attestent l'admission ou son réemploi, pas l'exécution ni la validation du rapport.

## Headers

- `Idempotency-Key` string: Clé de replay HTTP facultative ; requestId reste l'identité durable

## Request body

- object
  - `orgId` string, required
  - `agentId` string, required
  - `missionId` string, required: Identifiant exact de la Task
  - `requestId` string, required

## Response `201`

Admission créée ou références idempotentes réutilisées ; réponse private, no-store

- object
  - `runId` string, required
  - `rootRunId` string, required
  - `outboxId` string, required
  - `jobId` string, required

## Other responses

- `400`: JSON, UTF-8, schéma strict ou clé HTTP invalide
- `401`: Authentification utilisateur requise
- `403`: Appartenance, rôle ou consommation refusée
- `404`: Pilote fermé pour le tenant demandé
- `409`: Mission déjà liée à une autre racine, liaison d'admission incohérente, requestId réutilisé avec une entrée différente, ou conflit/réservation HTTP
- `413`: Corps supérieur à 2048 octets
- `429`: Quota partagé, quota organisation de la factory ou limite HTTP atteinte
- `500`: Erreur inattendue d'admission ; détails internes masqués
- `503`: Quota Redis ou autorisation indisponible

---

[API](https://skmtc.dev/leadalpes/apis/arcadeops-api.md) · [All operations](https://skmtc.dev/leadalpes/apis/arcadeops-api/llms.txt) · [OpenAPI document](https://skmtc.dev/leadalpes/apis/arcadeops-api/revisions/f10422ec7412?raw)
