We cleaned up the code a bunch, formalized the plugin system, added a bunch of new hooks, fixed a bunch of bugs, etc.
Notably as a caller you don't have to declare which plugins implement which hooks anymore. Plugins declare that themselves. (My example executable in my previous announcement where I had to define auth_hooks vs roster_hooks was just the result of laziness....)
Also, a new employee (Jonathan Steinert) has been going through the RFCs, naming each requirement inline, and then one of our tests parses the annotated RFCs and annotated source code and makes sure we comply with each requirement in the RFC.
Been reading the RFCs in bed tonight (as has Artur (in his own bed)), getting ready for another hacking session probably tomorrow where we want to work more on server-to-server and roster/presence stuff, shifting from RFC 3920 into 3921.
Fun stuff. Once we get it mostly compliant and get an SQLite roster/auth plugin we'll more formally announce/release it on CPAN.