Skip to content

Commit 15da8c9

Browse files
authored
Merge pull request #609 from matdev83/codex/fix-improper-di-usage-in-codebase-1i34fb
Ensure fallback request managers reuse DI wire capture
2 parents 465b0bc + fccbe40 commit 15da8c9

2 files changed

Lines changed: 64 additions & 2 deletions

File tree

src/core/app/controllers/anthropic_controller.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,8 +533,39 @@ def get_anthropic_controller(service_provider: IServiceProvider) -> AnthropicCon
533533
agent_response_formatter = AgentResponseFormatter()
534534

535535
session_manager = SessionManager(session, session_resolver)
536+
wire_capture = None
537+
try:
538+
from src.core.interfaces.wire_capture_interface import (
539+
IWireCapture as _IWireCapture,
540+
)
541+
542+
wire_capture = service_provider.get_service(
543+
cast(type, _IWireCapture)
544+
)
545+
except Exception:
546+
wire_capture = None
547+
548+
if wire_capture is None:
549+
try:
550+
from src.core.di.services import get_service_provider
551+
552+
global_provider = get_service_provider()
553+
except Exception:
554+
global_provider = None
555+
else:
556+
if (
557+
global_provider is not None
558+
and global_provider is not service_provider
559+
):
560+
try:
561+
wire_capture = global_provider.get_service(
562+
cast(type, _IWireCapture)
563+
)
564+
except Exception:
565+
wire_capture = None
566+
536567
backend_request_manager = BackendRequestManager(
537-
backend_processor, response_proc
568+
backend_processor, response_proc, wire_capture
538569
)
539570
response_manager = ResponseManager(agent_response_formatter)
540571

src/core/app/controllers/chat_controller.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,8 +821,39 @@ def backend_processor_factory(
821821
agent_response_formatter = AgentResponseFormatter()
822822

823823
session_manager = SessionManager(concrete_session, session_resolver)
824+
wire_capture = None
825+
try:
826+
from src.core.interfaces.wire_capture_interface import (
827+
IWireCapture as _IWireCapture,
828+
)
829+
830+
wire_capture = service_provider.get_service(
831+
cast(type, _IWireCapture)
832+
)
833+
except Exception:
834+
wire_capture = None
835+
836+
if wire_capture is None:
837+
try:
838+
from src.core.di.services import get_service_provider
839+
840+
global_provider = get_service_provider()
841+
except Exception:
842+
global_provider = None
843+
else:
844+
if (
845+
global_provider is not None
846+
and global_provider is not service_provider
847+
):
848+
try:
849+
wire_capture = global_provider.get_service(
850+
cast(type, _IWireCapture)
851+
)
852+
except Exception:
853+
wire_capture = None
854+
824855
backend_request_manager = BackendRequestManager(
825-
backend_processor, concrete_response_proc
856+
backend_processor, concrete_response_proc, wire_capture
826857
)
827858
response_manager = ResponseManager(agent_response_formatter)
828859

0 commit comments

Comments
 (0)