perf(agent-runner): improve session registry and orchestrator efficiency

- Add pre-computed _authorized_ids (frozenset) at session registration for O(1) lookup
- Refactor is_resource_allowed() from linear search to set membership check
- Add thread-safe locking to get_session_registry() singleton
- Cache _session_registry and _state_store references in orchestrator __init__
- Add asyncio.gather() for parallel resource building in AgentResourceBuilder
- Create shared test fixtures in tests/unit_tests/agent/conftest.py
- Update test files to import from shared conftest.py

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
huanghuoguoguo
2026-05-11 21:45:26 +08:00
committed by huanghuoguoguo
parent 45f150da2d
commit 6ef40fbd68
23 changed files with 4438 additions and 898 deletions
@@ -108,9 +108,13 @@ class AgentResultNormalizer:
return None
elif result_type == 'state.updated':
# Log for telemetry, don't yield
# Log for telemetry, don't yield to pipeline
# Orchestrator already handles the actual state_store.apply_update
scope = data.get('scope', 'conversation') # Default for backward compat
key = data.get('key', 'unknown')
value_repr = repr(data.get('value', '...'))[:100] # Truncate for log
self.ap.logger.debug(
f'Runner {descriptor.id} state updated: {data.get("key", "unknown")}={data.get("value", "...")}'
f'Runner {descriptor.id} state.updated logged: scope={scope}, key={key}, value={value_repr}'
)
return None