Luis Pater
f32c8c9620
fix(handlers): update listener to bind on all interfaces instead of localhost
...
Fixed : #2640
2026-04-10 07:24:34 +08:00
Luis Pater
39dc4557c1
Merge pull request #2412 from sususu98/feat/signature-cache-toggle
...
feat: configurable signature cache toggle for Antigravity/Claude thinking blocks
2026-04-09 21:54:47 +08:00
ZTXBOSS666
30e94b6792
fix(antigravity): refine 429 handling and credits fallback
...
Includes: restore SDK docs under docs/; update antigravity executor credits tests; gofmt.
2026-04-09 21:48:32 +08:00
sususu98
38f0ae5970
docs(antigravity): document signature validation spec alignment
...
Add package-level comment documenting the protobuf tree structure,
base64 encoding equivalence proof, output dimensions, and spec
section references. Remove unreachable legacy_vertex_group dead code.
2026-04-09 21:12:40 +08:00
sususu98
cf249586a9
feat(antigravity): configurable signature cache with bypass-mode validation
...
Antigravity 的 Claude thinking signature 处理新增 cache/bypass 双模式,
并为 bypass 模式实现按 SIGNATURE-CHANNEL-SPEC.md 的签名校验。
新增 antigravity-signature-cache-enabled 配置项(默认 true):
- cache mode(true):使用服务端缓存的签名,行为与原有逻辑完全一致
- bypass mode(false):直接使用客户端提供的签名,经过校验和归一化
支持配置热重载,运行时可切换模式。
校验流程:
1. 剥离历史 cache-mode 的 'modelGroup#' 前缀(如 claude#Exxxx → Exxxx)
2. 首字符必须为 'E'(单层编码)或 'R'(双层编码),否则拒绝
3. R 开头:base64 解码 → 内层必须以 'E' 开头 → 继续单层校验
4. E 开头:base64 解码 → 首字节必须为 0x12(Claude protobuf 标识)
5. 所有合法签名归一化为 R 形式(双层 base64)发往 Antigravity 后端
非法签名处理策略:
- 非严格模式(默认):translator 静默丢弃无签名的 thinking block
- 严格模式(antigravity-signature-bypass-strict: true):
executor 层在请求发往上游前直接返回 HTTP 400
按 SIGNATURE-CHANNEL-SPEC.md 解析 Claude 签名的完整 protobuf 结构:
- Top-level Field 2(容器)→ Field 1(渠道块)
- 渠道块提取:channel_id (Field 1)、infrastructure (Field 2)、
model_text (Field 6)、field7 (Field 7)
- 计算 routing_class、infrastructure_class、schema_features
- 使用 google.golang.org/protobuf/encoding/protowire 解析
- resolveThinkingSignature 拆分为 resolveCacheModeSignature / resolveBypassModeSignature
- hasResolvedThinkingSignature:mode-aware 签名有效性判断
(cache: len>=50 via HasValidSignature,bypass: non-empty)
- validateAntigravityRequestSignatures:executor 预检,
仅在 bypass + strict 模式下拦截非法签名返回 400
- 响应侧签名缓存逻辑与 cache mode 集成
- Cache mode 行为完全保留:无 '#' 前缀的原生签名静默丢弃
2026-04-09 21:12:40 +08:00
Luis Pater
1dba2d0f81
fix(handlers): add base URL validation and improve API key deletion tests
2026-04-09 20:51:54 +08:00
Luis Pater
5e81b65f2f
fix(auth, executor): normalize Qwen base URL, adjust RefreshLead duration, and add tests
2026-04-09 18:07:07 +08:00
Luis Pater
941334da79
fix(auth): handle OAuth model alias in retry logic and refine Qwen quota handling
2026-04-09 03:44:19 +08:00
Luis Pater
d54f816363
fix(executor): update Qwen user agent and enhance header configuration
2026-04-09 01:45:52 +08:00
Luis Pater
12b967118b
Merge pull request #2592 from router-for-me/tests
...
fix(tests): update test cases
2026-04-08 11:57:15 +08:00
hkfires
d390b95b76
fix(tests): update test cases
2026-04-08 08:53:50 +08:00
Luis Pater
d1f6224b70
Merge pull request #2569 from LucasInsight/fix/record-zero-usage
...
fix: record zero usage
2026-04-08 08:13:11 +08:00
Luis Pater
fcc59d606d
fix(translator): add unit tests to validate output_item.done fallback logic for Gemini and Claude
2026-04-08 03:54:15 +08:00
Luis Pater
91e7591955
fix(executor): add transient 429 resource exhausted handling with retry logic
2026-04-08 02:48:53 +08:00
Luis Pater
c8b7e2b8d6
fix(executor): ensure empty stream completions use output_item.done as fallback
...
Fixed : #2583
2026-04-07 18:21:12 +08:00
Luis Pater
cad45ffa33
Merge pull request #2578 from LemonZuo/feat_socks5h
...
feat: support socks5h scheme for proxy settings
2026-04-07 09:57:18 +08:00
Lemon
163d68318f
feat: support socks5h scheme for proxy settings
2026-04-07 07:46:11 +08:00
Michael
8b9dbe10f0
fix: record zero usage
2026-04-06 20:19:42 +08:00
Luis Pater
9f5bdfaa31
Merge pull request #2531 from jamestut/openai-vertex-token-usage-fix
...
Fix missing `response.completed.usage` for late-usage OpenAI-compatible streams
2026-04-06 09:30:49 +08:00
Luis Pater
9eabdd09db
Merge pull request #2522 from aikins01/fix/strip-tool-use-signature
...
fix(amp): strip signature from tool_use blocks before forwarding to Claude
2026-04-06 09:30:14 +08:00
Luis Pater
c3f8dc362e
Merge pull request #2491 from mpfo0106/feature/claude-code-safe-alignment-sentinels
...
test(claude): add compatibility sentinels and centralize builtin fallback handling
2026-04-06 09:27:08 +08:00
Luis Pater
b85120873b
Merge pull request #2332 from RaviTharuma/fix/claude-thinking-signature
...
fix: preserve Claude thinking signatures in Codex translator
2026-04-06 09:25:06 +08:00
Luis Pater
000fcb15fa
Merge pull request #2298 from snoyiatk/feat/add-gitstore-branch
...
feat(gitstore): add support for specifying git branch (via GITSTORE_G…
2026-04-06 09:21:03 +08:00
Luis Pater
c1818f197b
Merge pull request #1940 from Blue-B/fix/claude-interleaved-thinking-amp-gzip-budget
...
fix(claude): enable interleaved-thinking beta, decode AMP error gzip, fix budget 400
2026-04-06 09:08:23 +08:00
Aikins Laryea
b0653cec7b
fix(amp): strip signature from tool_use blocks before forwarding to Claude
...
ensureAmpSignature injects signature:"" into tool_use blocks so the
Amp TUI does not crash on P.signature.length. when Amp sends the
conversation back, Claude rejects the extra field with 400:
tool_use.signature: Extra inputs are not permitted
strip the proxy-injected signature from tool_use blocks in
SanitizeAmpRequestBody before forwarding to the upstream API.
2026-04-05 12:26:24 +00:00
Luis Pater
22a1a24cf5
feat(executor): add tests for preserving key order in cache control functions
...
Added comprehensive tests to ensure key order is maintained when modifying payloads in `normalizeCacheControlTTL` and `enforceCacheControlLimit` functions. Removed unused helper functions and refactored implementations for better readability and efficiency.
2026-04-05 17:58:13 +08:00
Luis Pater
ada8e2905e
feat(api): enhance proxy resolution for API key-based auth
...
Added comprehensive support for resolving proxy URLs from configuration based on API key and provider attributes. Introduced new helper functions and extended the test suite to validate fallback mechanisms and compatibility cases.
2026-04-05 01:56:34 +08:00
Luis Pater
3774b56e9f
feat(misc): add background updater for Antigravity version caching
...
Introduce `StartAntigravityVersionUpdater` to periodically refresh the cached Antigravity version using a non-blocking background process. Updated main server flow to initialize the updater.
2026-04-04 22:09:11 +08:00
Luis Pater
c2d4137fb9
feat(executor): enhance Qwen system message handling with strict injection and merging rules
...
Closes : #2537
2026-04-04 21:51:02 +08:00
rensumo
8d5e470e1f
feat: dynamically fetch antigravity UA version from releases API
...
Fetch the latest version from the antigravity auto-updater releases
endpoint and cache it for 6 hours. Falls back to 1.21.9 if the API
is unreachable or returns unexpected data.
2026-04-04 14:52:59 +08:00
James
65e9e892a4
Fix missing response.completed.usage for late-usage OpenAI-compatible streams
2026-04-04 05:58:04 +00:00
Luis Pater
8430b28cfa
Merge pull request #2526 from rensumo/main
...
feat: 升级反重力 (antigravity) UA 版本为 1.21.9
2026-04-04 11:32:16 +08:00
rensumo
f3ab8f4bc5
chore: update antigravity UA version to 1.21.9
2026-04-04 07:35:08 +08:00
Luis Pater
0e4f189c2e
Merge pull request #1302 from dinhkarate/feat(vertex)/add-prefix-field
...
Feat(vertex): add prefix field
2026-04-04 04:17:12 +08:00
Luis Pater
754b126944
fix(executor): remove commented-out code in QwenExecutor
2026-04-04 02:14:48 +08:00
Luis Pater
ae37ccffbf
Merge pull request #2520 from Arronlong/main
...
fix:qwen invalid_parameter_error
2026-04-04 02:13:09 +08:00
Luis Pater
42c062bb5b
Merge pull request #2509 from adamhelfgott/fix-claude-thinking-temperature
...
Normalize Claude temperature when thinking is enabled
2026-04-03 23:55:50 +08:00
Arronlong
29dba0399b
Comment out system message check in Qwen executor
...
fix qwen invalid_parameter_error
2026-04-03 23:07:33 +08:00
Luis Pater
a824e7cd0b
feat(models): add GPT-5.3, GPT-5.4, and GPT-5.4-mini with enhanced "thinking" levels
2026-04-03 23:05:10 +08:00
Luis Pater
adb580b344
feat(security): add configuration to toggle Gemini CLI endpoint access
...
Closes : #2445
2026-04-03 21:46:49 +08:00
Adam Helfgott
f63cf6ff7a
Normalize Claude temperature for thinking
2026-04-03 03:45:51 -04:00
Luis Pater
d2419ed49d
feat(executor): ensure default system message in QwenExecutor payload
2026-04-03 11:18:48 +08:00
mpfo0106
9b5ce8c64f
Keep Claude builtin helpers aligned with the shared helper layout
...
The review asked for the builtin tool registry helper to live with the rest
of executor support utilities. This moves the registry code into the helps
package, exports the minimal surface executor needs, and keeps behavior tests
with the executor while leaving registry-focused checks with the helper.
Constraint: Requested layout keeps executor helper utilities centralized under internal/runtime/executor/helps
Rejected: Keep the files in executor and reply with rationale | conflicts with requested package organization
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep executor behavior tests near applyClaudeToolPrefix and keep pure registry tests in helps
Tested: go test ./internal/runtime/executor/helps ./internal/runtime/executor -run 'Claude|Builtin|Tool'; go test ./test/...; go test ./...
Not-tested: End-to-end Claude Code direct-connect/session runtime behavior
2026-04-03 00:13:02 +09:00
Duong M. CUONG
058793c73a
feat(gitstore): honor configured branch and follow live remote default
2026-04-02 14:44:44 +00:00
Luis Pater
ab9ebea592
Merge PR #2474
...
# Conflicts:
# internal/api/modules/amp/response_rewriter.go
# internal/api/modules/amp/response_rewriter_test.go
2026-04-02 22:31:12 +08:00
Luis Pater
7ee37ee4b9
feat: add /healthz endpoint and test coverage for health check
...
Closes : #2493
2026-04-02 21:56:27 +08:00
Luis Pater
e3eb048c7a
Merge pull request #2489 from Soein/upstream-pr
...
fix: 增强 Claude 反代检测对抗能力
2026-04-02 21:16:58 +08:00
Luis Pater
a59e92435b
Merge pull request #2490 from router-for-me/logs
...
Refactor websocket logging and error handling
2026-04-02 20:47:31 +08:00
mpfo0106
da3a498a28
Keep Claude Code compatibility work low-risk and reviewable
...
This change stops short of broader Claude Code runtime alignment and instead
hardens two safe edges: builtin tool prefix handling and source-informed
sentinel coverage for future drift checks.
Constraint: Must preserve existing default behavior for current users
Rejected: Implement control-plane/session alignment now | too much runtime risk for a first slice
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Treat the new fixtures as compatibility sentinels, not a full Claude Code schema contract
Tested: go test ./test/...; go test ./sdk/translator/...; go test ./internal/runtime/executor -run 'Claude|Builtin|Tool'; go test ./...
Not-tested: End-to-end Claude Code direct-connect/session runtime behavior
2026-04-02 20:35:39 +09:00
pzy
bb44671845
fix: 修复反代检测对抗的 3 个问题
...
- computeFingerprint 使用 rune 索引替代字节索引,修复多字节字符指纹不匹配
- utls Chrome TLS 指纹仅对 Anthropic 官方域名生效,自定义 base_url 走标准 transport
- IPv6 地址使用 net.JoinHostPort 正确拼接端口
2026-04-02 19:12:55 +08:00