Show a cached update notice in interactive CLI commands

OX
2d ago
+250-16

auth and info now show an update notice in interactive terminals. Successful PyPI checks are cached for a week; non-interactive runs skip the check, and a failed lookup doesn't stop the command.

385 CLI/client/transport tests passed. Also tried real terminal sessions from source and a clean SDK wheel: the notice appears, --non-interactive stays quiet, and a failed connection still lets info finish. Wheel/sdist build and the normal Ruff/format/pyright checks passed too.

Fixes #977.