docs: update CHANGELOG + lib with all TRAE fixes (Claude guards, guardrail skip)

This commit is contained in:
Roman | RyzenAdvanced
2026-05-26 13:05:19 +04:00
Unverified
parent 8674296063
commit 92ac4e5b87
2 changed files with 16 additions and 15 deletions

View File

@@ -2,25 +2,25 @@
## v3.10.12 (2026-05-26) ## v3.10.12 (2026-05-26)
**Sticky Endpoint, Parallel Discovery, Smart Errors, Anti-Stall** **Sticky Endpoint, Claude Fixes, Guardrail Skip, Anti-Stall**
### New Features ### New Features
- **Sticky endpoint caching**: remembers which endpoint last succeeded, reuses it on every subsequent request (zero probe overhead) - **Sticky endpoint caching**: remembers which endpoint last succeeded, reuses it on every subsequent request (zero overhead)
- **Parallel endpoint discovery**: probes ALL endpoints simultaneously, first 200 wins and is cached - **Sequential fallback**: if sticky endpoint fails (429/502/503), tries next endpoint in order — no parallel probing, no wasted requests
- **Automatic re-probe**: if the sticky endpoint fails (429/502/503), cache is cleared and all endpoints are probed in parallel again - **Endpoint order**: `cloudcode-pa.googleapis.com` first (matches agy CLI), `daily-cloudcode-pa.googleapis.com` as fallback
- **Endpoint order swapped**: `daily-cloudcode-pa` tried first (matches agy-core behavior), `cloudcode-pa` as fallback
- **Anti-stall engine**: kills stale proxy processes and clears `__pycache__` on every new session start - **Anti-stall engine**: kills stale proxy processes and clears `__pycache__` on every new session start
- **Smart error classification**: distinguishes `quota_exhausted` vs `capacity_exhausted` vs `account_banned` vs `validation_required` vs `service_disabled` vs `auth_permanent` - **Smart error classification**: distinguishes `quota_exhausted` vs `capacity_exhausted` vs `account_banned` vs `validation_required` vs `service_disabled` vs `auth_permanent`
- **Rate limit reset time parsing**: extracts cooldown from error body (`quotaResetDelay`, `Resets in ~1h27m`, etc.) for accurate cooldown - **Rate limit reset time parsing**: extracts cooldown from error body (`quotaResetDelay`, `Resets in ~1h27m`, etc.) for accurate cooldown
- **Missing Antigravity headers**: `X-Client-Name`, `X-Client-Version`, `x-goog-api-client`, platform-aware `User-Agent` - **Missing Antigravity headers**: `X-Client-Name`, `X-Client-Version`, `x-goog-api-client`, platform-aware `User-Agent`
- **Session ID**: added `sessionId` to request wrapper for proper session tracking - **Session ID**: added `sessionId` to request wrapper for proper session tracking
### How It Works ### Bug Fixes (TRAE Agent)
1. First request: parallel probe → daily-cloudcode-pa and cloudcode-pa hit simultaneously → first 200 wins, cached - **Guardrail skip for simple messages**: when user sends simple messages (e.g. "hi"), skip injecting `_GEMINI_AGENT_GUARDRAIL` — prevents model from aggressively calling tools and looping `ls -la` 50+ times
2. All subsequent requests: goes straight to cached endpoint (no probing) - **Claude tool preservation**: Claude models through Antigravity now keep ALL tool outputs in normalizer (no summarization/truncation) — prevents context loss that broke Claude sessions
3. If cached endpoint returns 429: cache cleared, parallel re-probe - **Claude compaction guard**: `_adaptive_compact` skipped for Claude models — Claude handles its own context, no forced compaction
4. If cached endpoint returns 400/403: error returned to client immediately - **Claude normalizer guard**: `_antigravity_normalize_context` skipped for Claude models — avoids stripping Claude-specific message structure
5. On startup: anti-stall kills all stale translate-proxy processes, clears pycache - **Claude sanitization guard**: Google content sanitization loop skipped for Claude models — prevents mangling Claude's response format
- **Normalizer model parameter**: `_antigravity_normalize_context` now receives `model` param to distinguish Claude vs Gemini behavior
## v3.10.11 (2026-05-26) ## v3.10.11 (2026-05-26)

View File

@@ -84,14 +84,15 @@ model_catalog_json = ""
CHANGELOG = [ CHANGELOG = [
("3.10.12", "2026-05-26", [ ("3.10.12", "2026-05-26", [
"Sticky endpoint: caches last working endpoint, skips probing on subsequent requests", "Sticky endpoint: caches last working endpoint, sequential fallback on failure",
"Parallel discovery: probes ALL endpoints simultaneously, first 200 wins", "Endpoint order: cloudcode-pa first (matches agy CLI), daily-cloudcode-pa fallback",
"Auto re-probe: if sticky endpoint fails (429/502/503), parallel re-probe all",
"Endpoint order: daily-cloudcode-pa first (matches agy-core), cloudcode-pa fallback",
"Anti-stall engine: kills stale proxy processes + clears pycache on startup", "Anti-stall engine: kills stale proxy processes + clears pycache on startup",
"Smart error classification: quota vs capacity vs banned vs validation vs auth", "Smart error classification: quota vs capacity vs banned vs validation vs auth",
"Rate limit reset parsing: extracts cooldown from error body for accuracy", "Rate limit reset parsing: extracts cooldown from error body for accuracy",
"Missing headers: X-Client-Name, X-Client-Version, x-goog-api-client, sessionId", "Missing headers: X-Client-Name, X-Client-Version, x-goog-api-client, sessionId",
"Guardrail skip: simple messages (hi) skip agent guardrail, no more tool-call loops",
"Claude fixes: preserve all tools, skip compaction/normalizer/sanitization for Claude",
"Normalizer model param: distinguishes Claude vs Gemini for correct behavior",
]), ]),
("3.10.11", "2026-05-26", [ ("3.10.11", "2026-05-26", [
"Hybrid endpoint fallback: cloudcode-pa then daily-cloudcode-pa on 429", "Hybrid endpoint fallback: cloudcode-pa then daily-cloudcode-pa on 429",