ca854ff069
Phase A: add ONE response interceptor on DocmostClient's axios instance, registered AFTER the re-login interceptor, that reformats a failed request's error.message IN PLACE (never a custom Error subclass, so the live axios.isAxiosError / error.response?.status / config._retry checks keep working) into `<METHOD> <path> failed (<status> <statusText>): <serverMessage>`, or the no-response variant. serverMessage is built ONLY from the whitelisted message/error fields or statusText — raw string/HTML bodies, headers and config never appear; an arraybuffer body is size-capped JSON.parsed; the full body goes to stderr only under DEBUG (parity with downloadImage). A _docmostFormatted flag guards against double-processing. Phase B (#436): assertFullUuid throws an actionable error BEFORE any network call at all five commentId sites (resolve/update/delete/get_comment and create_comment's parentCommentId when provided), so a truncated id can no longer loop as an opaque 400/404. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>