What's New
Multi-Provider AI
- Switch between Gemini, Claude, and OpenAI mid-game from a dropdown in the overlay
- Claude screenshot support — attach the current game frame for visual analysis
- No extra API keys — Claude and OpenAI use your existing CLI subscriptions
DX12 Stability
- Hardened command queue fallback (filters non-DIRECT queues, frequency tracking)
- New
hook_delayconfig for games with long DX12 init (e.g. Horizon Forbidden West) catch_unwind+ 5s retry on DX12 hook build
Performance
- Zero mutex locks on render hot path when overlay is hidden
- Atomic fast-paths for capture state, health check, and init status
- Static HTTP client (was per-request allocation)
Deep Review (26 fixes)
- Cancel now actually kills proxy subprocesses (was no-op due to generation race)
- Child process leak on error paths fixed
- Stale screenshot after cancel+resend race prevented
- Model name validation in proxy (prevents URL path traversal)
- SSE stream capped at 2MB (OOM protection)
- Unicode sanitizer for ImGui Latin-1 font (em dashes, smart quotes, TM/C/R symbols)
- Translation disabled by default (F10 conflicted with game keybindings)
Dependency Updates
- tokio 1.51.0, toml 1.0.7, TypeScript 6.0, Svelte 5.55, Vite 8.0.3
Full changelog: v1.1.0...v1.2.0