5169b12795
Vorher: Beide Routen behandelten die Rueckgabe von create_approval_request als Dictionary (approval["id"] -> TypeError: ApprovalRequest object is not subscriptable, Astra-Repro), riefen resolve_approval_request mit nicht existierendem decided_by statt approver_id und ohne tenant_id auf — und erzeugten bei JEDEM Aufruf eine NEUE Anfrage, die sie sofort selbst genehmigten, statt die wartende Engine-Anfrage aufzuloesen. Fix (beide Routen, approve + reject): - Suchen die BESTEHENDE pending ApprovalRequest der Engine (entity_type=workflow_instance, entity_id, status=pending, neueste zuerst) und loesen genau diese auf — keine Selbst-Genehmigung mehr - Korrekte F11-Signatur: (db, tenant_id, request_id, decision=, approver_id=, comment=, is_system_admin=) + ApprovalDecisionError- Behandlung (403/409/410) Keine wartende Anfrage -> 409 no_pending_approval (kla rer Zustand statt stiller Neubau) - advance_instance/cancel_instance laufen wie gehabt NACH erfolgreicher Aufloesung Abnahme (Astra): Beide URLs funktionieren; Zustandswechsel, Audit und Freigabe stimmen; Wiederholung erzeugt keinen zweiten Fortschritt — erfuellt (resolve wirft 409 not_pending bei Zweitentscheid). Tests: test_phase_g_workflows + test_s1_security_guards 60/60. ruff clean.