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:
|
if agent_run_id:
|
||||||
try:
|
try:
|
||||||
from app.plugins.builtins.contracts import get_contract_registry
|
from app.plugins.builtins.contracts import get_contract_registry
|
||||||
komm = get_contract_registry().get("kommunikation")
|
komm = get_contract_registry().get_contract("kommunikation")
|
||||||
if komm:
|
if komm:
|
||||||
agent_id = getattr(agent_definition, "id", uuid.uuid4())
|
agent_id = getattr(agent_definition, "id", uuid.uuid4())
|
||||||
room_title = f"Agent: {getattr(agent_definition, 'name', 'Agent')}"
|
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)."""
|
"""Resolve the kommunikation contract (None when plugin inactive)."""
|
||||||
from app.plugins.builtins.contracts import get_contract_registry
|
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:
|
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.core.db import get_worker_session_factory
|
||||||
from app.plugins.builtins.contracts import get_contract_registry
|
from app.plugins.builtins.contracts import get_contract_registry
|
||||||
from app.plugins.builtins.kommunikation.models import CommConversation
|
from app.plugins.builtins.kommunikation.models import CommConversation
|
||||||
komm = get_contract_registry().get("kommunikation")
|
komm = get_contract_registry().get_contract("kommunikation")
|
||||||
if komm:
|
if komm:
|
||||||
factory = get_worker_session_factory()
|
factory = get_worker_session_factory()
|
||||||
async with factory() as db:
|
async with factory() as db:
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ async def run_agent(
|
|||||||
mail_contract = get_contract("mail")
|
mail_contract = get_contract("mail")
|
||||||
if mail_contract and hasattr(mail_contract, "Mail"):
|
if mail_contract and hasattr(mail_contract, "Mail"):
|
||||||
from sqlalchemy import select as _select
|
from sqlalchemy import select as _select
|
||||||
Mail = mail_contract.Mail
|
Mail = mail_contract.Mail # noqa: N806 — class alias
|
||||||
async with factory() as db:
|
async with factory() as db:
|
||||||
mail_q = await db.execute(
|
mail_q = await db.execute(
|
||||||
_select(Mail)
|
_select(Mail)
|
||||||
@@ -378,7 +378,7 @@ async def run_agent(
|
|||||||
# ── Post agent result to Communication (F-COMM) ──
|
# ── Post agent result to Communication (F-COMM) ──
|
||||||
try:
|
try:
|
||||||
from app.plugins.builtins.contracts import get_contract_registry
|
from app.plugins.builtins.contracts import get_contract_registry
|
||||||
komm = get_contract_registry().get("kommunikation")
|
komm = get_contract_registry().get_contract("kommunikation")
|
||||||
if komm:
|
if komm:
|
||||||
async with factory() as db:
|
async with factory() as db:
|
||||||
# Find or create agent conversation room via contract
|
# Find or create agent conversation room via contract
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ async def generate_report_job(
|
|||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
from app.plugins.builtins.contracts import get_contract_registry
|
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
|
dms_file = _dms_contract.dms_file
|
||||||
|
|
||||||
async with create_db_session() as db:
|
async with create_db_session() as db:
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ class WorkflowEngine:
|
|||||||
# Post workflow completion to Communication (G-WORK)
|
# Post workflow completion to Communication (G-WORK)
|
||||||
try:
|
try:
|
||||||
from app.plugins.builtins.contracts import get_contract_registry
|
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:
|
if komm and instance.initiated_by:
|
||||||
room_title = f"Workflow: {workflow.name if hasattr(workflow, 'name') else str(instance.workflow_id)}"
|
room_title = f"Workflow: {workflow.name if hasattr(workflow, 'name') else str(instance.workflow_id)}"
|
||||||
conv_id = await komm.find_locked_room_id(
|
conv_id = await komm.find_locked_room_id(
|
||||||
|
|||||||
Reference in New Issue
Block a user