mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-07-07 21:17:58 +02:00
49a90d03fa
Concurrent tool callbacks in eino_adk_run_loop and the MCP monitor goroutine call Bind/ExecutionID on the same binder. The previous implementation used a plain map[string]string, causing intermittent 'concurrent map read and map write' panics — the same race that TestMCPExecutionBinder_ConcurrentBind was added to guard against. Wrap the map with sync.RWMutex (write lock in Bind, read lock in ExecutionID). The TrimSpace of toolCallID/executionID stays outside the critical section to keep it minimal. go vet ./internal/multiagent/... ✓ go test -race ./internal/multiagent/... -run MCPExecutionBinder ✓