SpamSieve 3.2
SpamSieve 3.2 includes lots of updates for macOS Tahoe 26 and adds remote training and improvements to the filtering accuracy.
I love the new app icon that Kenichi Yoshida designed. To avoid jail, the sieve is now within the squircle. It’s also enlarged, and there’s once again room to see the envelope coming out the bottom. One thing we had to let go was the custom badging from the previous design. It used to start out showing a large envelope glyph in the top-left corner, and this would change in the Dock to indicate when SpamSieve was filtering or training messages. As far as I can tell, this is no longer possible with Tahoe and Liquid Glass. We can set the Dock icon at runtime, but only if we know the exact pixels, which we don’t because we don’t know whether the user has selected Dark or Clear or Tinted icon mode, and because there’s no API to load a .icon file with those variants. So SpamSieve now does the badging using the system API (like the unread count in Mail).
As previously discussed, something is wrong with Apple Mail’s AppleScript support and POP accounts in Tahoe.
It does look like there were some AppleScript improvements in Tahoe, though. Recent versions of Mail had a terrible performance regression where accessing one message via AppleScript would make Mail load every message in its mailbox, all at once. Then when your script accessed the next message it would do it all again, even if the script was supplying the unique ID of the desired message, which is also the database primary key. (Sidenote: there’s also a longstanding bug in Mail’s AppleScript terminology that makes it hard to look up messages in this way; whenever you recompile your script the source text becomes invalid.) Anyway, what should have been quick operations could be slow, and operating on multiple messages could be accidentally quadratic. With Tahoe, Mail once again seems to be able to do database queries for information about a single message.
I’m sorry to say that Microsoft will be temporarily removing AppleScript support from Outlook on November 1. Mac Outlook (and its predecessors Entourage and Outlook Express, from members of the Claris Emailer team) have a history of being great Mac citizens but then started removing features and feeling more like cross-platform Office apps. Five years ago, Microsoft shipped an in-progress rewrite of the app using Web technologies, with many of the key features removed. It was still possible to run the “legacy” version of the app (which was shipped in the same binary), and we were told that this would be supported until AppleScript and other features had been reimplemented in the new codebase. However, now they’re killing the legacy version, even for customers who already have that version of the app installed and are current with their Microsoft 365 subscription. AppleScript support is slated to return in December, and they assure me this will actually happen, but I’m a bit skeptical because the announced schedule has slipped several times already. Interestingly, and sadly, it look like rules in Outlook are gone for good. They’re not even on the public roadmap. I also miss schedules, database rebuilds, and import/export.
There are huge RAM and performance improvements with SpamSieve’s handling of large table view selections. These come from more pervasive use of custom collection types, to delay fully realizing objects that might not be needed and to only realize batches of them at a time. Also, it fixes a bug in my implementation of _customIndexOfEquatableElement() that in some cases defeated the intended optimization. The bottommost override must call
firstIndex(of:)rather than delegating to the protocol extension implementation of the same method! (Also, be careful when implementing this family of protocol overrides, as Swift will not tell you if you spell them wrong or have the signature slightly off.)On previous versions of macOS, you could round-trip a Swift string to UTF-8 data and back, and it would remain the same. With Tahoe, if it starts with a Unicode BOM that gets stripped.
There’s a Tahoe issue with multiple displays where the menu bar icon’s menu sometimes opens on the opposite side of the screen (i.e. disconnected from the icon) and slightly off-screen.
Opening Apple Help links to a particular anchor remains broken in Tahoe.
Previously:
4 Comments RSS · Twitter · Mastodon
> Five years ago, Microsoft shipped an in-progress rewrite of the app using Web technologies
There's much newer UI, but I don't think it's web? There's apparently no Electron (what apps tend to use) or MSWebView2 (what MS apps such as Teams have moved to) dependency. I've seen some what seems to be web UI in it, such as Room Finder (or maybe that thing merely has poor layout), but I _think_ most of it is just AppKit?
@Sören Microsoft itself promoted the rewrite as using Web technologies. I think a lot of the settings window is just AppKit, but they also seem to have lots of JavaScript in the app (the editor and various other areas feel very webbby). I think it uses WebKit rather than Chromium.
Not tested, but presumably the badges will now be VoiceOver accessible now they're not being custom-drawn. That's definitely an upside.
Is the drone stuff with Apple Mail all implemented in the extension now? Is this what makes it robust compared to AppleScript?
I am already using getmail for POP3 fetching on some of my old accounts, so I can workaround the scripting bugs for POP3 accounts in Tahoe. This is a superior method anyway, as I can manage one account more easily and don't need rules to shuffle retrieved mail to my primary account. I'll be doing a completely clean upgrade of my "server" to 26, and this will all be a welcome opportunity to consolidate my accounts and filter everything in one place.
@Sebby Probably the badges will work with VoiceOver, but they’re just glyphs and there’s no API (that I know of) to specify an accessibility description. These badges are not meant to be on screen for very long, so I’m not sure they’re a good fit for VoiceOver, anyway.
No, the extension does essentially nothing because the available functionality is extremely limited and the API still mostly doesn’t work. The drone stuff is all AppleScript, but it’s better designed and better coded than before.
I have a workaround for the POP issue in beta.