Skim v1.0.14 — "Thinking, Not Loading" 🧠
The one where Skim stops insisting the model is loading while it is, in fact, sitting there thinking very hard. Turns out silence has two meanings, and we only knew one of them. 🙃
Entirely the work of @gildas-refacto in #28 — thank you! 🙌
🐛 Fixed
- "The model is loading…" was a lie. ⏳ Skim only ever watched for answer text. A reasoning model produces none while it reasons, so Skim saw silence and concluded the thing was still booting up. It now says "Thinking…", because that's what's happening.
- Not just a local-model problem. 🤖 Current Anthropic models reason by default, so the wrong label showed up on the default provider too. Both streaming clients report reasoning now.
- The recap counter no longer freezes at "reading 20/20". 📬 It steps aside for "Thinking…" the moment the mail is actually read, instead of staring at you until the answer lands.
- The loading hint no longer beats the thinking one by a single frame. 🎞️ A flicker so brief it was almost a rumour. Gone anyway.
🧹 Housekeeping
- Both streaming clients grew an honest
on_reasoningcallback next toon_delta, instead of overloading empty fragments to mean something they don't — one explicit signal beats three guards you'd maintain forever. 🧵 - On the Anthropic side it's the arrival of the reasoning block that counts, not its contents: redacted blocks are empty by design, so presence is the signal. 🕵️
- The SSE test harness counts reasoning reports now, so a spurious one can't hide inside the streamed text. 172 tests, green. ✅
- Verified live against Ollama (cold and warm start) and Anthropic with a real key — recap, chat, mailbox chat, compose, style scan. Nothing changed in answer streaming, tool calls or citations. 🔬
Windows installers below: grab the _x64-setup.exe (NSIS) unless you have opinions about MSI. 🪟