- 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 critical OpenCode plugin: read private key from file instead of embedding in JS
- Add default KID (agent_id + '-key-1') matching Node and Go SDKs
- Fix Operation.subject and Operation.action types from str to Dict[str, Any]
- Fix retry off-by-one to give max_retries+1 total attempts
- Fix OpenCode operation_type from 'tool_use' to 'ai.tool_use'
- Update plugin path to .config/opencode/plugins matching Node SDK
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>