Skip to content

đź”´ Create /executions/session/{id}/running endpoint #989

Description

@up-guillaume

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions