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