fix(integration): F17 (Astra P1) — 6 Aufrufer von nicht existierender Registry.get() auf get_contract() umstellen
Vorher: ContractRegistry besitzt get_contract(), aber 6 Produktionsstellen riefen get_contract_registry().get(...) auf → AttributeError. Betroffen: Agenten-/Workflow-Kommunikation (Nachrichten an Raeume), Miniapp-Tools, proaktive KI-Hinweise und Report-Jobs — teils nur geloggt, erwartete Nachrichten/Ergebnisse fehlten STILL. Fix: Alle 6 Aufrufer auf die echte Methode get_contract() umgestellt (Astra-Empfehlung: Aufrufer fixen statt Alias — die Registry ist kein dict, ein get()-Alias haette die Fehlersuche kaschiert): - automation/agent_runner.py (Kommunikations-Raum) - report_generator/jobs.py (DMS-Contract) - ai_proactive/services.py (Kommunikations-Raum) - workflows/engine.py (Kommunikations-Raum) - ai/miniapp_tools.py (Kommunikations-Contract) - ai/agent_loop.py (Approval-Posting) + N806 noqa am pre-existing Mail-Klassenalias Abnahme (Astra): Betroffene Funktionen laufen jetzt auf die echte Registry-Methode — persistierende Aufrufketten durch die bestehenden Miniapp-/Workflow-Suites abgedeckt (67/67). Tests: test_agent_loop + test_phase_g_workflows + test_m4_system_miniapps 67/67. ruff clean.
This commit is contained in:
@@ -495,7 +495,7 @@ async def run_react_loop(
|
||||
if agent_run_id:
|
||||
try:
|
||||
from app.plugins.builtins.contracts import get_contract_registry
|
||||
komm = get_contract_registry().get("kommunikation")
|
||||
komm = get_contract_registry().get_contract("kommunikation")
|
||||
if komm:
|
||||
agent_id = getattr(agent_definition, "id", uuid.uuid4())
|
||||
room_title = f"Agent: {getattr(agent_definition, 'name', 'Agent')}"
|
||||
|
||||
@@ -23,7 +23,7 @@ def _get_komm_contract() -> Any | None:
|
||||
"""Resolve the kommunikation contract (None when plugin inactive)."""
|
||||
from app.plugins.builtins.contracts import get_contract_registry
|
||||
|
||||
return get_contract_registry().get("kommunikation")
|
||||
return get_contract_registry().get_contract("kommunikation")
|
||||
|
||||
|
||||
async def _send_miniapp_handler(arguments: dict[str, Any], context: dict[str, Any]) -> str:
|
||||
|
||||
@@ -75,7 +75,7 @@ async def push_suggestion(user_id: str, suggestion: dict[str, Any]) -> None:
|
||||
from app.core.db import get_worker_session_factory
|
||||
from app.plugins.builtins.contracts import get_contract_registry
|
||||
from app.plugins.builtins.kommunikation.models import CommConversation
|
||||
komm = get_contract_registry().get("kommunikation")
|
||||
komm = get_contract_registry().get_contract("kommunikation")
|
||||
if komm:
|
||||
factory = get_worker_session_factory()
|
||||
async with factory() as db:
|
||||
|
||||
@@ -113,7 +113,7 @@ async def run_agent(
|
||||
mail_contract = get_contract("mail")
|
||||
if mail_contract and hasattr(mail_contract, "Mail"):
|
||||
from sqlalchemy import select as _select
|
||||
Mail = mail_contract.Mail
|
||||
Mail = mail_contract.Mail # noqa: N806 — class alias
|
||||
async with factory() as db:
|
||||
mail_q = await db.execute(
|
||||
_select(Mail)
|
||||
@@ -378,7 +378,7 @@ async def run_agent(
|
||||
# ── Post agent result to Communication (F-COMM) ──
|
||||
try:
|
||||
from app.plugins.builtins.contracts import get_contract_registry
|
||||
komm = get_contract_registry().get("kommunikation")
|
||||
komm = get_contract_registry().get_contract("kommunikation")
|
||||
if komm:
|
||||
async with factory() as db:
|
||||
# Find or create agent conversation room via contract
|
||||
|
||||
@@ -77,7 +77,7 @@ async def generate_report_job(
|
||||
import hashlib
|
||||
|
||||
from app.plugins.builtins.contracts import get_contract_registry
|
||||
_dms_contract = get_contract_registry().get("dms")
|
||||
_dms_contract = get_contract_registry().get_contract("dms")
|
||||
dms_file = _dms_contract.dms_file
|
||||
|
||||
async with create_db_session() as db:
|
||||
|
||||
@@ -92,7 +92,7 @@ class WorkflowEngine:
|
||||
# Post workflow completion to Communication (G-WORK)
|
||||
try:
|
||||
from app.plugins.builtins.contracts import get_contract_registry
|
||||
komm = get_contract_registry().get("kommunikation")
|
||||
komm = get_contract_registry().get_contract("kommunikation")
|
||||
if komm and instance.initiated_by:
|
||||
room_title = f"Workflow: {workflow.name if hasattr(workflow, 'name') else str(instance.workflow_id)}"
|
||||
conv_id = await komm.find_locked_room_id(
|
||||
|
||||
Reference in New Issue
Block a user