I can tell you more about the bug.

It happened more times. It always happened when drag a piece to a non-legal movement, but not release the piece, go back to the starting point. Some times it "snaps" to the wrong place, then you can't move that misplaced piece.

Didn't look at the sources yet.