All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Handle Puter API responses that return HTTP 200 with
{ success: false, error: ... }by surfacing a proper error - Treat HTTP 402 /
insufficient_fundsas a billing error with a clear hint - Stop fallback retries for billing/auth errors (401/402) since fallback cannot succeed without credits
- Clarify
usage-limited-chat/insufficient_fundserrors and fallback behavior in README
1.0.2 - 2026-01-15
- Retry logic with exponential backoff for transient API failures
- Automatically retries on rate limits (429), server errors (500-504), and network issues
- Configurable via
max_retriesandretry_delay_msin config - Exponential backoff with jitter to prevent thundering herd
- New
src/retry.tsutility module withwithRetry,calculateDelay,isRetryableError
- GitHub Issue Templates for better contributor experience
- Bug report template with structured form fields
- Feature request template with categories and priority
- Template chooser with links to Discussions and docs
- Pull Request Template with checklist and guidelines
- GitHub Discussions enabled for community support
- CI Status Badge in README
- README now uses stable version (removed
@betafrom installation instructions) - Improved JSDoc documentation for
PuterClientmethods - Total test count: 39 → 57 tests (18 new retry tests)
- Added
RetryOptionsinterface for configuring retry behavior - Added
RetryErrorclass for retry-specific error handling - Client methods now use
withRetrywrapper for automatic retries
1.0.1 - 2026-01-15
- Critical: Fixed plugin load error "Cannot call a class constructor without new"
- OpenCode's plugin loader iterates all exports and calls them as functions
- Removed
PuterClientandPuterAuthManagerclass exports from index.ts - Now only exports the
PuterAuthPluginfunction (matching antigravity plugin pattern) - Classes are still usable internally but not exposed via package exports
- Removed default export from plugin.ts (only named export
PuterAuthPluginnow)
1.0.0 - 2026-01-15
This marks the first stable release of opencode-puter-auth, providing FREE, UNLIMITED access to Claude Opus 4.5, Sonnet 4.5, GPT-5, Gemini, and 500+ AI models through Puter.com.
- Integration tests with MSW (Mock Service Worker) for API mocking
- 15 new integration tests covering chat, streaming, errors, and model listing
- Now 39 total tests (24 unit + 15 integration)
- Error handling examples (
examples/error-handling.ts)- Exponential backoff retry logic
- Streaming error recovery with fallback
- Model fallback chain
- Token expiry handling
- Promoted from beta to stable release
- Total test count: 24 → 39 tests
- Added MSW ^2.12.7 as dev dependency for API mocking
1.0.0-beta.5 - 2026-01-15
- Upgraded all vitest packages to v4.x for peer dependency compatibility
- Fixed contributor avatar URL in README (use numeric GitHub user ID)
- Updated devDependencies: vitest ^4.0.0, @vitest/ui ^4.0.0, @vitest/coverage-v8 ^4.0.0
1.0.0-beta.4 - 2026-01-14
- Example usage scripts in
examples/directory - Exported additional types:
PuterChatMessage,PuterChatStreamChunk,PuterModelInfo - CHANGELOG.md following Keep a Changelog format
- Repository transferred to
Mihai-Codesorganization - Updated all GitHub URLs to new organization
- Updated npm Trusted Publisher for new organization
1.0.0-beta.3 - 2026-01-14
- Updated dependencies: open 10.2.0 → 11.0.0, @vitest/ui 3.2.4 → 4.0.17
1.0.0-beta.2 - 2025-01-14
- Contributing guidelines (
CONTRIBUTING.md) - CLA (Contributor License Agreement) workflow
- All Contributors bot configuration
- GitHub Sponsors/Ko-fi funding configuration
- Updated dependencies (zod 4.3.5, @types/node 25.0.8)
- Handle prerelease versions in npm publish workflow
1.0.0-beta.1 - 2025-01-13
- Initial release of opencode-puter-auth plugin
- OAuth authentication via Puter.com popup flow
- Support for 500+ AI models through Puter's "User-Pays" model:
- Claude Opus 4.5, Sonnet 4.5, Haiku
- GPT-5, GPT-5 Nano
- Gemini models
- And many more via OpenRouter
- Streaming and non-streaming chat completions
- TypeScript types with Zod validation
- Custom OpenCode tools:
puter_login- Authenticate with Puterputer_models- List available modelsputer_account- View account info
- Secure token storage in
~/.config/opencode/puter-accounts.json - 24 comprehensive unit tests
- Full CI/CD with GitHub Actions
- npm Trusted Publishing (OIDC - no tokens needed!)
- OAuth tokens stored locally, never transmitted to third parties
- Uses HTTPS for all API communications
0.0.0 - 2025-01-12
- Initial project setup
- Basic project structure