Everything still works at 88 percent, which is exactly the problem. There is enough room for the package manager to start and not always enough for it to finish, and a failed upgrade halfway through is far more annoying than a refusal at the start.
What I do now before any install on a small box:
df -h /
du -xh --max-depth=1 / 2>/dev/null | sort -h | tail
Journals are usually the easy win. Capping them is one line, and it is persistent, which a one-off vacuum is not.