Skim v1.0.18
Skim v1.0.18 — "Mind the closing boundary" 🧱
The one where we stop blaming you for emails that render as a beautiful, pristine, completely empty rectangle. Turns out it was us. Well — it was the sender's mailer. But we fixed it anyway. 🕵️
🐛 Fixed
- Blank emails are no longer blank. Some mailers finish a message on the last base64 chunk and just… walk away, never writing the closing
--boundary--. The MIME parser reads that as "this part is broken", quietly demotes your email to an attachment, and hands us nothing to show. Skim now closes those dangling multiparts itself (innermost first, like a polite houseguest turning off the lights) and parses again. Your booking confirmations are back. 📬 - No more phantom attachment. That mystery
.binfull of raw base64 sitting under the empty email? It was your email. It has been returned to its rightful place. 🎭 - Bad parses no longer latch forever. The old code cached "I fetched this" and "there's genuinely nothing here" as the same thing, so a message that failed to parse once stayed broken until the heat death of the universe. Now Skim can tell the difference and gives previously-mangled messages one more honest attempt. ♻️
- Truly empty emails say so. If a message really has nothing to render, you get a plain line saying that instead of headers floating above a void. Silence is not a UI. 🫥
- Stale attachment files get cleaned up on refetch, instead of quietly squatting on your disk forever. 🧹
🌍 Everywhere
- The new "nothing to show" line is translated across all 11 locales, because a blank pane is confusing in every language. 🗺️
🧹 Housekeeping
- Three new tests that fabricate exactly the kind of broken email that started this whole mess, so it can't come back. 🧪