v1.3.107
v1.3.107
Fixes
Data races in IM and swarm test suites (race detector clean)
Fixed three data races detected by -race flag in the IM and swarm packages. These were test-only races (callback variables accessed without synchronization between goroutines) but could cause flaky CI under -race and indicated real concurrency hazards.
IM daemon bridge test (interactive_test.go): restartCalled bool written from async restart goroutine, read from test goroutine. Fixed with atomic.Bool.
IM daemon bridge test (daemon_bridge_test.go): Same restarted bool pattern in TestHandleSlashCommand_RestartWithHook. Fixed with atomic.Bool.
IM emitter test (emitter_test.go): namedCaptureSink.eventsList slice written from fanOutSend goroutine via Send(), read from test goroutine via events()/reset(). Fixed with sync.Mutex.
Swarm manager test (manager_test.go): resultEvent struct written from SetOnUpdate callback (swarm goroutine), read from test goroutine. Fixed with sync.Mutex.
Swarm idle runner test (idle_runner_test.go): events slice written from onEvent callback (teammate loop goroutine), read from test goroutine. Fixed with sync.Mutex.
MCP transport file (untracked from previous cycle)
internal/mcp/transport.go was created in a previous proxy-support cycle but never committed. It provides newMCPHTTPClient() with proxy support, transport-level timeouts, and insecure TLS — now properly tracked.
Previous releases in this cycle
- v1.3.106 — HTTP proxy support for all providers and MCP; debug ring buffer 500→2000