Since jj v0.33, “jj undo is now sequential: invoking it multiple times in sequence repeatedly undoes actions in the operation log. Previously, jj undo would only undo the most recent operation in the operation log. As a result, a new jj redo command has been added” (source: https://github.com/jj-vcs/jj/releases/tag/v0.33.0). But the https://jj-tutorial.github.io/tutorial/core-concepts/throwing-away-changes-and-jj-undo.html page continues to describe the old behavior.
Since jj v0.33, “jj undo is now sequential: invoking it multiple times in sequence repeatedly undoes actions in the operation log. Previously, jj undo would only undo the most recent operation in the operation log. As a result, a new jj redo command has been added” (source: https://github.com/jj-vcs/jj/releases/tag/v0.33.0). But the https://jj-tutorial.github.io/tutorial/core-concepts/throwing-away-changes-and-jj-undo.html page continues to describe the old behavior.