1. A method for providing an undo functionality, comprising: maintaining a first action identification stack that includes a plurality of identifications that each identifies a respective one of a corresponding plurality of previously executed actions, wherein : (a) each of the identifications corresponding to a different one of the previously executed actions than all other of the identifications, (b) the identifications are stored in a sequence that corresponds to a sequence in which the previously executed actions were executed, (c) the plurality of previously executed actions include all actions previously executed for progressing from an initial state to a current application state, such that a first of the identifications corresponds to a first of the actions performed in the progression and the last of the identifications corresponds to a last of the actions performed in the progression, and (d) each of the plurality of previously executed actions is separately identified by a different one of the plurality of identifications; and responding to user input of an undo command to obtain a prior application state instead of a current application state by: removing, by a computer processor, one of the identifications of previously executed actions from the first action identification stack, wherein the one identification being removed corresponds to one user interface action previously performed and targeted to be undone in response to the user-input undo command; subsequently traversing, by the processor and in sequence beginning with the first of the identifications, all of the identifications of the first action identification stack that remain after the removal of the one of the identifications; and during the traversal, for each of the traversed identifications, re-executing, by the processor, the respective action identified by the respective traversed identification, thereby re-executing all of the actions of the progression from the initial state to the prior application state to be obtained, the re-execution (a) not including the action whose identification has been removed from the first action identification stack, and (b) effecting the prior application state; wherein: the undo command is input via a user interface of an intermediary application; the traversal is performed by the processor executing the intermediary application to interact with a legacy application, that does not support the user input undo command, for performing the re-execution; and the intermediary application intercepts results returned by the legacy application during the re-execution until the prior application state is obtained, at which point a result corresponding to the prior application state is output to the user.