SpamSieve 3.0.2
SpamSieve 3.0.2 greatly improves the workaround for the macOS bug where sometimes Mail extensions don’t work at all. By reading Mail’s database directly, instead of using AppleScript, SpamSieve is able to work much faster, with no overhead in Mail itself. It’s also no longer limited by mailboxes that have so many messages that Mail would hang when asked to list them. Most customers didn’t have such large mailboxes, but I heard from a surprising number that had 50–100K messages in their inbox, and some with 500K.
Other interesting bugs were:
I fixed another
_thereIsNoSadnessLikeTheDeathOfOptimism
crash. This one was due to my constraint conflict resolution code (which works around another Core Data bug) assuming that one of the conflicting objects would be either inserted or updated. (How else could a conflict have been introduced?) But logging shows that Core Data is reporting the conflict as between two objects that are already fully saved. That seems like it should be impossible, but it happens, so now we handle that case.Sometimes, when SpamSieve asked Mail for the list of mailboxes, it would omit some, which then made it impossible for SpamSieve to let you select them for filtering. So I’ve added an esoteric preference that lets you manually add the missing mailboxes to the list.
- In order to register hotkeys, SpamSieve needs to build a map of virtual key codes. I had been assuming that the codes for ASCII characters would be less than 128, but that proved not to be the case with some keyboard layouts.
There was a crash due to directly indexing a
Data
, which in some circumstances could actually be aSubSequence
with shifted indexes—the dangers of directly translating Objective-C code to Swift.
Previously: