I don't know the reason, but Duo, which worked in 2.42.9d, is now broken.
I know what is going on. Bare with me for a moment.
How are fixed ties connected to bots? It's not a trivial question. Are they rigidly connected? Are they on a spring loaded bearings that try to get back to their fixed angle but can be torqued out of place like the arm of a clay pidgeon throwing arm or one of those spring loaded door hinges? How far out of place? Can I wind up the spring of a fixed bot indefenitly or only so far? It there's a limit, what happens when I reach it?
Imagine two bots tied together and the tie has hardened. Now the one that created the tie executes a 180 degree about face. What should the result be? Perhaps the bot on the other end of the tie is small and it should get whipped around with the tie but now imagine the bot executing the turn is tied to a huge mass of other bots that far out mass it. Should the "bearing" slip? Or perhaps the hardened tie connection should break? Or perhaps the bot should not be allowed to turn as far as it wants.... Now think about a bot that does a .fixang that positions a tie 180 degrees from where it is currently (which is what Duo does). Should the bot spin or the tie move or both?. What if the tie leads to a huge mass of other bots and similarly the bot has other fixed ties to large masses of bots? Same kind of problem. I can't whip two huge masses around just because some bot in the middle says to but I can't ignore the .fixang request either. Torque is being applied, what should break or slip?
Bascially, our exact degree turning and exact angle tie fixing paradyms are totally broken. Both are incompatable with realistic physics and the torque forces applied by hardened ties. I can't both instantly turn a tied bot 180 degrees (or rotate a tie 180 degrees) and obey the laws of physics. Something has to give. In my opinion, we should change the turning and tie angle fixing paradyms so that it is the bot's resulting orientation that gives. That is, a turn should be interpreted as the bot applying some torque to itself (same with a .fixang request) and that turning force should be added to all the other torque forces on the bot including that of hardened ties and the amount the bot actually turns should vary as the result. Turns should apply force, which may or may not result in the turn the bot wants (to say nothing about how the bot should loose angular momentum once it's gained it).
Needless to say, this is a big change, but we will have to do it I think.
But now back to Duo. Ties connections are bascially spring loaded bearings today. You can torque them up indefenitaly in 2.42.9d, but this spring loading manifests itself as all sorts of nasty harmonic vibrations and unwarrented spinning when large masses of bots are tied together. They can even start spinning and vibrating when the bots arn't turnign or doing anything themselves because of brownian motion or even just the quantum nature of bot cycles trying to balance out all the tie forces. Unlike nature, we can't integrate all forces all the time. Inbalances build up, particularly when there is little or no friction or fluid resistance.
In 2.42.9e, in an attempt to address some of this mess, I added some code that breaks the tie bearing connection if the torque being applied on the spring loaded bearing by the sum of all the torque forces exceeds pi/2. This is why Duo is breakign in 2.42.9e. If it turned itself before the tie hardened and then did the .fixang, it would work fine.
You may say that a quarter turn of the spring loaded bearing isn't enough and that we should let the bearing wind up a lot farther before it breaks. I think I agree and will likely change this, but if we had a different turning and angle fixing paradym, it wouldn't be necessary or at least as necessary. The torque would not get nearly as high as turns or .fixang stores would not be interpreted as absolutes.