Skip to content

v7.1.74-patch

Choose a tag to compare

@github-actions github-actions released this 13 Jun 06:22
· 1394 commits to main since this release

Linux release assets

  • CLIProxyAPI_<version>_linux_<arch>.tar.gz is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.
  • CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gz is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.

FreeBSD release assets

  • CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gz is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.

Changelog

  • feat(vertex): Add Prefix field to VertexCredentialStorage for per-file model namespacing (fdeef48)
  • feat(vertex): add --vertex-import-prefix flag for model namespacing (14cb2b9)
  • fix(claude): add interleaved-thinking beta header, AMP gzip error decoding, normalizeClaudeBudget max_tokens (07d6689)
  • fix(claude): clamp max_tokens to model limit in normalizeClaudeBudget (5f58248)
  • Reconcile registry model states on auth changes (e166e56)
  • fix(auth): tighten registry model reconciliation (f09ed25)
  • chore(auth): drop reconcile test file from pr (e08f68e)
  • Merge branch 'router-for-me:main' into feat(vertex)/add-prefix-field (a337ecf)
  • fix(vertex): include prefix in auth filename and validate at import (36efcc6)
  • fix: preserve Claude thinking signatures in Codex translator (a34dfed)
  • fix: finalize pending thinking block before next summary part (76b53d6)
  • fix: retain previously captured thinking signature on new summary part (c31ae2f)
  • fix: omit empty signature field from thinking blocks (73b22ec)
  • fix: clear stale thinking signature when no block is open (66eb122)
  • fix: retain codex thinking signature until item done (5fc2bd3)
  • fix: preserve SSE event boundaries for Responses streams (134a9ea)
  • fix: address responses SSE review feedback (c03883c)
  • fix: tighten responses SSE review follow-up (0fcc02f)
  • fix: simplify responses SSE suffix handling (f73d55d)
  • fix(gemini-cli): use backend project ID from onboarding response (fccfb16)
  • feat(amp): sanitize signatures and handle stream suppression for Amp compatibility (04ba8c8)
  • fix(amp): address PR review - stream thinking suppression, SSE detection, test init (b15453c)
  • Merge pull request router-for-me#2403 from CharTyr/clean-pr (d267522)
  • fix(antigravity): reorder model parts to prevent tool_use↔tool_result pairing breakage (25feceb)
  • Merge pull request router-for-me#2409 from sususu98/fix/tool-use-pairing-break (486cd4c)
  • refactor(gemini-cli): simplify redundant if/else in project ID assignment (91387ca)
  • fix(amp): don't suppress thinking blocks in streaming mode (279cbbb)
  • fix(auth): skip downtime for request-scoped 404 errors in model state management (17363ed)
  • fix(codex): add default instructions for /responses/compact (d11936f)
  • fix(openai): handle transcript replacement after websocket compaction (c1d7599)
  • fix(codex): normalize null instructions for compact requests (d3b94c9)
  • fix(openai): avoid developer transcript resets (a3e21df)
  • feat(antigravity): add AI credits quota fallback (88dd9c7)
  • fix(antigravity): preserve fallback and honor config gate (a0bf33e)
  • Fixed: router-for-me#2420 (c10f8ae)
  • Merge pull request router-for-me#2417 from CharTyr/fix/amp-streaming-thinking-regression (7c3c2e9)
  • fix(codex): normalize null instructions for responses requests (bd855ab)
  • fix(codex): normalize null instructions across responses paths (39b9a38)
  • Merge pull request router-for-me#2426 from xixiwenxuanhe/feature/antigravity-credits (1623194)
  • Merge pull request router-for-me#2424 from possible055/fix/websocket-transcript-replacement (b09b03e)
  • Merge pull request router-for-me#2434 from MonsterQiu/fix/codex-responses-null-instructions (bc3a6e4)
  • Merge pull request router-for-me#2422 from MonsterQiu/fix/codex-compact-instructions (faae9c2)
  • fix(codex): use normalizeCodexInstructions to set default instructions (51fd58d)
  • fix(auth): resolve oauth aliases before suspension checks (07b7c1a)
  • refactor(auth): dedupe route-aware model support checks (f611dd6)
  • fix(codex): set finish_reason to tool_calls in non-streaming response when tool calls are present (ec77f4a)
  • fix(qwen): update CLI simulation to v0.13.2 (1b44364)
  • Merge pull request router-for-me#2452 from Lucaszmv/fix-qwen-cli-v0.13.2 (1c7003f)
  • refactor(runtime): move executor utilities to helps package and update references (d2c7e4e)
  • Merge branch 'dev' of github.com:router-for-me/CLIProxyAPI into dev (b468ca7)
  • fix(codex): conditionally set Session_id header for Mac OS user agents and clean up redundant logic (330e12d)
  • refactor(runtime, openai): simplify header management and remove redundant websocket logging logic (ca11b23)
  • fix(codex): prioritize websocket-enabled credentials across priority tiers in scheduler logic (1734aa1)
  • fix(codex): centralize session management with global store and add tests for executor session lifecycle (105a215)
  • fix(openai): add websocket tool call repair with caching and tests to improve transcript consistency (d1c07a0)
  • fix(openai): add session reference counter and cache lifecycle management for websocket tools (acf98ed)
  • refactor(openai): remove websocket body log truncation limit (51a4379)
  • fix(openai): improve client IP retrieval in websocket handler (caa529c)
  • Merge pull request router-for-me#2468 from router-for-me/ip (66cd50f)
  • Merge pull request router-for-me#2398 from 7RPH/fix/responses-sse-framing (c422d16)
  • feat: add opt-in experimental Claude cch signing (3724933)
  • fix: preserve cloak config defaults when mode omitted (15c2f27)
  • fix(gemini): clean tool schemas and eager_input_streaming (e34b2b4)
  • test(amp): update tests to expect thinking blocks to pass through during streaming (ff7dbb5)
  • test(amp): update tests to expect thinking blocks to pass through during streaming (f5e9f01)
  • Merge pull request router-for-me#2444 from 0oAstro/fix/codex-nonstream-finish-reason-tool-calls (b05f575)
  • Merge pull request router-for-me#2441 from MonsterQiu/issue-2421-alias-before-suspension (e783d0a)
  • feat(tui): show time in usage details (8435c3d)
  • Merge pull request router-for-me#2476 from router-for-me/cherry-pick/pr-2438-to-dev (474fb04)
  • Merge commit '15c2f274ea690c9a7c9db22f9f454af869db5375' into dev (d09dd4d)
  • fix: scope experimental cch signing to billing header (25d1c18)
  • fix: 增强 Claude 反代检测对抗能力 (4045378)
  • Refactor websocket logging and error handling (34339f6)
  • refactor(logging): centralize websocket handshake recording (4f8acec)
  • fix: Claude API 请求使用 utls Chrome TLS 指纹 (249f969)
  • feat(auth): add support for managing custom headers in auth files (09e4800)
  • fix: 修复反代检测对抗的 3 个问题 (bb44671)
  • Keep Claude Code compatibility work low-risk and reviewable (da3a498)
  • Prevent malformed Responses SSE frames from breaking stream clients (abc293c)
  • Harden Responses SSE framing against partial chunk boundaries (108895f)
  • Merge pull request router-for-me#2490 from router-for-me/logs (a59e924)
  • Merge pull request router-for-me#2489 from Soein/upstream-pr (e3eb048)
  • Merge pull request router-for-me#2454 from buddingnewinsights/add-proxypal-to-readme (7170eee)
  • Merge pull request router-for-me#2492 from davidwushi1145/main (fcba912)
  • Merge branch 'main' into dev (3e78a8d)
  • feat: add /healthz endpoint and test coverage for health check (7ee37ee)
  • Merge PR router-for-me#2474 (ab9ebea)
  • feat(gitstore): honor configured branch and follow live remote default (058793c)
  • Keep Claude builtin helpers aligned with the shared helper layout (9b5ce8c)
  • feat(executor): ensure default system message in QwenExecutor payload (d2419ed)
  • Normalize Claude temperature for thinking (f63cf6f)
  • fix: repair websocket custom tool calls (8f0e66b)
  • fix: repair websocket custom tool calls (b6c6379)
  • fix: repair websocket custom tool calls (d1fd2c4)
  • fix(security): enforce stricter localhost validation for GeminiCLIAPIHandler (06405f2)
  • feat(security): add configuration to toggle Gemini CLI endpoint access (adb580b)
  • feat(models): add GPT-5.3, GPT-5.4, and GPT-5.4-mini with enhanced "thinking" levels (a824e7c)
  • Comment out system message check in Qwen executor (29dba03)
  • Merge pull request router-for-me#2513 from lonr-6/codex/fix-ws-custom-tool-repair-v2 (f389667)
  • Merge pull request router-for-me#2509 from adamhelfgott/fix-claude-thinking-temperature (42c062b)
  • Merge pull request router-for-me#2520 from Arronlong/main (ae37ccf)
  • fix(executor): remove commented-out code in QwenExecutor (754b126)
  • Merge pull request router-for-me#1302 from dinhkarate/feat(vertex)/add-prefix-field (0e4f189)
  • chore: update antigravity UA version to 1.21.9 (f3ab8f4)
  • Merge pull request router-for-me#2526 from rensumo/main (8430b28)
  • Fix missing response.completed.usage for late-usage OpenAI-compatible streams (65e9e89)
  • feat: dynamically fetch antigravity UA version from releases API (8d5e470)
  • Merge pull request router-for-me#2535 from rensumo/main (2ee938a)
  • feat(executor): enhance Qwen system message handling with strict injection and merging rules (c2d4137)
  • feat(misc): add background updater for Antigravity version caching (3774b56)
  • feat(docs): add Poixe AI sponsorship details to README files (4ba1053)
  • feat(api): enhance proxy resolution for API key-based auth (ada8e29)
  • feat(executor): add tests for preserving key order in cache control functions (22a1a24)
  • fix(amp): strip signature from tool_use blocks before forwarding to Claude (b0653ce)
  • Merge pull request router-for-me#1940 from Blue-B/fix/claude-interleaved-thinking-amp-gzip-budget (c1818f1)
  • Merge pull request router-for-me#2121 from destinoantagonista-wq/main (ea43361)
  • Merge pull request router-for-me#2298 from snoyiatk/feat/add-gitstore-branch (000fcb1)
  • docs(readme): remove redundant GITSTORE_GIT_BRANCH description in README files (6f58518)
  • Merge pull request router-for-me#2332 from RaviTharuma/fix/claude-thinking-signature (b851208)
  • Merge pull request router-for-me#2491 from mpfo0106/feature/claude-code-safe-alignment-sentinels (c3f8dc3)
  • Merge pull request router-for-me#2522 from aikins01/fix/strip-tool-use-signature (9eabdd0)
  • Merge pull request router-for-me#2531 from jamestut/openai-vertex-token-usage-fix (9f5bdfa)
  • fix(claude-auth): dedupe OAuth refresh and honor 429 backoff (6431cec)
  • fix(executor): route Claude refresh through retry-aware auth (29e32aa)
  • fix: record zero usage (8b9dbe1)
  • fix(auth): honor disable-cooling and enrich no-auth errors (0ea7680)
  • feat: support socks5h scheme for proxy settings (163d683)
  • Merge pull request router-for-me#2576 from zilianpn/fix/disable-cooling-auth-errors (6a27bce)
  • Merge pull request router-for-me#2578 from LemonZuo/feat_socks5h (cad45ff)
  • fix(websocket): skip stale state merge after client-side compact (a0fe273)
  • fix(websocket): narrow compact replay detection (d2d0e6f)
  • fix(websocket): gate compact replay by downstream support (4ca00f7)
  • fix(executor): ensure empty stream completions use output_item.done as fallback (c8b7e2b)
  • fix(executor): add transient 429 resource exhausted handling with retry logic (91e7591)
  • fix(translator): add unit tests to validate output_item.done fallback logic for Gemini and Claude (fcc59d6)
  • Merge pull request router-for-me#2569 from LucasInsight/fix/record-zero-usage (d1f6224)
  • fix(tests): update test cases (d390b95)
  • chore: add workflow to prevent AGENTS.md modifications in pull requests (f5aa68e)
  • chore: add workflow to retarget main PRs to dev automatically (70efd4e)
  • Merge pull request router-for-me#2592 from router-for-me/tests (12b9671)
  • fix(executor): fix OAuth extra usage detection by Anthropic API (69b950d)
  • fix(executor): update Qwen user agent and enhance header configuration (d54f816)
  • fix(auth): handle OAuth model alias in retry logic and refine Qwen quota handling (941334d)
  • fix(auth): add retry logic for 429 status with Retry-After and improve testing (ad8e396)
  • fix(executor): inject full Claude Code system prompt blocks with proper cache scopes (613fe67)
  • fix: use sjson to build system blocks, avoid raw newlines in JSON (f6f4640)
  • fix: buildTextBlock cache_control sjson path issue (8783caf)
  • fix: build cache_control JSON manually to avoid sjson map marshaling (9e0ab4d)
  • fix: remove invalid org scope and match Claude Code block layout (e2e3c7d)
  • fix(claude): sanitize forwarded third-party prompts for OAuth cloaking (7cdf8e9)
  • fix(claude): remove invalid cache_control scope from static system block (f0c20e8)
  • fix(claude): reduce forwarded OAuth prompt to minimal tool reminder (7e8e222)
  • fix(auth, executor): normalize Qwen base URL, adjust RefreshLead duration, and add tests (5e81b65)
  • fix(claude): remap OAuth tool names to Claude Code style to avoid third-party fingerprint detection (e8d1b79)
  • fix(auth): preserve and restore ready view cursors during index rebuilds (730809d)
  • fix(handlers): add base URL validation and improve API key deletion tests (1dba2d0)
  • feat(antigravity): configurable signature cache with bypass-mode validation (cf24958)
  • docs(antigravity): document signature validation spec alignment (38f0ae5)
  • fix(antigravity): refine 429 handling and credits fallback (30e94b6)
  • Merge pull request router-for-me#2412 from sususu98/feat/signature-cache-toggle (39dc455)
  • fix(claude): preserve OAuth tool renames when filtering tools (ac36119)
  • fix(claude): map question/skill to TitleCase instead of removing them (f780c28)
  • Merge remote-tracking branch 'upstream/main' into fix/oauth-extra-usage-detection (96056d0)
  • fix(claude): address PR review feedback for OAuth cloaking (0f45d89)
  • fix(handlers): update listener to bind on all interfaces instead of localhost (f32c8c9)
  • Merge pull request router-for-me#2621 from wykk-12138/fix/oauth-extra-usage-detection (b2c0cdf)
  • feat(antigravity): prefer prod URL as first priority (d801393)
  • Merge pull request router-for-me#2670 from sususu98/feat/antigravity-prefer-prod-url (2a97037)
  • fix(executor): implement immediate retry with token refresh on 429 for Qwen and add associated tests (65ce863)
  • fix(executor): handle OAuth tool name remapping with rename detection and add tests (5ab9afa)
  • refactor(executor): remove immediate retry with token refresh on 429 for Qwen and update tests accordingly (828df80)
  • Merge pull request router-for-me#2702 from AllenReder/docs/add-quota-inspector (9ded75d)
  • fix(executor): handle 429 Retry-After header and default retry logic for quota exhaustion (0ab1f54)
  • fix(antigravity): allow 32MB bypass signatures (727221d)
  • fix(antigravity): reduce bypass mode log noise (8ed290c)
  • feat(auth): implement auto-refresh loop for managing auth token schedule (a583463)
  • fix(antigravity): drop redacted thinking blocks with empty text (65158cc)
  • fix(antigravity): skip full schema cleanup for empty tool requests (f5ed5c7)
  • refactor(auth): simplify auth directory scanning and improve JSON processing logic (6c0a1ef)
  • feat(auth): add configurable worker pool size for auto-refresh loop (5bfaf80)
  • Merge pull request router-for-me#2715 from sususu98/pr/antigravity-32mb-bypass-signatures (26fd3ef)
  • Merge pull request router-for-me#2716 from sususu98/pr/antigravity-bypass-log-noise (1dc3018)
  • Merge pull request router-for-me#2723 from sususu98/fix/drop-redacted-thinking-blocks (61e0447)
  • Merge pull request router-for-me#2724 from sususu98/fix/skip-schema-cleanup-empty-tools (c4459c4)
  • fix(antigravity): strip thinking blocks with empty signatures instead of rejecting (278a898)
  • fix(antigravity): discard thinking blocks with non-Claude-format signatures (41ae2c8)
  • fix(antigravity): use E-prefixed fake signature in strict bypass test (10b55b5)
  • fix(antigravity): cap maxOutputTokens using registry max_completion_tokens (8fecd62)
  • chore: remove Qwen support from SDK and internal components (8fac296)
  • Merge pull request router-for-me#2782 from sususu98/fix/strip-invalid-signature-thinking-blocks (3dea1da)
  • Merge pull request router-for-me#2800 from sususu98/fix/antigravity-max-output-tokens-cap (f56cf42)
  • chore(models): remove outdated GPT-5 and related model entries from registry JSON (a4c1e32)
  • feat(session-affinity): add session-sticky routing for multi-account load balancing (7c24d54)
  • fix(antigravity): strip billing header from system instruction before upstream call (d4a6a5a)
  • Merge pull request router-for-me#2816 from sususu98/feat/session-affinity (d1508ca)
  • Merge pull request router-for-me#2817 from sususu98/fix/antigravity-strip-billing-header (ba454db)
  • fix(docker-build): improve argument handling and error messaging for usage option (1267fdd)
  • fix(util): forward custom Host header to upstream (8f9e662)
  • fix(handlers): include execution session metadata and skip idempotency key when absent (7b03f04)
  • feat(auth): add proxy URL override support to auth constructors and executors (d949921)
  • chore: remove iFlow-related modules and dependencies (f5dc648)
  • feat(models): add Claude Opus 4.7 model entry to registry JSON (5dcca69)
  • fix(tests): update model lookup references and enhance Claude executor tests (d9a3b3e)
  • fix(tests): update Gemini family test case numbers for consistency (da43f63)
  • fix(util): also keep Host in header map for synthetic requests (eba561b)
  • feat(api): integrate auth index into key retrieval endpoints for Gemini, Claude, Codex, OpenAI, and Vertex (894baad)
  • fix(management): stabilize auth-index mapping (c26936e)
  • fix(tests): remove obsolete config_auth_index_test file (a64141a)
  • Merge pull request router-for-me#2892 from router-for-me/fix-provider (c6baa64)
  • feat(translator): add partial and full image generation support in Codex-GPT and Codex-Gemini flows (86c856f)
  • fix(executor): drop obsolete context-1m-2025-08-07 beta header (fixes router-for-me#2866) (f4eb161)
  • Merge pull request router-for-me#2898 from octo-patch/fix/issue-2866-remove-obsolete-1m-beta-header (e05abec)
  • feat(docs): add VisionCoder sponsorship details and optimize external links (8f4a4ea)
  • feat(auth): add refresh backoff for ineffective token updates (e6866ff)
  • fix(codex): backfill streaming response output (bb8408c)
  • perf(codex): avoid repeated output patch writes (b6781d6)
  • feat(api): add support for HEAD requests to /healthz endpoint (1716a84)
  • Merge pull request router-for-me#2939 from stringer07/fix/codex-stream-output-backfill (3444820)
  • Merge pull request router-for-me#2834 from muzhi1991/fix/openai-compat-host-header (8ced7a5)
  • feat(models): add Kimi K2.6 model entry to registry JSON (4fc2c61)
  • feat(models): add hardcoded GPT-Image-2 model support in Codex (e935196)
  • fix(handlers): remove handling of unsupported n parameter in OpenAI image handlers (fd71960)
  • fix(handlers): remove references to unsupported n parameter in OpenAI image handlers (a188159)
  • feat(codex): enable image generation for all Codex upstream requests (31934ae)
  • feat(antigravity): conductor-level credits fallback for Claude models (14d46a0)
  • feat: support extracting X-Amp-Thread-Id header as session id for session affinity (4d6457e)
  • fix(antigravity): remove credits fallback from CountTokens, fix gofmt (4de5c29)
  • fix: forward HTTP headers to executor Options so session affinity can read X-Amp-Thread-Id (8e49c79)
  • fix(antigravity): respect pinned auth in credits fallback, release deferred body on success (e75daa2)
  • refactor(logging): strip unrelated deferred body changes, keep credits-only logging (920b6ef)
  • fix(auth): break credits cold-start deadlock by keeping unknown-hint auths as fallback candidates (f130846)
  • Merge pull request router-for-me#2962 from MoYeRanqianzhi/feat/codex-image-generation-tool-injection (8eb56e5)
  • perf(antigravity): async credits hint refresh for warm tokens (7ad1900)
  • feat(logging): add AI API path support for image routes (25137b1)
  • Merge pull request router-for-me#2971 from sususu98/feat/antigravity-credits-fallback (12195a2)
  • feat(models): add GPT-5.5 model entry to registry JSON (7d5f6d9)
  • Add GPT-5.5 Codex model support (736018a)
  • Merge pull request router-for-me#2989 from ben-vargas/gpt-5-5-support (1576d14)
  • chore(models): remove GPT-5.5 model entry from registry JSON (7b89583)
  • feat(codex): pass base model to enable conditional image_generation tool injection (f1ba615)
  • fix antigravity credits stream fallback (5f5d593)
  • Merge pull request router-for-me#3007 from sususu98/fix-antigravity-credits-stream-fallback (36cc762)
  • fix(codex): classify known upstream failures (4056c25)
  • feat(auth): disallow free-tier Codex auth during selection process (a7e92e2)
  • Add CPA Usage Keeper to README ecosystem list (faad8e3)
  • Merge pull request router-for-me#3022 from Willxup/main (be0fe6f)
  • feat(api): implement protocol multiplexer and Redis queue for usage integration (28d7827)
  • feat(security): implement IP ban for repeated management key and Redis AUTH failures (2c626ef)
  • feat(models): add Codex Auto Review model entry to registry JSON (ea670ef)
  • feat(api): enhance model assignment logic in image handlers (0a7c6b0)
  • fix(claude): only reverse-remap OAuth tool names that were forward-renamed (e707cf7)
  • perf(claude): pre-allocate reverseMap capacity (03ea4e5)
  • fix(claude): centralize oauth tool-name transform flow (fc1ddf3)
  • fix(amp): preserve lowercase glob tool name (95318ad)
  • fix(openai): repair empty responses stream output (fd45dec)
  • fix(openai): preserve unindexed response output items (d36e70e)
  • fix(openai): preserve multiline repaired SSE data (80eb037)
  • fix(test): remove free tier from GPT-5.5 inclusion test (32ef158)
  • feat(config): add support for disabling OpenAI compatibility providers (3857305)
  • feat(executor): add support for Codex image generation tool usage tracking (c7b28ba)
  • Merge pull request router-for-me#3020 from Matthias319/fix/codex-error-classification (c5bea6f)
  • Merge pull request router-for-me#3051 from philipbankier/fix/gpt55-free-tier-test (736ae61)
  • logging: mark antigravity credits requests (6fc2356)
  • Merge pull request router-for-me#2972 from XYenon/feat/amp-thread-id (a325533)
  • fix(usage_helpers): skip zero-token usage in additional model records (04a336f)
  • feat(codex): handle thinking-signature conversion for reasoning content (01e16a8)
  • fix(codex): include content field in reasoning item initialization (d85e13b)
  • Preserve Codex reasoning signatures for Claude (c523101)
  • Merge pull request router-for-me#3088 from sususu98/codex-claude-reasoning-signature (34027da)
  • feat: support Codex/PI session headers for session affinity (3ac39dc)
  • fix(antigravity): use real antigravity UA when polling credits balance (a992dee)
  • test(api): add validation for unsupported models in OpenAI image handlers (9fb6a49)
  • Merge pull request router-for-me#3114 from Xbang0222/fix/antigravity-credits-ua (b34f3be)
  • fix antigravity user agent handling (e78d45a)
  • fix antigravity client agent headers (0e12351)
  • Merge pull request router-for-me#3117 from sususu98/fix/restore-antigravity-ua-handling (c4965be)
  • Merge pull request router-for-me#3089 from XYenon/feat/session-affinity (f95ab4c)
  • feat(models): add GPT-5.5 to the registry with support for advanced tasks (2ea8f77)
  • fix: parse gemini cli usage metadata variants (4982512)
  • fix: align claude codex translation (1c0c426)
  • fix: respect declared claude web search tool names (0d107dd)
  • Merge pull request router-for-me#3133 from sususu98/optimize/claude-codex-translator (2c1539e)
  • Merge pull request router-for-me#3125 from sususu98/fix/gemini-cli-usage-metadata-variants (b3b92f3)
  • Merge pull request router-for-me#3071 from sususu98/fix/antigravity-credits-log (a1f0ed9)
  • chore(docs): remove LingtrueAPI sponsorship section from README files (359ec30)
  • feat: support disabling image generation globally (e3e60f9)
  • feat: remove tool_choice for image_generation when disabled (4601841)
  • feat: add tri-state support for disable-image-generation configuration (f56a19e)
  • feat: apply image_generation filtering before payload rules (6ba7c81)
  • feat: add unit tests for OpenAI responses request conversion (243c582)
  • feat: add local Docker build script and update compose configuration (05ecfb6)
  • Merge pull request router-for-me#3163 from C4AL/docs/add-codexclipplus-ecosystem (8b286e8)
  • refactor(logging): replace gin-specific context handling with generic context-based request metadata utilities (4035abc)
  • feat: add support for recent request tracking in auth records (6187919)
  • feat: add API key usage endpoint with provider and key grouping (b0dc9df)
  • chore: update .goreleaser.yml to include custom archive naming with arch override logic (e37f3be)
  • feat: enhance API key usage grouping with base URL inclusion (8c2f1a8)
  • feat: add tracking for auth request success and failure counts (b8bba05)
  • chore: remove usage tracking and logging functionality (18bb9c3)
  • Merge pull request router-for-me#3194 from daishuge/codex/add-daishuge-cpa-port-20260502 (85124f0)
  • feat: add configurable retention period for Redis usage queue (56df368)
  • Merge pull request router-for-me#3197 from VjayC/dev (593995a)
  • Add CLIProxyAPI Usage Dashboard to statistics docs (81db7fd)
  • Update README_CN.md (7972130)
  • Update README_JA.md (d2386a3)
  • Merge pull request router-for-me#3201 from murasame612/docs/add-cliproxy-pool-watch (054d0de)
  • Merge pull request router-for-me#3204 from zhanglunet/add-usage-dashboard-link (756b600)
  • feat: enhance tool mapping with namespace and web search support (af65908)
  • feat: filter and drop empty assistant messages in Kimi executor (672fdd1)
  • fix: prevent goroutine leaks in streaming executors via context-aware channel sends (bf0e5c2)
  • feat: add validation for Claude streaming responses (2753d9f)
  • Merge pull request router-for-me#2266 from DragonFSKY/fix/ws-compact-tool-output-mismatch (82ebe24)
  • fix(translator): handle non-string types in tools result processing (a1487b0)
  • fix(websocket): ensure state consistency on auth errors in streaming (8e6ef3f)
  • chore(docker): upgrade base image to alpine 3.23 (38dad2a)
  • fix(translator): improve tool response handling for non-string content (17be644)
  • Align Codex websocket protocol semantics (c19ae1d)
  • Fix Codex websocket retry metadata (08b0fe6)
  • Align Codex default identity and docs (6b4bc0a)
  • Merge pull request router-for-me#2416 from kslamph/fix/gemini-cli-projectid (a1eba11)
  • fix(executor): adjust ApplyThinking order and add payload override test (89d80bf)
  • feat(translator): add token usage tracking and improve usage handling (85c0150)
  • fix(executor): strip Vertex OpenAI response tool call IDs for consistency (bf6fa40)
  • fix(translator): handle empty tool function names in OpenAI Claude responses (c1caa45)
  • Merge remote-tracking branch 'origin/pr/3205' into dev (162897e)
  • fix: preserve Antigravity cancellation errors (ecf1c25)
  • Merge PR router-for-me#2568: fix Claude refresh backoff (8262a03)
  • fix(executor): enhance parsing of OpenAI stream data lines (e4a93c0)
  • Merge pull request router-for-me#2896 from edlsh/fix/oauth-tool-rename-per-request-map (bdc4240)
  • Merge pull request router-for-me#3208 from kdcokenny/codex-websocket-protocol-parity (28b4b19)
  • feat(usage): add support for requested model alias handling (ba5d8ca)
  • feat(management): add usage record retrieval endpoint (61b39d4)
  • refactor(management): rename GetUsage to GetUsageQueue and update routes/tests (da6c599)
  • fix(executor): ignore null OpenAI stream usage chunks (99dfbae)
  • chore(docs): update sponsor details in README (ed1458a)
  • fix:openai 2 kimi error Continuous function_call 连续的function_call 转换 tool_calls (17a1f53)
  • 📝 docs(readme): add CPA-Manager usage statistics recommendation (ad3f4f2)
  • Merge branch 'router-for-me:main' into my-fix (a09a16e)
  • feat(executor): add upstream disconnect handling for Codex WebSocket sessions (fb08b92)
  • fix(amp): proxy thread actors route (0117174)
  • Merge pull request router-for-me#3247 from edlsh/fix/amp-thread-actors-route (a034cf8)
  • Merge pull request router-for-me#3237 from seakee/docs/add-cpa-manager-usage-statistics (785b00c)
  • fix: require antigravity project id (33130f1)
  • fix(antigravity): mask project_id in logs (809feb1)
  • chore: upgrade CLIProxyAPI dependency to v7 across the project (e50caba)
  • fix responses websocket tool output context (c883114)
  • fix: apply default auth-dir when config value is empty (4071fde)
  • refactor: extract DefaultAuthDir constant per review feedback (4cbe172)
  • feat(management): expose additional OAuth and configuration helpers (1721994)
  • feat(server): add support for loading configuration from a remote home control plane (c67096b)
  • feat(config): add per-auth disable_cooling override support (0f0fcd2)
  • refactor(cliproxy): remove ClaudeCodeSessionAffinity support and simplify session affinity logic (0dcb8bd)
  • Merge pull request router-for-me#3221 from mochenya/main (09ac8a1)
  • Merge pull request router-for-me#3292 from lihan3238/fix-3272 (68fddaa)
  • feat(auth): add support for persisting disabled flag in token storage (c69ff49)
  • feat(auth): enhance auth index generation with improved file path handling (41f4ee7)
  • Merge pull request router-for-me#3283 from wuchulonly/fix/responses-ws-tool-output-context (3cbd587)
  • feat(logging): add home request-log forwarding support (1abf862)
  • feat(home): implement count for home auth dispatch requests and enable usage statistics (66c3dae)
  • feat(auth): add shouldReturnLastErrorOnPickFailure helper and improve error handling in home mode (67fb4eb)
  • Merge branch 'v7' into dev (a44e5eb)
  • fix(api): prevent idle TCP connections from blocking the accept loop (28dfcae)
  • feat(auth): add websocket session reuse for home auths with caching support (dc1cc7f)
  • feat(auth): enhance home auth session reuse with scoped caching and ref counting (8300ee8)
  • refactor(auth): simplify home auth session management and remove ref counting (15ac7fb)
  • feat(config): add detailed logging for home config changes (5e5b1bc)
  • fix(api): clear sniff deadline before entering Redis handler (c5596e0)
  • Merge remote-tracking branch 'origin/pr/3239' (1fca942)
  • Merge pull request router-for-me#3303 from lihan3238/fix-3267 (041ccf0)
  • feat(usage): add support for detailed token breakdown in usage tracking (bd8c05a)
  • feat(auth): improve unauthorized error handling for refresh and auto-refresh (6bfcb0c)
  • fix: scope antigravity credits fallback gate (bfdc0b3)
  • feat(client): add cluster node failover and improve reconnection handling (bcbb949)
  • feat(api): add dynamic handler for Gemini models with home integration (437aa87)
  • fix(home): implement home dispatch headers and enhance Gemini model handling (3a9fb37)
  • feat(auth): add support for disabling auth via metadata (229d03a)
  • feat(redis): implement Pub/Sub support for usage tracking (1d529c3)
  • feat(redis): implement Pub/Sub support for usage tracking (9d01c80)
  • fix(gitstore): adjust garbage collection to run after push operation (30a8824)
  • feat(api): add request body decoding with Content-Encoding support (e7a1859)
  • feat(api, watcher): add zstd decoding for request logs and payload diff support (82c9e0d)
  • fix(home): use net.JoinHostPort for consistent host:port formatting (7a1a340)
  • feat(home): implement home control plane integration with Redis and TLS support (48104ab)
  • feat(home): add support for disabling cluster discovery in Redis configuration (644d5ea)
  • Merge pull request router-for-me#3430 from router-for-me/home (f4c6c41)
  • feat(home): add cluster nodes payload parsing and Redis channel handling (c66fa37)
  • refactor(server): consolidate home_flag logic into main.go for better maintainability and simplicity (cd0cea3)
  • feat(auth): add OAuth2 support for xAI with PKCE and token persistence (e4c9570)
  • feat(api, xai): integrate xAI Grok image models and extend API endpoints for image support (2ff9e33)
  • feat(api, xai): add xAI Grok video model support with API integration (53d1fd6)
  • fix: strip Claude Code attribution from non-Anthropic translations (d606faa)
  • feat(api): add Codex client models support for OpenAI API (088ab33)
  • feat(xai): normalize xAI input reasoning items and enhance test cases (ddd1053)
  • refactor(api): move Codex client model handling to registry package (96754f5)
  • feat(xai): support namespace tools and enhance tool normalization logic (8b3670b)
  • fix(xai): default missing function tool parameters (2607888)
  • feat(xai): support namespace tools and enhance tool normalization logic (74cb53d)
  • Merge pull request router-for-me#3439 from ben-vargas/fix-grok-tool-params (4b13f9c)
  • log(registry): replace panic with warning on embedded model parse failure (be841b8)
  • feat(runtime): enhance payload rule resolution with dynamic path support (26d13af)
  • feat(runtime): enhance payload rule resolution with dynamic path support (2007a89)
  • refactor(runtime): rename FormProtocol to FromProtocol across payload handling logic (9ef99aa)
  • feat(api): add support for local management password validation and spoofed IP rejection (605adaa)
  • feat(server): add HOME_ADDR and HOME_PASSWORD env var fallback for home flags (ed0ac68)
  • refactor: move home env vars after godotenv and use lookupEnv helper (5f03965)
  • refactor(api): remove newTestServerWithOptions and spoofed IP rejection test (66c5d60)
  • Merge pull request router-for-me#3448 from LongDinhh/feat/home-env-vars (64d233f)
  • fix(openai-claude): stabilize streaming tool_use blocks (1c2153a)
  • Merge pull request router-for-me#3438 from madwiki/fix/strip-claude-code-attribution (4ad6ffe)
  • Merge pull request router-for-me#2926 from slicenferqin/fix-tool-use-name-loss-and-duplicates (2460205)
  • fix(proxy): support HTTP CONNECT dialer (ec79951)
  • fix: shorten claude codex tool call ids (8bc2eff)
  • Merge pull request router-for-me#3450 from sususu98/fix/http-connect-proxy-dialer (2710f56)
  • Merge pull request router-for-me#3468 from sususu98/fix/claude-codex-call-id-length (cc0cb05)
  • Cap Gemini max output tokens (1583cb4)
  • Fix Antigravity Gemini thought signatures (32a0d69)
  • feat(server): add mTLS certificate bootstrap via JWT for Home connections (77ba15f)
  • feat(runtime): track upstream response headers in logging and usage reporting (ad98c95)
  • feat(thinking): add xAI provider support with reasoning.effort implementation (bac006e)
  • Merge pull request router-for-me#3469 from sususu98/fix/gemini-max-output-token-cap (6448235)
  • Merge pull request router-for-me#3470 from sususu98/fix/antigravity-gemini-thought-signatures (b67eb6f)
  • feat(api): add OpenAI compatibility for image models (feebe6c)
  • feat(server): enhance Home certificate handling with CA fingerprint verification (bbe30f5)
  • fix codex context length stream errors (ad86830)
  • style(docs): improve sponsor section clarity in README files (67f2251)
  • feat(docker): add cluster-specific docker-compose configuration for CLIProxyAPI (7efc162)
  • feat(client): add timeout handling for Redis operations and subscription failover (bb5ac40)
  • Add Codex Switch tool to README (7f68fa2)
  • Update README.md (5ef7693)
  • Add reasoning effort to usage events (0de0ad0)
  • Merge pull request router-for-me#3482 from 9ycrooked/patch-1 (b9589e8)
  • feat(models): add Gemini 3.5 Flash models to registry (ea25949)
  • feat(models): expand supported reasoning levels for Codex (de03949)
  • feat(models): register Gemini 3.5 Flash with dynamic thinking levels (fdffe49)
  • feat(models): add Gemini 3.5 Flash to registry with enhanced thinking capabilities (0ec07e5)
  • fix(translator): skip empty text parts in Claude request conversion (1c632d1)
  • Merge pull request router-for-me#3484 from yavon007/main (f1ee883)
  • feat(redis): enhance Redis protocol handling with subscription and queue operations (a726e37)
  • Merge pull request router-for-me#3254 from sususu98/fix/antigravity-project-id-onboard (42e9605)
  • Merge pull request router-for-me#3382 from sususu98/dev (8b9ecff)
  • Merge pull request router-for-me#3476 from sususu98/fix/codex-context-length-stream-errors-dev (48a1c88)
  • Merge pull request router-for-me#3477 from router-for-me/cluster (21fad9d)
  • fix(auth): update import paths to v7 for registry and executor (3c62a9a)
  • Merge pull request router-for-me#3498 from router-for-me/test (cecd393)
  • fix(translator): handle system role as developer in Claude request conversion (33f4904)
  • feat(models): add Grok Build 0.1 to registry (aaec919)
  • docs(readme): add APIKEY.FUN sponsorship details to README files (50d19e2)
  • feat(cli): add fetch_codex_models command for dynamic Codex model fetching (efa200e)
  • feat(logging): add RequestID support in home request logging (412d344)
  • feat(logging): add file-backed sources for request logging (a0bb1f3)
  • feat(auth): add support for websockets in auth file parsing and patching (167edfe)
  • fix: clean gemini cli request schemas (70a8cf0)
  • fix: log gemini cli schema cleanup errors (4a85b6b)
  • Merge pull request router-for-me#3554 from sususu98/fix/gemini-cli-request-schema-cleanup (b5959c3)
  • feat(images): add support for configurable GPT Image 2 base model and improved SSE handling (e399edd)
  • feat(websockets): refine incremental repair logic for tool call responses (de280d9)
  • fix(translator): correct JSON path for item summary in response event (2cbb8c7)
  • feat(translator): add reasoning signature handling and tests for Claude-OpenAI conversions (4b68103)
  • feat(logging): add SetTranslatedReasoningEffort to track reasoning levels in usage reporting (11f0f90)
  • feat(executor): add TTFT tracking and reporting for enhanced performance metrics (94c1b25)
  • chore(models): remove deprecated GPT-5.x models from codex-free catalog (d9c01a6)
  • feat(logging): improve file-backed source cleanup and directory recreation logic (2bcc762)
  • refactor: extract signature validation (b3d6d5d)
  • fix(amp): restore response tool casing from request (01a7cc4)
  • feat(usage): include cache tokens in total token calculation and add tests (65e760a)
  • feat(usage): add service tier tracking and defaults in usage reporting (71c185f)
  • Merge pull request router-for-me#3591 from sususu98/feat/signature-check-extraction (c65275f)
  • feat(models): add Claude Opus 4.8 model to registry (df0176a)
  • Merge pull request router-for-me#3595 from Progress-infinitely/fix/anthropic-tool-name-reverse-map (f28258d)
  • feat(logging): add HomeAppLogForwarder for application log forwarding (c4ee063)
  • Merge pull request router-for-me#3605 from router-for-me/log (4ade13a)
  • feat(logging): add request_id handling in HomeAppLogForwarder and tests (d2c5f27)
  • fix(logging): log errors during file-backed source cleanup (7d9980e)
  • feat(signature): upgrade provider signature checks (86cb9c1)
  • feat: intercept incompatible signature replay (aee7a5f)
  • fix(openai): dedupe response websocket input item IDs (e9dafc7)
  • Merge pull request router-for-me#3615 from sususu98/codex/signature-intercept-on-pr (034d2b6)
  • Merge pull request router-for-me#3612 from router-for-me/log (96b6f7e)
  • test(oauth): ensure missing auth directories are created and callback payloads are validated (fc0615b)
  • fix(translator/gemini): support developer role in OpenAI Responses requests (776a9c0)
  • Merge pull request router-for-me#3620 from iBenzene/fix/responses-input-id-dedupe (55901f0)
  • fix(auth): strip "generate" from payload during WebSocket HTTP fallback (430e679)
  • Merge branch 'dev', commit 'refs/pull/3621/head' of github.com:router-for-me/CLIProxyAPI into dev (3a54fb7)
  • refactor(executor): consolidate Codex request translation logic (33983b6)
  • feat(executor): implement identity obfuscation for Codex requests and responses (0f24caf)
  • fix(executor/xai): drop orphaned tool_choice when Claude tools array is empty (303685c)
  • feat(executor): enhance Codex identity obfuscation with turn and window metadata handling (bbcdaab)
  • feat(models): add support for grok-imagine-video-1.5-preview model (ac1360f)
  • test(models, executor): add XAI video model test and fix Codex User-Agent assertions (fb4f39d)
  • feat(executor): refine session and conversation header handling for Codex (05b9724)
  • fix(openai): keep referenced tool call when deduping websocket input IDs (e7f4dd4)
  • refactor(openai): parse dedupe input item metadata in a single pass (f05d68d)
  • feat(usage): introduce executor type tracking in usage reporting (959067e)
  • feat(watcher, redisqueue): add usage refresh notification support (f353979)
  • feat(models): add support for grok-composer-2.5-fast model (bf04a24)
  • chore(models): remove legacy GPT 5.2 and GPT 5.3 Codex entries from registry (87d813c)
  • Fix Home auth refresh retry handling (c9dc6bd)
  • feat(codex): cache reasoning replay items (603a08f)
  • fix(translator): normalize message-level system roles for Gemini (68282c4)
  • Merge pull request router-for-me#3679 from sususu98/codex/system-role-to-user-upstream-dev (4abd59c)
  • Merge pull request router-for-me#3667 from sususu98/feat/codex-reasoning-replay-cache-upstream-dev (8306391)
  • Merge pull request router-for-me#3677 from sususu98/codex/home-auth-loop-upstream-dev (02d0d92)
  • Merge pull request router-for-me#3676 from eltmon/add-panopticon-to-users (d710248)
  • docs(readme): update project descriptions and add Panopticon link (28c7f41)
  • fix(codex): handle non-empty reasoning and content items, add test for trailing empty messages (0e3c809)
  • refactor(runtime): enhance NewUtlsHTTPClient with context-based RoundTripper (35ab084)
  • fix(codex): avoid replaying orphan tool calls (17af089)
  • Merge pull request router-for-me#3688 from sususu98/fix-codex-replay-dev (7682acc)
  • fix(auth): retry and backoff cloudflare challenge 403 errors (45f58d4)
  • refactor(auth): simplify and narrow cloudflare challenge checks (77061aa)
  • Merge pull request router-for-me#3689 from sususu98/pr/cloudflare-challenge-retry (1c9601f)
  • Merge pull request router-for-me#3657 from catoncat/fix/responses-input-id-dedupe-orphaned-output (9c02454)
  • feat(auth): add runtime auth removal and unscheduling logic (55440f0)
  • feat(auth): add error event publishing and Redis queue integration (fd30944)
  • Merge pull request router-for-me#3702 from Villoh/docs/add-tunnel-agent (bebdaa4)
  • Merge pull request router-for-me#3649 from intcua/fix/xai-empty-tools-orphan-tool-choice (387c783)
  • feat(logging): enable file-backed request/response sources for enhanced API logging (5753d1a)
  • feat(safemode): implement example API key warning server and related functionality (bc38b68)
  • Merge pull request router-for-me#3735 from router-for-me/safemode (fca12a2)
  • feat(pluginhost): add capabilities for command-line flag handling and plugin execution (d625cad)
  • Merge branch 'dynamic' into dev (3abfc83)
  • feat(pluginhost): refactor and enhance plugin system with new execution and thinking capabilities (0ed85bb)
  • chore(build): update dependencies, enhance cross-compilation, and refactor workflows (bc58c21)
  • chore(build): remove goreleaser configuration and refactor release workflow (9ee6493)
  • chore(build): set additional environment variables for FreeBSD builds in release workflow (3dedf47)
  • chore(build): add caching for Go dependencies and FreeBSD-specific artifacts in release workflow (c75fb2c)
  • chore(build): add custom runners and improve Go module handling in FreeBSD release workflow (4567fd1)
  • chore(build): add custom runners and improve Go module handling in FreeBSD release workflow (43c1214)
  • chore(build): enhance release workflow with automated asset handling and checksum generation (6d9014b)
  • chore(build): update release workflow to include repository reference and fix exit code handling (37df0b8)
  • chore(build): refactor FreeBSD build process and optimize workflows (4f55ecc)
  • feat(plugin): add Codex Service Tier request normalizer plugin (c989cdd)
  • fix(translator): add fallback for system_instruction key in Gemini request parsing (365415c)
  • chore(build): migrate from Alpine to Debian and update build dependencies (d9a0c9b)
  • feat(translator): implement signature delta handling and enhance chunk processing in Gemini and Antigravity translators (ec67244)
  • chore(build): add Linux-specific release workflows and update release notes handling (69d937a)
  • chore(build): include ca-certificates in Docker image for improved HTTPS support (d55f215)
  • feat(safemode): support /management.html route in ExampleAPIKeyWarningHandler (856dc81)
  • chore(build): remove checksum generation from release workflows (07c607b)
  • fix: translate codex stream errors for claude (702295d)
  • perf(codex): avoid rebuilding completed JSON when extracting generated images (4330b92)
  • perf(codex): preallocate results and skip empty index sort (2e81766)
  • feat(pluginhost): add support for interceptors and metadata sanitization (1762ee0)
  • Merge pull request router-for-me#3771 from Folyd/perf/codex-image-streaming-memory (d128578)
  • fix(runtime): update formatting in codex image extraction comment (5e41e07)
  • feat(jshandler): add new plugin providing JavaScript-based interceptors and capabilities (5830535)
  • feat(access, pluginhost): add support for exclusive frontend auth providers (fabf061)
  • fix: update antigravity version lookup (c7cc3a1)
  • Merge pull request router-for-me#3770 from sususu98/fix/codex-claude-stream-error-upstream-dev (9fb9e91)
  • Merge pull request router-for-me#3773 from sususu98/fix/antigravity-version-upstream-dev (a2db6a6)
  • feat(pluginhost, scheduler): introduce Go-based plugin with scheduler capabilities (693ce1c)
  • feat(auth): enhance plugin scheduler with HasScheduler support and fast-path tests (41a4dba)
  • feat(interceptor, jshandler): enhance request/response handling with original request support (556f50a)
  • refactor(auth): simplify plugin scheduler by consolidating strategies and removing RoundRobinSelector (1d1ee85)
  • feat(pluginhost, jshandler): integrate HostCallbackID with interceptors and JS engine logging (2aeb41c)
  • feat(pluginhost): introduce browser-navigable plugin resources in Management API (44ea9ab)
  • fix(logging): track Codex backend request IDs (e1864fb)
  • fix(logging): tighten Codex backend request ID prefix (dc3152d)
  • feat(models): add Claude Fable 5 to registry (efd69d8)
  • Merge pull request router-for-me#3788 from shoucandanghehe/fix/codex-backend-request-id (8caf474)
  • feat(auth): deduplicate concurrent refresh token requests with singleflight (8e52c40)
  • feat(docs): add Unity2.ai sponsorship details to README (21387f5)
  • feat(auto-updater): refactor skip logic and add unit tests for autoUpdateSkipReason (3c773b6)
  • feat(auth, interceptor, jshandler): add post-auth request interceptors and enhance format handling (1ca048a)
  • feat(translator): ensure correct finish_reason handling for all response chunks (58bf645)
  • feat(translator): enhance response aggregation and annotation handling (dc04d8b)
  • feat(service): add XAIExecutor to home executors registration (4cbd500)
  • feat(executor): refactor executor registration (ca1f627)
  • feat(translator, pluginhost): add stream-specific response transformation support (9985976)
  • Merge pull request router-for-me#3795 from router-for-me/webui (030c4a9)
  • Merge branch 'dev' of github.com:router-for-me/CLIProxyAPI into dev (ac4017e)
  • feat(plugin, api): introduce host model callback support with Go example and API handlers (8e39db2)
  • feat(plugin, api): prevent plugin recursion on host model callbacks, enable targeted interceptor skipping (538e341)
  • test(websocket, api): add unit tests for response ID injection and handling of pending tool calls (ed52c61)
  • refactor(release): enhance release workflow with changelog generation and improved note handling (5633c93)
  • feat(translator): add usage token details for cache input/output aggregation (9dbf4cd)
  • feat(pluginstore): add plugin store support (e38ba28)
  • Merge pull request router-for-me#3818 from router-for-me/Plugin-stone (0626b22)
  • refactor(translator): update test strings to use English for consistency (69b7462)
  • feat(pluginhost, api): add support for "X-CPA-SUPPORT-PLUGIN" header with CGO detection (049ced5)
  • feat(pluginstore, pluginhost): add plugin unload handling and preserve config during plugin updates (60f6a54)
  • feat(htmlsanitize): add HTML and JSON sanitization utilities with integration across plugins and APIs (44d3066)
  • chore(plugin/jshandler): remove JS handler plugin implementation and related tests (b6c22f2)
  • feat(pluginstore): fetch and install plugins from latest release (40f4b8b)
  • feat(management): resolve plugin store versions from latest releases (220b4e5)
  • feat(pluginstore): make registry version field optional (b2b5d10)
  • fix(plugins): expose saved plugin config (b60ec43)
  • Merge pull request router-for-me#3821 from router-for-me/feat/plugin-latest-release-check (cbaea35)
  • fix(plugins): guard config read with mutex (4f5f1b8)
  • docs(plugins): document config get endpoint in Chinese readme (b29851d)
  • Merge pull request router-for-me#3822 from router-for-me/fix/plugin-config-get-endpoint (c006e67)
  • fix: expose plugin support header for CORS (2659e49)
  • fix: precompute exposed CORS headers (7cd5b15)
  • Merge pull request router-for-me#3823 from router-for-me/fix/cors-expose-plugin-support (6a0b198)
  • feat(antigravity): bridge Claude WebSearch to native googleSearch (48dcadd)
  • Merge pull request router-for-me#3824 from sususu98/codex/antigravity-websearch-native-minimal (94c5a7f)
  • chore: add fork upstream sync workflow and DockerHub settings (19cfb24)
  • Add PostForceRefreshTokens (d8016db)
  • fix(ci): keep fork releases on patch tags (a3b1adb)
  • Restore Codex prompt cache key synthesis (1714599)
  • Fix EOF retry logic for network errors (#15) (bd66d76)

Full Changelog: v6.9.6...v7.1.74-patch