fix(exec): isolate exec session managers

This commit is contained in:
yu-xin-c
2026-07-18 17:35:56 +08:00
committed by Xubin Ren
parent 7ac9a46978
commit 995cc44e89
8 changed files with 132 additions and 12 deletions
+3
View File
@@ -28,6 +28,7 @@ from nanobot.agent.model_runtime import ModelRuntimeResolver
from nanobot.agent.runner import _MAX_INJECTIONS_PER_TURN, AgentRunner, AgentRunSpec
from nanobot.agent.subagent import SubagentManager
from nanobot.agent.tools.context import RequestContext, bind_request_context, reset_request_context
from nanobot.agent.tools.exec_session import ExecSessionManager
from nanobot.agent.tools.file_state import FileStateStore, bind_file_states, reset_file_states
from nanobot.agent.tools.message import MessageTool
from nanobot.agent.tools.registry import ToolRegistry
@@ -355,6 +356,7 @@ class AgentLoop:
# One file-read/write tracker per logical session. The tool registry is
# shared by this loop, so tools resolve the active state via contextvars.
self._file_state_store = FileStateStore()
self._exec_session_manager = ExecSessionManager()
self.runner = AgentRunner()
self.subagents = SubagentManager(
workspace=workspace,
@@ -540,6 +542,7 @@ class AgentLoop:
bus=self.bus,
subagent_manager=self.subagents,
cron_service=self.cron_service,
exec_session_manager=self._exec_session_manager,
sessions=self.sessions,
provider_snapshot_loader=provider_snapshot_loader,
image_generation_provider_configs=self._image_generation_provider_configs,