2.3.0 (2026-04-13)
- add write mutex to prevent concurrent file corruption (68293bc)
- correct error attribution, add retry loop, fix toSSEStream handling (fab33f2)
- handle non-array responses in convertToOpenAIFormat, add tests (1d3e09c)
- persist account state when error threshold disables an account (279ac37)
- reduce console noise in plugin loader and fetch handler (a6b6747)
- replace deprecated substr, use async access instead of existsSync (6add790)
- resolve TS2783 duplicate key error in addAccount spread (14857b7)
- surface write errors to callers while keeping queue resilient (6d05ce9)
- add --version flag, warn about credentials in shell history (0a62ada)
2.2.0 (2026-03-21)
- browser-based account login, update model list, swap README lang (d0eb82f)
2.1.0 (2026-02-15)
- update tests for named export and async plugin factory (582bada)
- auto-create auth record, update models and streaming (13c5e8a)
2.0.5 (2026-02-15)
- refactor plugin structure to fix OpenCode compatibility (c7578ee)
2.0.4 (2026-02-15)
- initialize AccountManager outside async loader (15864ca)
2.0.3 (2026-02-15)
- change plugin export to synchronous function (f578bf6)
2.0.2 (2026-02-15)
- add exports field to package.json for proper ES module resolution (6835f96)
2.0.1 (2026-02-15)
- correct widgetStreamAssist request/response format (4ce720b)
2.0.0 (2026-02-15)
- implement proper JWT authentication for Gemini Business API (a24999a)
-
- Complete rewrite of authentication flow based on business-gemini-pool
- Now creates JWT tokens from xsrfToken and keyId (HMAC-SHA256)
- Fixed cookie header case sensitivity (__Secure-C_SES, __Host-C_OSES)
- Fixed session creation with correct body format
Changes:
- Add crypto import for HMAC JWT signing
- Implement createJWT() method for proper JWT token generation
- Rename getXSRFToken() to getJWT() to reflect actual purpose
- Update createSession() with correct body structure:
- configId (team_id)
- additionalParams with token placeholder
- createSessionRequest with session name/displayName
- Use Authorization Bearer header instead of X-XSRF-Token
- Fix XSRF endpoint to use GET with ?csesidx parameter
- Handle XSS protection prefix )]}' in responses
Documentation:
- Update README examples with all supported models
- Add comprehensive model-specific usage examples
- Show configuration for gemini-pro, gemini-flash, gemini-2-pro, etc.
- Update both English and Russian documentation
Tested and working with real Gemini Business account! ✅
Based on: https://github.com/ddcat666/business-gemini-pool
Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com
- add package-lock.json and fix CLI module loading (98cca46)
- allow CI to pass with no tests (3948e26)
- configure npm registry in CI workflow (a82d1d7)
- update release workflow to match opencode-hashline pattern (e1ef4fa)
- initial release of opencode-gemini-business plugin (b24c07e)
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.
1.0.0 - 2026-02-15
- Initial release of opencode-gemini-business plugin
- Multi-account management with automatic rotation
- Support for round-robin, least-used, and random rotation strategies
- Automatic JWT token refresh
- Account health monitoring and auto-disable on errors
- CLI commands for account management:
add-account- Add new Gemini Business accountlist-accounts- List all configured accountsremove-account- Remove an accounttest-account- Test account credentials
- OpenCode integration for seamless model usage
- Automatic retry with account failover
- OpenAI-compatible API format
- Comprehensive documentation:
- Configuration guide
- Troubleshooting guide
- API reference
- 🔄 Multi-account rotation with configurable strategies
- 🛡️ Automatic error handling and account failover
- 🔐 JWT token management with auto-refresh
- 📊 Account monitoring (usage tracking, error counting)
- 🚀 OpenAI-compatible API
- 🔧 Flexible configuration options
- 📝 Extensive CLI for account management
- TypeScript implementation
- Node.js 18+ support
- ESM module format
- Vitest for testing
- GitHub Actions CI/CD
Based on:
Integrates: