With a bit of persistence and lots of print statements, I’ve debugged my port of the core dumbster features over to Swift. Stumpy now works as a native replacement for dumbster. It turned out there was a capitalization mismatch (my code was looking for ‘Message-ID’ while Mail was writing ‘Message-Id’) and a counting error (headers and body are supposed to be separated by a blank line, and that means two successive \r\n tuples: the first to terminate the last line of the headers and the second to terminate the blank line).
So now that that’s complete, it’s time to turn my attention to the UI. Rather than independently starting and stopping the servers, I think I’d like to start and stop both servers for a given mail store together. Also, I want the UI to report how many messages are currently in the mail store. All of this information should go together into a mail store view, which gets displayed by the top level view.