v7.1.74-patch
·
1394 commits
to main
since this release
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis 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.gzis 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.gzis 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
helpspackage and update references (d2c7e4e) - Merge branch 'dev' of github.com:router-for-me/CLIProxyAPI into dev (b468ca7)
- fix(codex): conditionally set
Session_idheader 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.usagefor 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
HEADrequests to/healthzendpoint (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
nparameter in OpenAI image handlers (fd71960) - fix(handlers): remove references to unsupported
nparameter 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
contentfield 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_choiceforimage_generationwhen disabled (4601841) - feat: add tri-state support for
disable-image-generationconfiguration (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
GetUsagetoGetUsageQueueand 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_coolingoverride support (0f0fcd2) - refactor(cliproxy): remove
ClaudeCodeSessionAffinitysupport 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
disabledflag 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
countfor home auth dispatch requests and enable usage statistics (66c3dae) - feat(auth): add
shouldReturnLastErrorOnPickFailurehelper 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_flaglogic intomain.gofor 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
registrypackage (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
FormProtocoltoFromProtocolacross 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
newTestServerWithOptionsand 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_modelscommand for dynamic Codex model fetching (efa200e) - feat(logging): add
RequestIDsupport 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
SetTranslatedReasoningEffortto 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-freecatalog (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-previewmodel (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-fastmodel (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
NewUtlsHTTPClientwith 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_instructionkey 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-certificatesin Docker image for improved HTTPS support (d55f215) - feat(safemode): support
/management.htmlroute inExampleAPIKeyWarningHandler(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
HasSchedulersupport 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 5to 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