A program with a single action ("Attack") survived a few iterations and earned me a bit over 100000 upgrade points, so I was able to buy the entire tree. Also, some upgrades cost negative amounts.
1) the upgrade points were given because there was a bug that didnt update them correctly, so we didnt want people to be soft locked
2) there wasn't enough time to playtest the game and tweak the difficulty and wasn't enough time to add more nodes other than attack and defend to have more complex logic
3) negative costs were because they weren't implemented