What's changed
- Mobile provider model list legibility — on narrow viewports, model names in Settings → Providers were squeezed to near-invisible by fixed-width badges and buttons. Price badges now appear only on tablet/desktop (still reachable via long-press tooltip on mobile), the visibility toggle switches to an icon-only 32 px button on mobile, and the copy-model-ID button is hidden in the Tauri mobile shell (the long-press context menu already covers it). Desktop layout is unchanged.
- Agent execution performance — SQLite write transactions during multi-tool turns reduced by 83% by coalescing per-tool persistence into one atomic end-of-turn write and gating checkpointer pre-model sync to hook-mutation turns only. Context load GIL latency improved 80x–500x by replacing
copy.deepcopywith shallow list copies in the checkpointer. Streaming buffer RAM for completed turns is now reclaimed promptly (60 s TTL). - Hook chain dispatch optimisation — passthrough hook wrappers (hooks that do not override
wrap_tool_call/wrap_model_call) are pruned at chain-build time. In a 12-hook configuration this eliminates 10 redundant async trampoline hops per model call and tool execution, reducing hook dispatch latency to ~0.001 ms.
Full changelog: v2.25.0...v2.26.0