Skip to content

Skim v1.0.8

Choose a tag to compare

@github-actions github-actions released this 23 Jul 13:11

Skim v1.0.8 — "Port Authority" 🚢

The one where Skim finally learns that not every mail server hides behind implicit TLS. Turns out port 143 has feelings too.

🐛 Fixed

  • IMAP on port 143 now just works. Type 143 and Skim used to fire a TLS handshake straight at the server's plaintext greeting, then fall over with the delightfully unreadable received corrupt message of type InvalidContentType. Now Skim reads the port and picks the transport for you: 143 → STARTTLS upgrade (connect in the clear, read the greeting, STARTTLS, then handshake — credentials never leave before the tunnel's up), everything else → implicit TLS, exactly as before. No toggle, no new setting, no "which encryption mode?" quiz. The client decides, because that's the whole point. 🔒 (#19)
  • Errors that speak human, not TLS. Server won't do encryption on 143? "Try IMAP port 993." Plaintext greeting where a secure port was expected? "This doesn't look like a TLS port." Localized in all 11 languages — and real cert/timeout problems keep their own codes, so a genuine TLS failure never gets mislabeled as "wrong port." 🗣️

🧹 Housekeeping

Huge thanks to @gildas-refacto for a beautifully thorough round of AI-layer cleanup (#18) — the kind of PR that leaves the codebase tidier than it found it. 🙏

  • The slowStart timer, copy-pasted into four components, is now one tiny createSlowStart helper. Same story for Ollama detection — createOllamaDetection, deduped out of Settings and Onboarding. ✨
  • Ollama model discovery no longer throws out the whole list when a single /api/show hiccups — it skips that one model and moves on. And if the server dies mid-listing, Skim reports "unreachable" instead of falsely claiming you have no tool-capable models. 🧠
  • OrModel was renamed to AiModel, because the old name had started quietly lying about what it held.

Full changelog: v1.0.7...v1.0.8