mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-09 04:40:57 +00:00
fix(cloud): recover box runtime without unscoped skill reload
This commit is contained in:
@@ -227,7 +227,7 @@ class BoxService:
|
|||||||
self._connector_error = ''
|
self._connector_error = ''
|
||||||
skill_mgr = getattr(self.ap, 'skill_mgr', None)
|
skill_mgr = getattr(self.ap, 'skill_mgr', None)
|
||||||
reload_skills = getattr(skill_mgr, 'reload_skills', None)
|
reload_skills = getattr(skill_mgr, 'reload_skills', None)
|
||||||
if callable(reload_skills):
|
if callable(reload_skills) and not self._cloud_managed:
|
||||||
await reload_skills()
|
await reload_skills()
|
||||||
self.ap.logger.info('Box runtime reconnected, sandbox features restored.')
|
self.ap.logger.info('Box runtime reconnected, sandbox features restored.')
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -568,6 +568,28 @@ async def test_box_service_reconnect_restores_workspace_and_runs_cleanup(
|
|||||||
assert service.available is True
|
assert service.available is True
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_cloud_box_service_reconnect_does_not_reload_unscoped_skills(
|
||||||
|
monkeypatch: pytest.MonkeyPatch,
|
||||||
|
):
|
||||||
|
app = make_app(Mock())
|
||||||
|
app.skill_mgr = SimpleNamespace(reload_skills=AsyncMock())
|
||||||
|
service = BoxService(app, client=Mock(spec=BoxRuntimeClient))
|
||||||
|
service._cloud_managed = True
|
||||||
|
connector = Mock()
|
||||||
|
connector.reconnect = AsyncMock()
|
||||||
|
service._ensure_default_workspace = Mock()
|
||||||
|
service._verify_cloud_runtime = AsyncMock()
|
||||||
|
monkeypatch.setattr('langbot.pkg.box.service.asyncio.sleep', AsyncMock())
|
||||||
|
|
||||||
|
await service._reconnect_loop(connector)
|
||||||
|
|
||||||
|
connector.reconnect.assert_awaited_once()
|
||||||
|
service._verify_cloud_runtime.assert_awaited_once()
|
||||||
|
app.skill_mgr.reload_skills.assert_not_awaited()
|
||||||
|
assert service.available is True
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_box_runtime_reuses_request_session():
|
async def test_box_runtime_reuses_request_session():
|
||||||
logger = Mock()
|
logger = Mock()
|
||||||
|
|||||||
Reference in New Issue
Block a user