So... slight problem with idkfa's backend. Here's the problem:
I store a record for each message a user sees in something like ["kaiden", "Msg #256"]. This means that for every time you view a message, a record is entered into this table, and then is left alone on subsequent visits to the same message.
This is by far the easiest way to give people a "viewing history." However, it doesn't scale well. We have about 800 posts on idkfa, and about 30 users. With only that many people viewing, we already have ~4,500 records in the viewing history table. Worst case for this table (everybody logs in and views everything) would be 24,000 records. Which means that with relatively few people, and only over the course of a few months, we've already reached 18% of the worst case. The more records in this table, the longer it will take to search, and the longer it will take to calculate things like "Next Unread Post" or the "#Unseen" value in the discussion area list.
I worked with this for a couple of hours last night. I think I have a good idea how to better handle this. Instead of storing records like I have above, I'll store it like ["kaiden", "Msg #256", "Msg #300"]. This will mean that user "kaiden" has already viewed the range of posts from #256 to #300, and it can be assumed that every post in between has been viewed. With some careful updates, it will be the case that over time there will be less entries in this table with the more messages a given user views.
What this might mean is that in the near future, I might have to reset your viewing histories. I might have a way to keep them, but I can't promise anything. Also, post tagging might have to be postponed while I rework this system as well.
What this will enable in the future is the ability to mark entire threads, or even entire items as "read," as you can in other forums. This will mean if you've been a diligent lurker, you don't necessarily have to reread all 800+ posts just to get good use out of the history function.