So, I repaired the broken table, and recent changes looks good again. There may have been data loss, but I don't think so. I don't know what happened or why. The documentation suggests that if this happens often we should try to find the reason for it.
One of the new codebase tasks I have on the back burner is to tighten up some of the database error checking; maybe I'll move that to the front burner. Another thing I might do is when the system detects a serious error such as a corrupted table, I could have the software automatically switch into read-only mode and send mail to the maintainers (and my mail will even page me if I tell it to). 0