A state container with linear undo/redo history — keystroke coalescing, forced breakpoints, a bounded stack, and stable callbacks.
npx shadcn@latest add @zyeon/use-undo-redoZyeon UI limits how often it can be asked, and useUndoRedo hasn't had its turn. Its source will show here once it has.