v0.9.5 — Per-model context windows, Kimi Code, orb polish
Added
- Kimi Code provider — the Kimi Code coding plan (kimi.com/code) is a separate service from the general Kimi · Moonshot API: its own
sk-kimi-…keys, its own Anthropic-compatible endpoint (https://api.kimi.com/coding), and a single model (kimi-for-coding, 256k). Now a one-click built-in provider — pick Kimi Code, paste the key, Connect. Previously such a key failed against the Moonshot endpoint with a confusing 401.
Improved
- Context window is now per-model and auto-detected — the usage meter and the compaction point used one coarse number per provider, so models were badly mis-sized (DeepSeek showed 128k and compacted at ~115k despite a real 1M window). Each model now resolves its own window from a researched table (Claude 4.6/4.8 1M, DeepSeek V4 1M, Gemini 2.5 1M, GPT-4.1 1M, GLM-4.6 200k, Qwen3-Coder 1M, Kimi K2 256k, Grok, Llama, Mistral, …) and, where a provider advertises it on its model list (OpenRouter, Groq, Together, …), the live value wins automatically. The compaction budget is derived from that window (~80%), so big-context models run far longer before summarizing. Still overridable per provider via
providerConfig.contextWindow/contextBudget. - Gender-aware agents — an agent now self-identifies by the gender of its assigned voice (♀/♂), so the voice you hear and the words match (Thai ครับ/ผม vs ค่ะ/ฉัน) in both chat and realtime calls.
Fixed
- Voice hotkey (Right Ctrl) no longer wedges — a missed key-up when window focus shifted left it "stuck down" so the next press was swallowed. A 150 ms watchdog reconciles against the key's real physical state (
GetAsyncKeyState), so it can't get stuck. - Orb has no invisible grab box — the chat-head's square window let its transparent corners catch clicks/drags and show a hand cursor. Pointer events outside the circle are now ignored and the cursor is a plain arrow there.
Update
bagidea update
🤖 Generated with Claude Code