Attached is a final patch that adds a sanity check to verify that the stuff being uploaded actually smells like proper firmware. Sadly there's no good checksum over the whole thing and there's also no easy way to distinguish user1.bin from user2.bin.
The user interface at this point is non-existent. I tested it using commands like:
Code: Select allcurl http://esp8266/flash/next
curl -v --data-binary @firmware/user1.bin http://esp8266/flash/upload
curl http://esp8266/flash/reboot
So far nobody has reacted to any of these patches, so I'll assume there's no interest in further work on this and I'll continue in my private repo.