Incorrect CSS class on Lighthoused attacks (attacker and reacter wrong way around)
End-of-turn line is absent if a Treasury was used.
Normalised position and the wins count don't take draws into account.
The text by checkbox controls isn't labels for those checkboxes.
Ambassador should be an Attack
Fishing Village, Wharf, Wharf coming off duration results in a Buy action available at turn start.
Watching a waiting game doesn't autoupdate correctly
Navigator doesn't allow you to put cards back in an order of your choosing.
Under certain circumstances, the game doesn't immediately notice that it's due to finish. Possibly fixed.
Multiple Treasuries produce confusing controls. Need explanatory labels.
Outpost should be a Duration
Mean score is incorrectly an integer.
Libraried cards get stuck in the "library" zone
Library tells other players what the library owner is considering setting aside
New Features:
Now largely works with Chrome (due to Heroku's framework, not my work!)
"Start Game" appears not to.
User preference for update interval
Automatically delete the oldest game (over 5, and at least 3 days old, say) when a new game is created.
Use of static JS dictionary instead of AJAX to get card-texts on new-game page. This is now noticeably faster
Confirmation box on the Curse "Buy" button
Rankings - hide accounts that have never played a game.
Rankings - Fade rows for accounts that haven't played in ages.
Rankings - Display logged-in user always.
Explain rankings
Case-insensitive user names
Email-linked user accounts, including "Forgot password?" links
Cookied login
About, How to Use, Contact etc. pages
A very basic chat box, to be able to exchange comments such as "Awesome turn!" or "Unlucky!" with people who aren't on ToothyChat.
Rename the main controller from "games" to "dominion"
Randomise seating order
Came free with the chat box (Huh? Well, the chat box needed to know what round it was. That meant I needed to know on whose turn the round ticked over. But that wasn't information previously available - seat 0 was always the first player in the game, seat 1 the second, etc. while the start player was random. Solution? Randomise seating order and give seat 0 to the start player)