The way sculpt Undo works is problematic for the redo panel (at least
for the transform operator).
When editing the values in the redo panel, they keep accumulating.
In the Redo panel, when changing a value, a Undo step needs to be
performed in order to restore the previous state of the mesh.
But sculpt_undosys_step_decode_undo ignores this Undo step because it
is_final (For some reason is_final is ignored).
Therefore, since an undo step named "Transform" is added at the
beginning of the operation (in ED_sculpt_init_transform), we can identify
this undo step and not ignore it:
if (STREQ(us->step.name, "Transform"))
In addition to this change, the value of ss->pivot_scale also needed
to be stored in the undo step (in unode->pivot_scale).
I also edited the transform operator as it was initializing some values
out of place (ss->pivot_loc, ss->pivot_rot, ss->pivot_scale).
These values are now initialized in BKE_object_sculpt_data_create).
Ref T93113