What's New
kvCache fix — tool calls should be dramatically faster
Pass-2 (the final answer after a tool call) was reprocessing the ENTIRE prompt from scratch because of two bugs:
-
Different kvCache keys — pass-1 used key
mySessionId, pass-2 used key${mySessionId}:tools. Different keys = separate cache = pass-2 couldn't reuse pass-1's cached KV state. -
Different system prompts — pass-2 appended an extra instruction to the system prompt, changing the configHash (which the SDK uses for cache keying) → guaranteed cache miss.
Fix: Same kvCache key for both passes, and the extra instruction moved to a user message so the system prompt stays identical. Pass-2 now only processes the new tokens (tool result + instruction) on top of pass-1's cached state.
Client-side tool skip for tactics questions
Questions like 'Explain gegenpressing' or 'What is offside' now skip the tool schema entirely — no extra tokens, no tool-decision reasoning, no risk of accidental tool calls triggering pass-2.
Other improvements
- Cancel inference when navigating away (no more background CPU waste)
- Async SQLite writes (UI stays responsive after inference)
- Elapsed time shown during prompt processing
- Fast mode token budget capped at 512 for snappier responses