Objectif
Exposer les exécutions en cours pour une session, permettant au frontend de détecter les tâches terminées pendant la déconnexion.
Implémentation
Fichier: backend/app/api/executions.py
@router.get("/session/{session_id}/running")
async def get_running_executions(
session_id: str,
db: AsyncSession = Depends(get_db),
current_user: User = Depends(get_current_user),
):
"""Récupérer les exécutions en cours pour une session."""
result = await db.execute(
select(ChatExecution)
.where(
ChatExecution.session_id == session_id,
ChatExecution.status.in_(["running", "completed"])
)
.order_by(ChatExecution.created_at.desc())
.limit(10)
)
executions = result.scalars().all()
return {
"executions": [
{
"execution_id": str(e.id),
"status": e.status,
"created_at": e.created_at.isoformat(),
"completed_at": e.completed_at.isoformat() if e.completed_at else None,
}
for e in executions
]
}
Tests
curl -H "Authorization: Bearer $TOKEN" \
"https://staging.agents.moiria.com/api/executions/session/{session_id}/running"
# ✅ 200 OK avec liste d'exécutions
Critères de Succès
- ✅ Endpoint retourne les exécutions récentes (running + completed)
- ✅ Tri par date décroissante
- ✅ Limite à 10 exécutions
- âś… Auth et permissions fonctionnent
Priorité
P0 — Critique pour V10.13
Phase
Phase 1: Backend Endpoints
Objectif
Exposer les exécutions en cours pour une session, permettant au frontend de détecter les tâches terminées pendant la déconnexion.
Implémentation
Fichier:
backend/app/api/executions.pyTests
Critères de Succès
Priorité
P0 — Critique pour V10.13
Phase
Phase 1: Backend Endpoints