1. A method for providing an undo functionality in a legacy application in which an undo command is unsupported, comprising: executing, by a processor, an intermediary application for: providing a first user interface via which to receive user input of an undo command to obtain a prior application state instead of a current application state; maintaining a first command identification stack that includes identifications of previously executed commands that were executed by the legacy application; and responding to the user-input undo command by: removing one of the identifications of previously executed commands from the first command identification stack, wherein the one identification being removed corresponds to one user interface command previously performed and targeted to be undone in response to the user-input undo command; and subsequently interacting with the legacy application; and executing, by the processor and in accordance with the interaction, the legacy application to re-execute in sequence the commands identified by remaining identifications of the first command identification stack, the sequence of commands re-executed (a) not including the command whose identification has been removed from the first command identification stack, and (b) effecting the prior application state.