Commit Graph

270 Commits

Author SHA1 Message Date
tctinh
fc4938ea28 docs: clarify keep_thinking instability warning 2026-01-17 03:57:42 +07:00
Noe
8b730cd570 fix: update issue templates to prompt for descriptive titles 2026-01-16 10:55:08 +00:00
Noe
6bef4895d3 feat: add new issue templates for bug reports and feature requests 2026-01-16 10:51:34 +00:00
Tinh To
83ea312d91 Merge pull request #165 from FrescoFlacko/gemini-project-id-doc-update
docs: adding documentation for Gemini CLI model issues.
2026-01-11 09:51:07 +07:00
FrescoFlacko
a79d44a395 refactor: simplifying sentence structure 2026-01-10 21:49:17 -05:00
FrescoFlacko
2afcbe1568 Merge branch 'main' into gemini-project-id-doc-update 2026-01-10 21:43:58 -05:00
Tinh To
2ece851273 Merge pull request #159 from chindris-mihai-alexandru/docs/safari-oauth-troubleshooting
docs: Add Safari/browser OAuth troubleshooting section
2026-01-11 09:39:35 +07:00
FrescoFlacko
402af3a8e3 docs: adding documentation for Gemini CLI model issues. 2026-01-10 21:30:07 -05:00
Chindriș Mihai Alexandru
094fca33ac docs: Make browser OAuth troubleshooting sections collapsible
Addresses review feedback from tctinh to make the troubleshooting
subsections expandable/collapsible for better readability.
2026-01-11 00:00:40 +02:00
Chindriș Mihai Alexandru
f3d4205688 docs: Address review feedback - add Windows commands and port hints
- Add Windows PowerShell/Command Prompt equivalents for port discovery
- Add hint about trying common ports (8080, 3000, 5000)
- Add alternative lsof command to list all listening processes

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-10 01:58:48 +02:00
Chindriș Mihai Alexandru
693a2bc429 docs: Add Safari/browser OAuth troubleshooting section
Add documentation for browser-specific OAuth callback issues:
- Safari HTTPS-Only Mode blocking localhost callbacks
- Port conflict resolution steps
- WSL2/SSH port forwarding guidance
- References issue #119 for manual auth feature
2026-01-10 01:51:25 +02:00
Tinh To
0ffebea5e8 Merge pull request #155 from NoeFabris/fix/progressive-rate-limit-retry
docs: improve config documentation and sync schema
2026-01-09 14:05:13 +07:00
tctinh
462b429736 docs: add missing config options and improve documentation
- Add switch_on_first_rate_limit and pid_offset_enabled to JSON schema
- Document keep_thinking with experimental warning (fixes #150)
- Expand quota_fallback description explaining Gemini dual quota pools (fixes #151)
- Add Signature Cache section documenting cache settings
2026-01-09 14:00:06 +07:00
tctinh
3445cdaa88 feat: progressive rate limit retry with switch_on_first_rate_limit config
- Replace SHORT_RETRY_THRESHOLD_MS with progressive retry logic
- First 429: wait 1s, then switch account (if switch_on_first_rate_limit=true)
- Second 429: wait 5s, then switch (if switch_on_first_rate_limit=false)
- Single account: exponential backoff (1s, 2s, 4s... max 60s)
- Add switch_on_first_rate_limit config option (default: true)
- Update README with new config documentation

Fixes NoeFabris/opencode-antigravity-auth#147
2026-01-08 22:36:13 +07:00
Tinh To
cb0e62b709 Merge pull request #145 from NoeFabris/feature/bypass-antigravity-check
test: simplify antigravity system instruction and ignore antigravity prompt as well
v1.2.9-beta.0
2026-01-08 17:57:56 +07:00
tctinh
e2a365e134 test: simplify antigravity system instruction for testing 2026-01-08 17:56:03 +07:00
Tinh To
511afdb8b1 Bump version to 1.2.9-beta.0 2026-01-08 13:12:25 +07:00
Tinh To
e1945eefc1 Merge pull request #142 from NoeFabris/main
Sync with main
2026-01-08 13:11:58 +07:00
Tinh To
15ab63ffb6 Merge pull request #141 from NoeFabris/fix-gemini-model-and-deduplicate-thinking-block
fix: Gemini 3 model resolution and Claude thinking deduplication
v1.2.8
2026-01-08 13:03:20 +07:00
tctinh
b228aa7337 fix: incorporate Gemini 3 model check for displayed thinking hashes in response transformation 2026-01-08 13:00:45 +07:00
tctinh
7ecc57c32d fix: update Gemini 3 model resolution logic and deduplicate thinking block handling 2026-01-08 12:52:28 +07:00
tctinh
a3791965b7 chore: bump version to 1.2.8 for release 2026-01-08 12:37:24 +07:00
Tinh To
b37bb538ff Bump version to 1.2.8-beta.4 v1.2.8-beta.4 2026-01-08 12:35:17 +07:00
Tinh To
97d0f9953d Merge pull request #137 from happycastle114/fix/antigravity-v6.6.89-compat
feat: add CLIProxyAPI v6.6.89 Antigravity compatibility to fix antigravity usage
2026-01-08 12:30:50 +07:00
Soungmin Son (Eddy)
972c877a44 Merge branch 'dev' into fix/antigravity-v6.6.89-compat 2026-01-08 14:26:22 +09:00
Soungmin Son (Eddy)
1566fbe6e7 Update src/constants.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-08 12:41:24 +09:00
happycastle
3e3371b91f fix: address coderabbit review comments
- Fix 'Javascript' → 'JavaScript' capitalization
- Fix duplicate numbering (4, 4) → (4, 5) in Design Aesthetics
- Remove trailing commas from section headers and list items
- Normalize indentation (tabs → spaces)
2026-01-08 03:38:45 +00:00
happycastle
f2215b9841 feat: add CLIProxyAPI v6.6.89 Antigravity compatibility
Port Antigravity payload enhancements from CLIProxyAPI v6.6.89:
- Add systemInstruction with role 'user' and Antigravity identity text
- Add requestType: 'agent' to wrapped request body
- Add ANTIGRAVITY_SYSTEM_INSTRUCTION constant with full identity/guidelines

Reference: router-for-me/CLIProxyAPI@67985d8
2026-01-08 03:09:12 +00:00
github-actions[bot]
d0c549baf4 chore: bump version to 1.2.8-beta.3 [skip ci] v1.2.8-beta.3 2026-01-06 20:16:48 +00:00
Tinh To
7a0e2cc7a1 Merge pull request #133 from NoeFabris/fix/thinking-signature-and-tool-schema-issues
fix: Gemini 3 tool schema format and restore thinking deduplication
2026-01-07 03:16:21 +07:00
tctinh
d39d1f5c90 fix: Gemini 3 tool schema format and restore thinking deduplication
- Wrap tools in functionDeclarations format for Gemini 3 API
- Flatten incoming functionDeclarations and convert parameters to proper schema
- Re-implement session-level thinking deduplication after partial revert
- Update README model names for clarity (Antigravity vs Gemini CLI)
- Fix model resolver to append default tier for Antigravity Gemini 3 models
2026-01-07 03:09:40 +07:00
tctinh
5fadf67a63 Merge remote-tracking branch 'origin/dev' into fix/thinking-signature-and-tool-schema-issues 2026-01-07 02:14:45 +07:00
tctinh
23a19dde3a fix: revert cross-request thinking deduplication (breaks streaming)
The cross-request deduplication was hashing PARTIAL streaming chunks,
not complete thinking blocks. This caused 'Failed to process error
response' errors during streaming.

Within-request deduplication (delta extraction) still works correctly.
2026-01-07 02:13:51 +07:00
Tinh To
b3cec1147a Merge pull request #131 from CasualDeveloper/fix/130-gemini3-missing-thinking-level
fix: ensure Gemini 3 models always have thinkingLevel set #130
2026-01-07 02:03:06 +07:00
CasualDeveloper
f78ddf23af fix: merge dev, align defaults with Google/Anthropic docs, simplify variants
Merge conflict resolution and defaults per official API docs.

**Gemini 3** (https://cloud.google.com/vertex-ai/generative-ai/docs/thinking):
> HIGH: Allows the model to use more tokens for thinking... This is the
> default level for Gemini 3 Pro and Gemini 3 Flash.

- Default thinkingLevel: 'high' for both Pro and Flash
- Model-specific levels: Flash (minimal/low/medium/high), Pro (low/high only)

**Claude** (https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking):
> To turn on extended thinking, add a thinking object... and the
> budget_tokens to a specified token budget.

- budget_tokens is required when enabling extended thinking (no default)
- Default thinkingBudget: 32768 (max) for Claude thinking models without variant

**Additional changes per maintainer feedback:**
- Simplify Claude variants to 'low' and 'max' only (medium/high not much different)
- Update all README examples and config snippets
2026-01-07 02:59:28 +08:00
CasualDeveloper
f05bd6b45e fix: add minimal level and set Pro default to high per Google docs
- Add 'minimal' to GEMINI_3_THINKING_LEVELS constant
- Change Pro default from 'medium' to 'high' (per Google API docs)
- Document model-specific level availability:
  - Flash: minimal, low, medium, high
  - Pro: low, high only
- Update README variant examples with correct levels per model

Addresses CodeRabbit review feedback on #131
2026-01-07 00:53:32 +08:00
Tinh To
b9a31312e1 Merge pull request #129 from NoeFabris/fix/thinking-signature-and-tool-schema-issues
fix: deduplicate thinking blocks in streaming output (#120)
2026-01-06 23:13:04 +07:00
Tinh To
b45a8d831f Merge pull request #124 from NoeFabris/feature/pid-offset-config
feat: add pid_offset_enabled config option
2026-01-06 23:12:53 +07:00
tctinh
c5b5004948 fix: thinking level assignment and cross-request duplication
Fixes #109 and #115:

1. Thinking Level Assignment (model-resolver.ts):
   - Fixed antigravity-gemini-3-flash returning invalid "minimal" level
   - Fixed antigravity-gemini-3-pro-low skipping default thinkingLevel
   - Fixed -preview models not receiving any thinkingLevel
   - Changed invalid "minimal" to "low" for flash models
   - Added explicit handling for flash-preview and pro-preview models

2. Cross-Request Thinking Deduplication (streaming):
   - Added session-level hash tracking to prevent duplicate thinking across requests
   - Added displayedThinkingHashes option to StreamingOptions
   - Modified deduplicateThinkingText to track and skip already-displayed thinking
   - Persists hashes across all requests in same session

All 553 tests passing.
2026-01-06 23:05:20 +07:00
CasualDeveloper
6cab735ef1 feat: complete Gemini 3 variant config overhaul
Fixes #130

## Changes

### Model resolver (already in PR)
- Default thinkingLevel for base Gemini 3 models: Pro → 'medium', Flash → 'minimal'

### Native thinkingLevel support
- extractVariantThinkingConfig now extracts thinkingLevel string for Gemini 3
- Prefer native thinkingLevel when present
- Fall back to budget→level conversion with deprecation warning

### Correct variant config format (README)
- Remove providerOptions.google wrapper from all examples
- Gemini 3: use thinkingLevel string
- Claude: use thinkingConfig.thinkingBudget number

### Code cleanup
- Remove dead Anthropic/OpenRouter checks (all Antigravity routes through Google)
- Add deprecation warning for legacy thinkingBudget on Gemini 3

## Backward Compatibility
- Legacy thinkingBudget for Gemini 3 still works (deprecated)
- Tier-suffixed model names still work
2026-01-06 23:46:28 +08:00
CasualDeveloper
8499629a96 fix: ensure Gemini 3 models always have thinkingLevel set
Fixes #130

The skipAlias logic for Antigravity Gemini 3 models was bypassing
thinkingLevel assignment, causing empty responses from the API.

Changes:
- Remove skipAlias branch that skipped thinkingLevel
- All Gemini 3 models now get a default thinkingLevel:
  - Pro models: 'medium'
  - Flash models: 'minimal'
- Models with explicit tier suffix use the specified tier
2026-01-06 21:57:23 +08:00
tctinh
79cfd9aad1 fix: thinking signature, tool schema, and streaming issues
Comprehensive fixes for thinking block and tool schema validation:

1. Skip thought signature validator sentinel (Tasks 01-03)
   - Use Google's sentinel value for invalid/missing signatures
   - Harden cleanupRequiredFields() to filter to existing properties
   - Add ensureArrayItems() for array schema validation

2. Placeholder parameter validation (#112) (Task 04)
   - Inject _placeholder schema for tools without parameters

3. Tool pairing errors (Task 05)
   - Rewrite fixClaudeToolPairing() to properly match tool_use/tool_result

4. Edit tool JSON serialization (Task 06)
   - Add SKIP_PARSE_KEYS to preserve oldString/newString/content as strings

5. Empty thinking block handling (Task 07)
   - Return null for empty/invalid thinking blocks instead of empty string

6. Duplicated thinking blocks (#120) (Task 08)
   - Add delta-tracking to streaming transformer to deduplicate

Tests: 546 passing (up from ~500)
Fixes #112, #120
2026-01-06 20:16:04 +07:00
tctinh
7f6afa6338 fix: deduplicate thinking blocks in streaming output (#120)
Added delta-tracking to streaming transformer to extract only new portions
of thinking text, preventing duplicated blocks in UI.

- Added deduplicateThinkingText() function
- Added sentThinkingBuffer parameter to transformSseLine()
- Added 6 unit tests for deduplication logic
2026-01-06 20:05:14 +07:00
tctinh
815068ff05 feat: add pid_offset_enabled config option (disabled by default)
- Add pid_offset_enabled config option (default: false)
- Add env var override OPENCODE_ANTIGRAVITY_PID_OFFSET_ENABLED
- Make PID-based account offset opt-in instead of always-on
- Update README with documentation

Fixes #122
2026-01-06 09:45:46 +07:00
tctinh
f100680c10 feat: mock proper-lockfile and enhance fs mocks in tests v1.2.8-beta.2 2026-01-06 00:34:48 +07:00
github-actions[bot]
295aa1aa6f chore: bump version to 1.2.8-beta.2 [skip ci] 2026-01-05 17:29:09 +00:00
Tinh To
dd15805376 Merge pull request #118 from NoeFabris/feature/smart-account-routing
feat: Smart Account Routing, Multi-Session Safety & Model Variants
2026-01-06 00:28:45 +07:00
tctinh
9cbc1b3043 chore: update version to 1.2.8-beta.2 in package.json 2026-01-06 00:28:22 +07:00
tctinh
9eb09b5379 feat: implement variant thinking configuration extraction and model resolution 2026-01-06 00:21:15 +07:00
tctinh
c3d694b0d0 feat: add extractVariantThinkingConfig for provider-specific thinking config
- Supports Google, Anthropic, and OpenRouter thinking config formats
- Maps OpenRouter effort levels to token budgets
2026-01-05 23:26:40 +07:00