The API answers GET /v1/health/deep with 503 and a full report when a
dependency is down. _handle_response raised for every status at or above
400, so deep_health() raised exactly when callers need the dependency
details. Both the sync and async clients now accept 503 for this endpoint.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
_client_common.py owns request building and EOR signing for both clients; types follow the Backend contract; the deprecated issue_token alias and token response aliases are removed; crypto, utils, and CLI comments trimmed.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
- Add DeprecationWarning to login() and register() static methods
- Update docstrings with .. deprecated:: notices
- Sync types with backend changes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove previous_token_grace_until from RotateApiTokenResponse
- Update client/async_client docstrings
- Update CLI help text and README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Mirror client.py retry fix in async_client.py (range + boundary alignment)
- Sync _kid default to agent_id + '-key-1' in async client
- Fix TOCTOU in opencode.py uninstall (try/except vs exists+remove)
- Update docstring to reflect new plugin path and filename
- Remove redundant deferred json import in _js_str
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix AsyncElydoraClient _prev_chain_hash from empty string to GENESIS_CHAIN_HASH
- Add list_agents, unfreeze_agent, delete_agent, get_me, issue_token, download_export, health
- Add methods to both sync and async clients
- Add corresponding response types to types.py
- Export new types from __init__.py
- Document all previously undocumented exports in README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>