Any way to listen to undo from plugin?

That might work. You could also pass that information to the update callback.

In that feature request when update was called it would tell you what action initiated the call. You could probably have a second optional parameter that is if the action is undo or redo or first time.

function update(type, history) {
    if (type=="selection") {}
    if (type=="move" && history=="redo") {}
}