[Rule 3 - Blocking] VllmMlxSidecar (Task 4) needs ChildSpawnGate but
packages/Vision can't depend on JarvisMCP without transitively pulling
AgentOrchestrator (which would violate VISION-03 boundary).
Solution: hoist ChildSpawnGate.swift into a new JarvisChildSpawn SPM
target inside the MCP package. JarvisMCP keeps the same singleton via
the new dep; Vision can now depend on JarvisChildSpawn alone.
- New target JarvisChildSpawn (only depends on swift-log)
- JarvisMCP gains JarvisChildSpawn as a dependency
- MCPServerHandle.swift / MCPClient.swift gain 'import JarvisChildSpawn'
- ChildSpawnGate uses Logger directly instead of MCPLogChannel.logger
(avoids dragging MCPLogChannel into the standalone target)
- Tests updated to '@testable import JarvisChildSpawn'
- All 3 ChildSpawnGate tests pass; full MCP build clean