feat(fusion): format commun des skills (ACC-4.5), pilote réunion → ObsiGate (ACC-6.2), contrat panneau (ACC-4.4) — 7.84.0
FlowDeck CI / test (push) Failing after 3h11m27s
FlowDeck CI / lint (push) Successful in 1m51s
FlowDeck CI / docker (push) Skipped

This commit is contained in:
Spark
2026-10-26 16:19:16 -04:00
parent eff459ddd7
commit 913d6137b1
14 changed files with 915 additions and 4 deletions
+22
View File
@@ -396,6 +396,28 @@ def get_transcript_row(transcript_id: int, request: Request):
raise HTTPException(404, str(exc)) from None
@router.post("/api/v2/meetings/transcripts/{transcript_id}/archiver-obsigate",
status_code=201)
def archiver_obsigate(transcript_id: int, request: Request):
"""Pilote ACC-6.2 : dépose l'archivage du résumé dans ObsiGate
dans la file d'approbations unifiée (rien n'est écrit avant
l'approbation ; l'exécution part de la décision, voir
governance.decide_approval)."""
user = _auth_user(request, require_write=True)
from app.services import meeting_archive
try:
approval = meeting_archive.demander_approbation(transcript_id, user["id"])
except ValueError as exc:
msg = str(exc)
raise HTTPException(404 if "not found" in msg else 400, msg) from None
audit_log(user, "meeting.archive.request", "transcript", transcript_id,
f"approval #{approval['id']}", request)
archive = meeting_archive.construire_archive(meet.get_transcript(transcript_id))
return {"approval": approval, "titre": archive["titre"],
"chemin": archive["chemin"]}
@router.post("/api/v2/meetings/transcripts/{transcript_id}/consents")
def post_consent(transcript_id: int, request: Request, body: dict = Body(default={})):
user = _auth_user(request, require_write=True)