setCaretPosition(0)
constraintMatchesDialog only needs to be shown when a solution is loaded
improve ConstraintMatch upgrade recipe