I've pushed a few more commits to http://github.com/rlane/sup/tree/experimental
The major feature on this branch is the immediate label updates I've mentioned before on the list. The bulk of the actual changes are basically consequences of this feature: Use of Xapian for thread relevance checks - Instead of hardcoding the policy into InboxMode - New 'z' key to clear irrelevant threads - Not strictly necessary, but removing messages in response to index events is difficult with the current UI code - Saves us from (half of the) adding/removing threads changes cursor_thread problem - Relevant messages added to thread-index-modes without reload Async message state saving - Keeps the UI responsive - Prepares us for a sup-server future Fallout from async message saving - UpdateManager messages handled in main event loop - Avoids many races but can lag UI unless we're careful New, simpler undo implementation - Still needs work at a few use-sites to be completely correct Let me know what you all think of these changes. I'll need to do a lot of rebasing before this branch is clean enough to be merged. A couple of bugs I know about: - Discarding drafts is disabled - Occasionally, new messages in an existing undisplayed thread fail to get added to the ThreadSet. I haven't been able to come up with a test case for this, so if someone wants to give that a shot it would be very helpful. _______________________________________________ sup-talk mailing list sup-talk@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-talk