mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-09 12:40:59 +00:00
fix(agent): stabilize post-merge release paths
This commit is contained in:
@@ -90,6 +90,13 @@ class AgentRunOrchestrator:
|
||||
execution_context = get_query_execution_context(execution_query)
|
||||
if not isinstance(execution_context, ExecutionContext):
|
||||
raise ValueError('Agent run requires a trusted ExecutionContext')
|
||||
event_workspace_id = str(event.workspace_id or '').strip()
|
||||
if event_workspace_id and event_workspace_id != execution_context.workspace_uuid:
|
||||
raise ValueError('Agent event Workspace does not match its trusted ExecutionContext')
|
||||
if not event_workspace_id:
|
||||
event = event.model_copy(
|
||||
update={'workspace_id': execution_context.workspace_uuid}
|
||||
)
|
||||
descriptor = await self.registry.get(
|
||||
execution_context,
|
||||
runner_id,
|
||||
|
||||
@@ -31,6 +31,7 @@ from .host_models import (
|
||||
from .config_resolver import RunnerConfigResolver
|
||||
from .resource_policy import ResourcePolicyProjector
|
||||
from . import events as runner_events
|
||||
from ...pipeline.pool import get_query_execution_context
|
||||
from ...provider.tools.toolmgr import TOOL_SOURCE_REFS_QUERY_KEY
|
||||
|
||||
|
||||
@@ -81,6 +82,7 @@ class QueryEntryAdapter:
|
||||
|
||||
# Build raw ref
|
||||
raw_ref = cls._build_raw_ref(query)
|
||||
execution_context = get_query_execution_context(query)
|
||||
|
||||
return AgentEventEnvelope(
|
||||
event_id=event.event_id or str(query.query_id),
|
||||
@@ -89,7 +91,7 @@ class QueryEntryAdapter:
|
||||
source='host_adapter',
|
||||
source_event_type=event.source_event_type,
|
||||
bot_id=query.bot_uuid,
|
||||
workspace_id=getattr(query, 'workspace_uuid', None),
|
||||
workspace_id=execution_context.workspace_uuid,
|
||||
conversation_id=conversation.conversation_id,
|
||||
thread_id=conversation.thread_id,
|
||||
actor=actor,
|
||||
|
||||
@@ -1566,6 +1566,11 @@ def _execution_context_from_tenant(context: TenantContext) -> ExecutionContext:
|
||||
|
||||
|
||||
def _execution_context_from_query(query: pipeline_query.Query) -> ExecutionContext:
|
||||
if isinstance(getattr(query, '_execution_context', None), ExecutionContext):
|
||||
# Import lazily to keep the loader module independent during app boot.
|
||||
from ....pipeline.pool import get_query_execution_context
|
||||
|
||||
return get_query_execution_context(query)
|
||||
return _execution_context_from_tenant(
|
||||
ExecutionContext(
|
||||
instance_uuid=str(getattr(query, 'instance_uuid', '') or ''),
|
||||
|
||||
Reference in New Issue
Block a user