The fix is one line in app.js: Number('-1') || 20 is -1, and PostgreSQL 1,289 rejects LIMIT -1, so the handler now clamps the limit between 1 and 100. While testing, Sam also rewords the README, which does not belong in the fix. A pathspec stashes just that file:
# Edit app.js and test/api.test.js: clamp ?limit= to 1-100
# Edit README.md: reword the introduction
git stash push -m "README wording" README.md
git commit -qam "Clamp ?limit= to 1-100 instead of failing with a 500"
git stash list
git stash show --include-untracked --stat stash@{1}Output
Saved working directory and index state On main: README wording
stash@{0}: On main: README wording
stash@{1}: On main: Migration runner, half done
db/index.js | 16 +++++++++++++---
db/migrations/001-create-books.sql | 12 ++++++++++++
2 files changed, 25 insertions(+), 3 deletions(-)Each new stash pushes the others down, so the runner is now stash@{1}. git stash show prints a stash's diffstat (-p for the full diff); --include-untracked (Git 2.32 1,932 ) adds the untracked files that plain show leaves out. Stashes are local: they are never pushed, and nothing reminds you of them, so a long stash list is unfinished work that is easy to forget. Anything that lives longer than an hour deserves a branch.