- Updated Gemini CLI headers to match expected formats and behaviors
- Removed Linux support and adjusted fingerprint generation accordingly
- Cleaned up unused functions and constants
- Enhanced tests to validate new header behaviors
- Enhanced issue template configuration with troubleshooting and existing issues links.
- Removed old feature request markdown and replaced it with a new YAML template for better structure.
- Updated README to include a comprehensive troubleshooting section and clarified configuration paths.
- Added detailed troubleshooting steps for common issues, including rate limits and OAuth callback problems.
- Incremented version to 1.2.9-beta.10 in package.json.
Refactors how Claude thinking blocks are handled to improve reliability and address signature validation issues.
- Removes the deprecated `KEEP_THINKING_BLOCKS` constant and associated environment variable.
- Introduces runtime configuration for `keep_thinking` to control whether thinking blocks are preserved.
- Implements logic to inject a sentinel value (`SKIP_THOUGHT_SIGNATURE`) when a thinking block's signature is invalid or missing, allowing the API to bypass validation. This addresses scenarios like cache misses, session mismatches, and plugin restarts.
This change enhances the robustness of Claude integrations by providing a mechanism to handle signature issues gracefully.
- Created CONFIGURATION.md for detailed configuration options and examples.
- Added MODEL-VARIANTS.md to explain the variant system and its usage.
- Introduced MULTI-ACCOUNT.md to guide users on setting up and managing multiple accounts.
- Developed TROUBLESHOOTING.md to address common issues and provide solutions.
- Deleted the RATE_LIMIT_ROUTING_ANALYSIS.md document as it is no longer needed.
- Enhanced the regression test to provide detailed failure information, including the first failure's stderr output.
- Updated the plugin to handle 400 errors ("Prompt too long") with a synthetic response instead of returning a session-locking error.
- Introduced createSyntheticErrorResponse function to generate a synthetic SSE response for error messages, allowing continued session usage.
- Added tests for createSyntheticErrorResponse to ensure correct behavior and structure of the synthetic SSE events.
- Add 2s deduplication window to prevent rate limit counter inflation from concurrent 429s
- Separate cooldown system from rate limits for non-429 errors (auth failures, 5xx)
- Add quota_fallback config option for automatic quota switching on rate limit
- Add toast notification for 400 'Prompt is too long' errors guiding users to /compact
- Add 5 new cooldown unit tests
- Enhance regression test suite with concurrent test infrastructure
- Add comprehensive rate limit analysis documentation
- Added recovery functionality for tool_result_missing, thinking_block_order, and thinking_disabled_violation errors.
- Introduced constants and types for session recovery.
- Created storage utilities for reading and writing session data.
- Enhanced debug logging capabilities in debug.ts.
- Refactored debug state management for better initialization and access.