Severity: low | Category: correctness | Phase: P3.10
Problem
_request_with_retry only catches ConnectionError/Timeout; other RequestException types propagate unwrapped, and exhausted retries replace the real exception with a generic message.
Evidence
codeframe/cli/api_client.py:195
Acceptance criteria
Catch RequestException as fallback, wrap in APIError, and raise ... from last_exc.
Dependencies
None
Filed from the SaaS launch-readiness audit. Atomic: one developer, one session. Work order: strictly P0.1 → P3.12 (no forward dependencies).
Severity: low | Category: correctness | Phase: P3.10
Problem
_request_with_retryonly catchesConnectionError/Timeout; otherRequestExceptiontypes propagate unwrapped, and exhausted retries replace the real exception with a generic message.Evidence
codeframe/cli/api_client.py:195Acceptance criteria
Catch
RequestExceptionas fallback, wrap inAPIError, andraise ... from last_exc.Dependencies
None
Filed from the SaaS launch-readiness audit. Atomic: one developer, one session. Work order: strictly P0.1 → P3.12 (no forward dependencies).