Improved scalability by using the cache instead of the user session to save the UJS. http://groups.google.com/group/symfony-devs/browse_thread/thread/7ea169195e35d7e3/daf3ef362f410e27?lnk=gst&q=sfUJSPlugin&rnum=1#daf3ef362f410e27 (I'm sorry for my terrible writing in that post.)
The UJS key is an md5 of the UJS, so you can have user-specific data in the UJS without setting it to static (but if there is sensitive data in it, it should be set to static). This also makes long lifetimes possible, both on the server, on a proxy server and on the client.
Some of the internals of the plugin have been modified to simplify it. (Well, I guess there are more lines of code now than before, but...). The main part of the plugin is the sfUJS singleton.*
Unfortunately I don't have any unit tests for the sfUJS class. I know I should have, and I'm sorry. Maybe I can write someone later, but things are a bit hectic nowadays, so I don't have the time to do it right now. (There where no unit tests like that in the original version either. There were some, but those tested the helpers themselves, partly on the client side. They are still there and they still pass.)
There is also the possibility that you hate my implementation, and then there would be no point in using time on the unit tests.
Since I am doing these changes for my own project too, I've removed the sfPJSPlugin dependency. I probably shouldn't have done so, or at least I should have added it to another ticket instead, but there is really no need for it and I don't understand why you are using it. Isn't it just adding another layer of complexity? If you really want to keep it, I could find the changes that I did to remove it and undo them, but is it really necessary? It is possible that I am missing something, and if that's the case, I'm sorry and I will add it back in again.
I've done some changes to the readme-file where I explain the added configuration options. English is my second language and I'm not really good at it, so its probably terrible and my changes probably has to be rewritten. :)
The plugin will probably not work in symfony 1.1, because of the refactored cache system, but porting it to 1.1 would probably be fairly easy.
I've added the extra files and folders to package.xml, but I haven't done any other changes to it.
*I'm not sure that a singleton is the best solution here. Maybe a factory would be better (or maybe not), but it looks like there has to be done changes deeper into symfony to add another element to its factory (I have to admit that I haven't looked too closely at it, so I might be wrong). Anyway, this can easily be changed. There are only a couple of calls to sfUJS::getInstance().