Previously every SlackApiError from the v2 probe was logged as "missing
channels:read", which mislabels invalid_auth/ratelimited/server errors as a
permission problem and sends operators chasing the wrong fix. Inspect the
SlackApiError response code and only emit the deprecation + scope-specific
guidance for the genuine scope-missing codes; for other Slack API errors,
log a generic "probe failed" line. Either branch still falls back to v1 so
the send isn't lost, matching the prior contract.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>