github router-for-me/CLIProxyAPIPlus v6.5.29-0

latest releases: v6.9.28-0, v6.9.27-0, v6.9.23-0...
5 months ago

Changelog

  • 6f9c23a #167
  • 7063a17 #293
  • 34855bc Fix model switch logic when quota is exceeded
  • 56c8297 Handle data: without trailing space in streaming responses
  • cbf9a57 build(goreleaser): set CGO_ENABLED=0 for cli-proxy-api binaries
  • 52e5551 chore(build): rename artifacts and adjust workflows for 'plus' variant
  • 257621c chore(executor): update default agent version and simplify const formatting
  • 93fa1d1 docs: add Amp CLI integration guide to Chinese documentation
  • 8203bf6 docs: update README for CLIProxyAPI Plus and rename artifacts
  • cc3cf09 feat(auth): add AuthIndex for diagnostics and ensure usage recording
  • 7757210 feat(auth): implement Antigravity OAuth authentication flow
  • 2d84d2f feat(auth, executor, cmd): add Antigravity provider integration
  • d114d8d feat(config): add TLS support for HTTPS server configuration
  • 8d23ffc feat(executor): add model alias mapping and improve Antigravity payload handling
  • ac06438 feat(executor, translator): enhance token handling and payload processing
  • aa57f32 feat(instructions): add detailed agent behavior guidelines for Codex CLI
  • e308288 feat(logging, middleware): add error-based logging support and error log management
  • bf116b6 feat(registry): add GPT-5.1 Codex Max model definitions and support
  • ee6429c feat(registry): add Gemini 3 Pro Image Preview model and remove Claude Sonnet 4.5 Thinking
  • 17016ae feat(registry): add Gemini 3 Pro Preview model definition
  • 01b7b60 feat(registry): add Gemini 3 Pro Preview model definition
  • d2e4639 feat(registry): add context length and update max tokens for Claude model configurations
  • 371324c feat(registry): expand Gemini model definitions and support Vertex AI
  • fcd98f4 feat(runtime): add payload configuration support for executors
  • cf9b9be feat(runtime): extend executor support for GPT-5.1 Codex and variants
  • c1031e2 feat(translator): add Antigravity translation logic
  • 8977121 feat(translator): add ThoughtSignature handling in Gemini request transformations
  • 4eab141 feat(translator): add support for reasoning/thinking content blocks in OpenAI-Claude and Gemini responses
  • 9d50a68 feat(translator): improve content processing and Antigravity request conversion
  • 4307f08 feat(watcher): optimize auth file handling with hash-based change detection
  • f0711be fix(auth): prevent access to removed credentials lingering in memory
  • bb9955e fix(auth): resolve index reassignment issue during auth management
  • 0087eec fix(build): append '-plus' suffix to version metadata in workflows and Goreleaser
  • 9875565 fix(claude translator): ensure default token counts when usage data is missing
  • 52c17f0 fix(executor): comment out redundant code for setting Claude system instructions
  • 113db3c fix(executor): update antigravity executor to enhance model metadata handling
  • a748e93 fix(executor, auth): ensure index assignment consistency for auth objects
  • 506f111 fix(handlers): refactor API response capture to append data safely
  • 23a7633 fix(registry): update Thinking parameters and replace Gemini-3 Preview with Gemini-2.5 Flash Lite
  • db2d22c fix(runtime): simplify scanner buffer allocation in executor implementations
  • 0a47b45 fix(translator): add conditional check for key renaming in Gemini tools
  • 261f08a fix(translator): adjust key renaming logic in Gemini request processing
  • c8cee54 fix(translator): ensure partial content is retained while skipping encrypted thoughtSignature
  • 7a8e00f fix(translator): handle missing parameters in Gemini tool schema gracefully
  • 346b663 fix(translator): handle non-JSON output gracefully in function call outputs
  • 72c7ef7 fix(translator): handle non-JSON output parsing for OpenAI function responses
  • 39621a0 fix(translator): normalize function calls and outputs for consistent input processing
  • 0bcae68 fix(translator): preserve raw JSON encoding in function call outputs
  • ddb0c0e fix(translator): reintroduce thoughtSignature bypass logic for model parts
  • 1c815c5 fix(translator): simplify string handling in Gemini responses
  • 1d0f030 refactor(api/config): centralize legacy OpenAI compatibility key migration
  • 327cc70 refactor(auth): use customizable HTTP client for Antigravity requests
  • d50b0f7 refactor(executor): simplify Gemini CLI execution and remove internal retry logic
  • db81331 refactor(middleware): extract request logging logic and optimize condition checks
  • 0586da9 refactor(registry): move Gemini 3 Pro Preview model definition to base set
  • 1ccb016 refactor(runtime): centralize reasoning effort logic for GPT models
  • 98596c0 refactor(translator): remove service_tier from Codex OpenAI request payload
  • 8193392 Add AMP fallback proxy and shared Gemini normalization
  • c86545d Add Chinese README and update project files
  • 3c0c61a Add Claude compatibility and enhance API handling
  • c62e45e Add Codex API key support and Gemini 2.5 Flash-Lite model documentation updates
  • 67e0b71 Add Codex load balancing documentation and refine JSON handling logic
  • 9b627a9 Add Docker Compose
  • 3687963 Add Docker support with CI/CD workflow and usage instructions
  • 2406cc7 Add GPT-5 Codex model support and configuration options in documentation
  • 3e09bc9 Add Gemini 2.5 Flash-Lite Model
  • b3607d3 Add Gemini-compatible API and improve error handling
  • c0eaa41 Add Gemini-to-Gemini request normalization and passthrough support
  • 6164f5c Add JSON annotations to configuration structs and new /config management endpoint
  • 7e0fd1e Add Keep-Alive header
  • 545dff8 Add OAuth support for Gemini CLI, Claude, Codex, and Qwen authentication
  • 9ef76dc Add Object Storage
  • 3acdec5 Add OpenAI Responses support
  • ce5d2ba Add OpenAI Responses support
  • ed8873f Add OpenAI compatibility support and improve resource cleanup
  • aa2f37d Add Qwen support
  • d292456 Add SOCKS5 and HTTP/HTTPS proxy support
  • 040d66f Add SSH tunnel guidance for login fallback
  • c263398 Add Telegram group link to Chinese README for user support
  • 5812229 Add .gitignore and ignore config.yaml
  • bea5f97 Add /v1/completions endpoint with OpenAI compatibility
  • c601542 Add ClaudeMessages handler for SSE-compatible chat completions
  • aa9fd05 Add FixCLIToolResponse for enhanced function call-response mapping
  • 54ffb52 Add FunctionCallIndex to ConvertCliToOpenAIParams and enhance tool call handling
  • 31a9e2d Add GeminiGetHandler, enhance Gemini functionality, and enable token counting
  • 423faae Add GeminiModels handler and enhance API key validation
  • bf08646 Add archive configuration to .goreleaser.yml
  • d58cc55 Add claude code support
  • 5ed79e5 Add debounce logic for file events to prevent duplicate reloads
  • c875088 Add dynamic log level adjustment and "type" field to auth files response
  • 3c4dc07 Add file watcher for dynamic configuration and client reloading
  • db43930 Add management API handlers for config and auth file management
  • 3704dae Add nil-check for GetRequestMutex across handlers to prevent potential panics
  • de7b850 Add openai codex support
  • f1d6f01 Add reasoning/thinking configuration handling for Claude and OpenAI translators
  • fcadf08 Add request logging capabilities to API handlers and update .gitignore
  • ad943b2 Add reverse mappings for original tool names and improve error logging
  • c4a42eb Add support for Codex API key authentication
  • 4155805 Add support for Codex model in provider logic and update documentation for claude code
  • 589ae6d Add support for Generative Language API Key and improve client initialization
  • e5ed2cb Add support for dynamic model providers
  • b84cbee Add support for forcing GPT-5 Codex model configuration
  • 1c4183d Add support for localhost unauthenticated requests
  • 9c9ea99 Add support for new GPT-5 model variants
  • 273e1d9 Add system instruction support and enhance internal API handlers
  • 512c8b6 Add token refresh handling for 401 responses across clients
  • 0331660 Add token refresh handling for 401 responses across clients
  • b05d00e Add versioning support to build artifacts and log outputs
  • 8d05489 Add versioning support to build artifacts and log outputs
  • ebf2a26 Avoid unnecessary config.yaml reloads via hash check
  • b3c534b Build instructions reformatting
  • aacfcae Codex CLI - setting 'store = false'
  • 9be56fe Correct config in README.md
  • ef8820e Default tokenType to an empty string instead of "gemini" in watcher.go and run.go.
  • 00f33f5 Enhance Gemini request handling for contents support and improve error logging
  • e64fa48 Enhance Gemini request handling with fallback support for contents
  • 58b7afd Enhance HTTP server with custom multiplexer in Auth flow
  • 0449fef Enhance OAuth handling for Anthropic, Codex, Gemini, and Qwen tokens
  • 551bc1a Enhance README formatting and update .dockerignore
  • 6d2f7e3 Enhance parseArgsToMap with tolerant JSON parsing
  • b125410 Enhance client reload process with new OpenAI compatibility support
  • 3dd0844 Enhance logging for API requests and responses across executors
  • 7cb76ae Enhance quota management and refactor configuration handling
  • fa8d949 Enhance response and request handling in translators
  • 35daffd Ensure auth directory existence before processing tokens in run.go
  • ae06f13 Extract argument parsing logic into parseArgsToMap helper function
  • ade279d Feature: #103
  • 74bae32 Filter OpenAI models response to include only essential fields (id, object, created, owned_by).
  • 3b2ab0d Fix SSE headers initialization for geminiStreamGenerateContent and internalStreamGenerateContent
  • beff928 Fix alt parameter handling in URL construction
  • ebcd4db Fix activation URL extraction logic and improve warning message formatting
  • 3d8d02b Fix amp v1beta1 routing and gemini retry config
  • 7353bc0 Fix bug: #38 about lobechat cors policy
  • 8c2063a Fix log key name from gpt-5-codex to force-gpt-5-codex for consistency
  • f9f2333 Fix model name update during quota check to avoid incorrect logging
  • e9e0016 Fix some bugs.
  • 11f090c Fixed #102
  • b641d90 Fixed #91
  • 99c9f30 Fixed bug #38
  • 4576f99 Fixed: #121
  • 4477c72 Fixed: #129 #123 #102 #97
  • 735b213 Fixed: #137
  • a552a45 Fixed: #140 #133 #80
  • eadccb2 Fixed: #148
  • 847c250 Fixed: #172
  • fd2b235 Fixed: #193
  • a7d105b Fixed: #223
  • 8ae8a5c Fixed: #233
  • 75b57bc Fixed: #246
  • 772fa69 Fixed: #254
  • 5937b8e Fixed: #260
  • e5e9859 Fixed: #263
  • cbcfeb9 Fixed: #291
  • d291eb9 Fixed: #302
  • ed9f6e8 Fixed: #337
  • a4a26d9 Fixed: #339
  • 7e30157 Fixed: #354
  • b727e4e Fixed: #86
  • d6f6712 Fixed: #97
  • f4977e5 Ignore GEMINI.md file
  • 1c92034 Implement IP-based rate limiting and ban mechanism for management API
  • 3b4634e Improve getClient logic with optional content generation flag
  • ead71fb Improve error logging and add user guidance for issue reporting
  • dff31a7 Improved the /v1/models endpoint
  • 1dccdb7 Merge branch 'cookie_snapshot' into dev
  • c52255e Merge branch 'dev'
  • d42384c Merge branch 'dev'
  • 1cd275f Merge branch 'dev'
  • 67a4fe7 Merge branch 'dev'
  • 9ff38dd Merge branch 'dev' into feat-amp-cli-module
  • 2e5681e Merge branch 'dev' into feat/claude-thinking-and-beta-headers
  • fa762e6 Merge branch 'dev' of github.com:luispater/CLIProxyAPI into dev
  • e0d1314 Merge branch 'main' into dev
  • 2a274d4 Merge branch 'main' into gemini-web
  • edf9d9b Merge branch 'main' of github.com:luispater/CLIProxyAPI
  • 1a9f939 Merge branch 'plus-dev' into feature/github-copilot-auth
  • 8c947ca Merge branch 'vertex' into dev
  • 65f47c1 Merge pull request #1 from chaudhryfaisal/main
  • 1ada33a Merge pull request #104 from router-for-me/cloud
  • 1834c65 Merge pull request #107 from router-for-me/gemini-web
  • f6e713a Merge pull request #110 from router-for-me/cloud
  • 2513d90 Merge pull request #111 from router-for-me/cloud
  • 0508c9f Merge pull request #113 from sususu98/main
  • 71faa19 Merge pull request #114 from router-for-me/management
  • f2710c0 Merge pull request #116 from router-for-me/log
  • 4fdbdf7 Merge pull request #117 from router-for-me/pg
  • 9072acc Merge pull request #118 from router-for-me/config
  • 32d01a6 Merge pull request #125 from router-for-me/object
  • ac4f52c Merge pull request #127 from router-for-me/usage
  • f58d0fa Merge pull request #130 from router-for-me/log
  • 8e95c5e Merge pull request #134 from router-for-me/hg
  • 674393e Merge pull request #139 from router-for-me/log
  • 0e91e95 Merge pull request #145 from router-for-me/path
  • c5dcbc1 Merge pull request #146 from router-for-me/iflow
  • fed6f3e Merge pull request #147 from router-for-me/config
  • 5b3fc09 Merge pull request #151 from VjayC/add-subtitle-translator
  • ba4c114 Merge pull request #16 from hkfires/main
  • 5da5674 Merge pull request #161 from router-for-me/aistudio
  • 3e20b00 Merge pull request #163 from router-for-me/nb
  • ac3d47e Merge pull request #173 from tobwen/feature/dynamic-model-routing
  • d6272d3 Merge pull request #177 from router-for-me/aistudio
  • 8dba32a Merge pull request #185 from router-for-me/thinking
  • 3e7b645 Merge pull request #186 from router-for-me/doc
  • 96c7271 Merge pull request #191 from router-for-me/gemini
  • 4d08046 Merge pull request #194 from router-for-me/gemini-key
  • 32c964d Merge pull request #221 from router-for-me/gemini
  • b9eef45 Merge pull request #222 from router-for-me/api
  • d4064e3 Merge pull request #225 from jeffnash/feat/codex-mini-variants
  • 3264605 Merge pull request #226 from router-for-me/headers
  • 87291c0 Merge pull request #227 from router-for-me/api
  • 7b9cfbc Merge pull request #23 from luispater/dev
  • 6ae1dd7 Merge pull request #230 from router-for-me/api
  • 09ecba6 Merge pull request #237 from TUGOhost/feature/support_auto_model
  • 1ede134 Merge pull request #249 from ben-vargas/fix-gpt5-1-reasoning
  • faa483b Merge pull request #257 from lollipopkit/main
  • 56a05d2 Merge pull request #26 from luispater/flash-lite
  • 567227f Merge pull request #268 from router-for-me/tools
  • 14ddfd4 Merge pull request #270 from router-for-me/iflow
  • c40e005 Merge pull request #274 from router-for-me/log
  • 9acfbcc Merge pull request #275 from router-for-me/iflow
  • 798f65b Merge pull request #28 from luispater/bugfix
  • 618511f Merge pull request #280 from ben-vargas/feat-enable-gemini-3-cli
  • 670ce2e Merge pull request #285 from router-for-me/iflow
  • b70bfd8 Merge pull request #287 from ben-vargas/feat-amp-cli-module
  • 4f18809 Merge pull request #29 from luispater/bugfix
  • b4d15ac Merge pull request #296 from router-for-me/antigravity
  • d1cdedc Merge pull request #303 from router-for-me/image
  • 7c3c24a Merge pull request #306 from router-for-me/usage
  • d10ef7b Merge pull request #31 from luispater/docker-build-sh
  • d1736cb Merge pull request #315 from router-for-me/aistudio
  • 0ceee56 Merge pull request #318 from router-for-me/log
  • 1aa0b6c Merge pull request #322 from ben-vargas/feat-claude-opus-4-5
  • 1305f2f Merge pull request #33 from luispater/docker
  • 9c1e3c0 Merge pull request #334 from nestharus/feat/claude-thinking-and-beta-headers
  • 0832122 Merge pull request #340 from nestharus/fix/339-thinking-openai-gemini-compat
  • 3675542 Merge pull request #343 from router-for-me/misc
  • 179b8aa Merge pull request #36 from luispater/ssh-tunnel
  • fa087ee Merge pull request #362 from em4go/feature/github-copilot-auth
  • 18b5c35 Merge pull request #366 from router-for-me/blacklist
  • 54a9c4c Merge pull request #371 from ben-vargas/test-amp-tools
  • d4dc7b0 Merge pull request #39 from luispater/config_hash
  • bd68472 Merge pull request #41 from kaixxx/main
  • 7f0c9b1 Merge pull request #43 from kyle-the-dev/fix/gemini-schema-sanitization
  • 9ec8478 Merge pull request #44 from luispater/gemini-web
  • 6ad5e07 Merge pull request #46 from router-for-me/cookie_snapshot
  • b449d17 Merge pull request #47 from router-for-me/dev
  • bc376ad Merge pull request #49 from router-for-me/gemini-web
  • c16a989 Merge pull request #50 from router-for-me/auth-dev
  • b07ed71 Merge pull request #51 from router-for-me/gemini-web
  • 83a1fa6 Merge pull request #52 from router-for-me/gemini-web
  • c28a5d2 Merge pull request #54 from router-for-me/v6-test
  • c9ce3a5 Merge pull request #55 from router-for-me/v6-test
  • 45d382f Merge pull request #57 from router-for-me/v6-test
  • c159180 Merge pull request #58 from router-for-me/v6-test
  • 361a69f Merge pull request #59 from router-for-me/gemini-web-v6
  • 68be2f0 Merge pull request #60 from router-for-me/v6-test
  • e9d2905 Merge pull request #61 from router-for-me/gemini-web
  • cc8c46d Merge pull request #62 from router-for-me/dev
  • 830b51c Merge pull request #63 from router-for-me/gemini-web
  • fc103f6 Merge pull request #64 from router-for-me/bugfix
  • 80b6a95 Merge pull request #65 from router-for-me/gemini-web
  • 7e54156 Merge pull request #66 from router-for-me/log
  • 9bbe644 Merge pull request #67 from router-for-me/rr
  • 4fd95ea Merge pull request #68 from router-for-me/log
  • c678ca2 Merge pull request #69 from router-for-me/reload
  • 250628d Merge pull request #70 from router-for-me/log
  • 8cfa228 Merge pull request #71 from ben-vargas/fix-max_output_tokens-codex-oauth
  • 8e88a61 Merge pull request #72 from router-for-me/log
  • beba2a7 Merge pull request #78 from router-for-me/gemini
  • cf5476e Merge pull request #82 from router-for-me/mgmt
  • 6b413a2 Merge pull request #83 from router-for-me/oaifix
  • 389c8ec Merge pull request #85 from router-for-me/iflow
  • 4bc8a52 Merge pull request #90 from router-for-me/dethink
  • a68e0dd Merge pull request #94 from router-for-me/gemini-web
  • d6721e4 Merge pull request #95 from router-for-me/gemini-web
  • 8056af4 Merge pull request #99 from router-for-me/banana
  • 3c5390a Merge remote-tracking branch 'origin/v6' into v6
  • 47b5ebf Modify docker compose for remote image and local build
  • 0371062 Normalize select to STRING type in Gemini OpenAI request outputs
  • 5ec6450 Numerous Comments Added and Extensive Optimization Performed using Roo-Code with CLIProxyAPI itself.
  • 4ecc798 Reduce the size of gemini-web's package files
  • ef68a97 Refactor API handlers and proxy logic
  • 1483c31 Refactor API handlers organization and simplify error response handling
  • 9102ff0 Refactor API handlers to implement retry mechanism with configurable limits and improved error handling
  • e73f165 Refactor API handlers to streamline response handling
  • 512f2d5 Refactor API request flow and streamline response handling
  • 6bbdf67 Refactor Gemini API handlers to standardize response field names and improve model descriptions
  • 70e9169 Refactor cliCancel calls to remove unused resp argument across handlers.
  • 79acea5 Refactor authentication and service initialization code
  • f49a530 Refactor client handling and improve error responses
  • 7209fa2 Refactor client map construction to include all client types and enhance callback updates
  • 8c555c4 Refactor codebase
  • 5aba4ca Refactor docker-compose config for simplicity and consistency
  • c5cc238 Refactor error handling and variable declarations in browser and logging modules
  • 20985d1 Refactor executor error handling and usage reporting
  • 582280f Refactor token management, client initialization, and project handling
  • e0bff9f Refactor translator packages for OpenAI Chat Completions
  • 305916f Refactor translator packages for OpenAI Chat Completions
  • e3994ac Refactor translator packages for OpenAI Chat Completions
  • e11637d Refactor translator packages for OpenAI Chat Completions
  • 1f46dc2 Refactor translator packages for OpenAI Chat Completions
  • bff6f66 Refactor translator packages for OpenAI Chat Completions
  • 57ead9a Refactor user onboarding and token management
  • d6037e5 Refine .gitignore and .dockerignore files
  • d00604d Refine Codex instructions for GPT-5 use case
  • 0983119 Remove API key truncation in Gemini client ID generation
  • b6f8677 Remove commented debug logging in ConvertOpenAIResponsesRequestToGeminiCLI
  • b0f7273 Remove redundant dataUglyTag parsing logic in streaming responses
  • d4f5ec2 Removed the cookie snapshot feature.
  • 8a2285e Reorganize and reintroduce Management API section in README files
  • d4709ff Replace path with filepath for cross-platform compatibility
  • 4375822 Resolve logsDir path relative to configuration directory in FileRequestLogger
  • 4e67cd4 Resolve relative logsDir to executable directory in FileRequestLogger
  • edeadfc Restrict CLI access to localhost and update README for Gemini compatibility
  • 156e3b0 Restrict management key validation to non-localhost requests only
  • d193307 Revert "feat(translator): Pass through imageConfig"
  • 3f78401 Set the default Docker timezone to Asia/Shanghai
  • d880d1a Set the http request header and update client metadata handling
  • 7a6adfa Suppress debug logs for model routing and ignore empty tools arrays
  • 9319602 UPDATE README
  • 09b9d3b Unlock mutex before returning error in handlers.go to prevent deadlocks
  • ee0a91f Update GitHub funding model with username
  • 9c6832c Update LICENSE to reflect extended copyright ownership
  • caf386c Update MANAGEMENT_API.md with expanded documentation for endpoints
  • 6d30faf Update Management API CN docs for authentication requirements
  • bdac24b Update PassthroughGeminiResponseStream to handle [DONE] marker
  • e074e95 Update README
  • 2a2a276 Update README
  • 1bb0d11 Update README
  • f1d9364 Update README documentation to clarify auth-dir configuration for Windows users
  • c2b2c9e Update README documentation to clarify auth-dir configuration for Windows users
  • 36ee21e Update README to include Codex support and multi-account load balancing details
  • 30d5d87 Update README to include Codex support and multi-account load balancing details
  • 2b1762b Update README to reflect usage of Qwen models instead of Claude models
  • 0652241 Update README to rename gpt-5-nano to gpt-5-minimal in usage examples
  • 00bd6a3 Update .goreleaser.yml to include config.example.yaml instead of config.yaml in release assets
  • d2394b0 Update .goreleaser.yml to specify archive formats for different OS targets
  • ed6e775 Update config key gpt-5-codex to force-gpt-5-codex for clarity in example configuration file
  • 4883349 Update doc
  • 0b02693 Update example configuration file (config.example.yaml)
  • 9fce13f Update internal module imports to use v5 package path
  • 1aad033 Update issue templates
  • 46fa32f Update log level in OpenURL function from Debug to Info
  • 8dd7f8e Update model name to include release date in API handlers
  • f38b78d Update the README to include Docker Compose usage instructions
  • ef922b2 Update workflows and build process for enhanced metadata injection
  • d410421 Updated README.md
  • b7d6ae1 Windows build instructions
  • 240e782 add default medium reasoning case for gpt-5-codex-mini
  • ec354f7 add default medium reasoning case for gpt-5-codex-mini
  • 7b546ea build(goreleaser): inject build metadata into binary during release
  • 3be6175 chore(auth): add debug log for iflow token response body
  • 19c32f5 chore(config): comment out API keys and update default settings for logging and usage statistics
  • 0db0b03 chore(docs): add and refine package-level comments across modules
  • 72325f7 chore(docs): remove outdated allow-localhost-unauthenticated section from API docs
  • 4832297 chore(docs): update README with GUI client, WebUI links, and detailed SDK documentation
  • c6b3913 chore(executor): add debug logging for API request errors
  • c5df806 chore(executor): add debug logging for API request errors
  • 5010b09 chore(gitignore): add cli-proxy-api to ignored files
  • aa25820 chore(log): Refine debug messages for config reloads
  • 837ae1b chore(logging): add debug logs for executor Refresh methods
  • 1bbbd16 chore(logging): clarify 429 rate-limit retries in Gemini executor
  • cb83985 chore(server): remove debug println statement from server.go
  • f9a170a chore(watcher): Clarify API key client reload log message
  • 80f6d6f chore(watcher): add YAML serialization for config change tracking and improve quota-exceeded debug logs
  • 06a3e97 chore: Ignore .serena directory
  • 70ee4e0 chore: remove unused httpx sdk package
  • 03334f8 chore: revert gitignore change
  • af82855 chore: update .gitignore include .env
  • fb76071 ci(homebrew): add workflow to auto-bump Homebrew formula on release
  • 9ff21b6 ci(homebrew): remove workflow for Homebrew formula bump
  • 5546c9d ci(homebrew): trigger workflow on tag push instead of release event
  • 848a620 ci: add GitHub Action to block changes under internal/translator directory in PRs
  • c4e3646 docs(config): expand model exclusion examples
  • 695eaa5 docs(instructions): add Codex operational and review guidelines
  • 41975c9 docs(management): document remote-management.disable-control-panel option
  • 97af785 docs(readme): add CLIProxyAPI Linux installer instructions
  • 6ec0288 docs(readme): add MANAGEMENT_PASSWORD environment variable documentation
  • 5891785 docs(readme): clarify model definition and add usage example for undefined models
  • 92bb642 docs(readme): document Git-backed configuration and token store setup
  • 3ffd87d docs(sdk-access): add SDK usage guides in English and Chinese
  • 8aaed4c feat(aistudio): support non-streaming responses
  • c32e013 feat(aistudio): track Gemini usage and improve stream errors
  • 7b7871e feat(api): add oauth excluded model management
  • 28218ec feat(api): implement granular client type metrics in server updates
  • 20f3e62 feat(auth): Add stable label to Gemini Web tokens for logging
  • f228a4d feat(auth): Enhance Gemini web auth with flexible input and UI
  • a45d210 feat(auth): Improve Gemini web auth with email label detection
  • 8ca041c feat(auth): Use user info for iFlow auth identifier
  • 2724630 feat(auth): add Gemini Web token saving endpoint
  • 3a9ac7e feat(auth): add GitHub Copilot authentication and API integration
  • 4fd70d5 feat(auth): add callback forwarder support for Web UI in OAuth flows
  • b52a5cc feat(auth): add iFlow cookie-based authentication support
  • f1f24f5 feat(auth): add iFlow provider support with multi-account load balancing
  • 96cebd2 feat(auth): add interactive prompts to Gemini web auth flow
  • 5983e3e feat(auth): add oauth provider model blacklist
  • f6de2a7 feat(auth): add per-key proxy support and enhance API key configuration handling
  • 8fc7387 feat(auth): centralize token store management and enhance persistence
  • e68a603 feat(auth): enable model suspension and resumption logic in AuthManager
  • ac3ecd5 feat(auth): enhance Gemini CLI onboarding and project verification
  • 8fa52e9 feat(auth): enhance Gemini web auth with macOS support and input fallback
  • 1c91823 feat(auth): enhance DoLogin to include Gemini CLI user onboarding flow
  • 6046a8c feat(auth): enhance watcher with asynchronous dispatch and buffering
  • 792ec49 feat(auth): implement incremental auth updates with queue integration
  • 2eef687 feat(auth): improve OpenAI compatibility normalization and API key handling
  • 3933762 feat(auth): include email attribute in auth files response
  • 4008be1 feat(auth): introduce auth.providers for flexible authentication configuration
  • ab55373 feat(auth): introduce per-model state tracking and enhanced error handling
  • 7c642be feat(auth): normalize OpenAI compatibility entries and enhance proxy configuration
  • 2e836ce feat(auth): standardize last_refresh metadata handling across executors
  • a4767fd feat(auth, docs): add SDK guides and local password support for management
  • 9761ac5 feat(auth, docs): add label support for Gemini web token management
  • ce569ab feat(buildinfo): add build metadata and expose via HTTP headers
  • 6b23e2d feat(claude): add Claude 4.5 Haiku model definition
  • c7196ba feat(claude): add model alias mapping and improve key normalization
  • d0e694d feat(claude): add thinking model variants and beta headers support
  • 41577bc feat(claude): map Anthropic 'thinking' to Gemini thinkingBudget
  • 11b0efc feat(claude-executor): add ZSTD decoding support for Claude executor responses
  • 514f5a8 feat(cliproxy): Rebind auth executors on config change
  • 49c52a0 feat(cliproxy): enhance OpenAI compatibility detection and executor registration
  • 24446a4 feat(cliproxy): skip persisting runtime-only websocket auths
  • 022aa81 feat(cliproxy): support wildcard exclusions for models
  • 829dd06 feat(cliproxy/auth): restructure auth candidate selection and ensure synchronization
  • fc6aa8e feat(config): Gracefully handle empty or invalid optional config
  • 5fd4a8b feat(config): Remove OpenAI providers with empty BaseURL
  • 0aa8706 feat(config): Treat empty BaseURL for Codex keys as deletion
  • f8cebb9 feat(config): add per-key model blacklist for providers
  • 4c033b3 feat(config): disable logging and usage stats by default
  • cfb9cb8 feat(config): support HTTP headers across providers
  • 4bc1ed6 feat(config): use block style for YAML maps/lists; keep [] for empty
  • 0d8134a feat(config): use block style for YAML maps/lists; keep [] for empty
  • 25ba042 feat(config, usage): add usage-statistics-enabled option and dynamic toggling
  • ac59023 feat(executor): add CountTokens support across all executors
  • e783923 feat(executor): add debug logs for rate-limiting retries in Gemini CLI executor
  • 6a3de3a feat(executor): add intelligent retry logic for 429 rate limits
  • 4ba5b43 feat(executor): share SSE usage filtering across streams
  • 1b2e3dc feat(gemini): Implement pseudo-streaming and improve context reuse
  • 7c1c4ee feat(gemini): add Gemini API key endpoints
  • a53c84d feat(gemini): apply default safety settings across request translators
  • 3ac5f05 feat(gemini): prefer official reasoning fields, add extra_body(cherry studio) fallback
  • d0aa741 feat(gemini-cli): add multi-project support and enhance credential handling
  • e313d39 feat(gemini-executor): implement CountTokens method with request translation and API integration
  • 5cb3782 feat(gemini-translators): set include_thoughts when mapping thinking
  • 82187bf feat(gemini-web): Add conversation affinity selector
  • 8858e07 feat(gemini-web): Add support for custom auth labels
  • 41effa5 feat(gemini-web): Add support for image generation with Gemini models through the OpenAI chat completions translator.
  • deaa64b feat(gemini-web): Add support for real Nano Banana model
  • 9bb7df7 feat(gemini-web): Enable config hot-reload and fix Gem selection
  • 22a6933 feat(gemini-web): Implement proactive PSIDTS cookie rotation
  • f2201da feat(gemini-web): Index and look up conversations by suffix
  • 50c8f7f feat(gemini-web): Inject fallback text for image-only flash model responses
  • 2175a10 feat(gemini-web): Introduce stable account label for identification
  • 6080527 feat(gemini-web): Namespace conversation index by account label
  • 43665cb feat(gemini-web): Replace code-mode with flexible gem-mode
  • e4dd22b feat(gemini-web): squash all features and fixes for gemini-web
  • c8029b7 feat(iflow): Add User-Agent header to API requests
  • 3f4f8b3 feat(iflow): add cookie-based authentication endpoint
  • 4504ba5 feat(iflow): add masked token logs; increase refresh lead to 24h
  • 395164e feat(log): Add separator when saving client credentials
  • 9f45806 feat(logging): centralize sensitive header masking
  • f1c4caf feat(logging): integrate logrus with custom Gin middleware for enhanced request logging and recovery
  • cf734f7 feat(logging): introduce centralized logging with custom format and Gin integration
  • 6d98a71 feat(login): add interactive project selection and improve onboarding flow
  • 943a8c7 feat(logs): add limit query param to cap returned logs
  • 2e328dd feat(management): Improve logging for management route status
  • ab76cb3 feat(management): add Vertex service account import and WebSocket auth management
  • 72cb268 feat(management): add log retrieval and cleanup endpoints
  • 4a31f76 feat(management): add proxy support for management asset synchronization
  • c589c0d feat(management): add support for control panel asset synchronization
  • c9fc033 feat(management): support in-memory auth listing with disk fallback
  • b5ad978 feat(managementasset): Authenticate GitHub API requests
  • c75e524 feat(managementasset): add MANAGEMENT_STATIC_PATH override
  • 57195fa feat(managementasset): enforce 3-hour rate limit on management asset update checks
  • f8dcd70 feat(mgmt): support YAML config retrieval and updates via /config.yaml
  • d03a75d feat(middleware): add path exclusion for request logging in management routes
  • b2ca493 feat(models): add support for Claude 4.5 Sonnet model in registry
  • e41d127 feat(openai-compat): enhance provider key handling and model resolution
  • 9253bdb feat(provider): Introduce dedicated provider type for Gemini-Web
  • 562a49a feat(provider/gemini-web): Prioritize explicit label for account identification
  • 6b5aefc feat(proxy): add SOCKS5 support and improve proxy handling
  • 9abcaf1 feat(registry): Add display names and descriptions for iFlow models
  • 43f007c feat(registry): add Claude Opus 4.5 model definition
  • fcb0293 feat(registry): add GPT-5 Codex Mini model variants
  • 2d5d06c feat(registry): add Qwen3 Vision Model definition #164
  • 07da781 feat(registry): add client model support check for executor filtering
  • 3d7aca2 feat(registry): add thinking budget support; populate Gemini models
  • 782bba0 feat(registry): enable gemini-3-pro-preview for gemini-cli provider
  • 5dced4c feat(registry): unify Gemini models and add AI Studio set
  • d45ebff feat(registry, executor): add support for gemini-2.5-flash-image model
  • b2cdbbd feat(registry, executor): add support for glm-4.6 model and enhance Gemini CLI token handling
  • 20787cd feat(registry, executor, util): add support for gemini-2.5-flash-image-preview and improve aspect ratio handling
  • bbdd68a feat(registry/runtime): add Gemini 2.5 model and increase buffer sizes
  • 9d42e4b feat(runtime): add User-Agent headers to codex and claude executors
  • de796ac feat(runtime): introduce newProxyAwareHTTPClient for enhanced proxy handling
  • 12c09f1 feat(runtime): remove previous_response_id from Codex executor request body
  • 19a0488 feat(runtime): track antigravity usage and token counts
  • 19b10cb feat(sdk/auth): extend Gemini Web refresh lead to 1 hour
  • ac01c74 feat(server): Add cloud deploy mode
  • 5a50856 feat(server): add keep-alive endpoint with timeout handling
  • 506e2e1 feat(server): inject build metadata into application logs and container image
  • b1fee5d feat(server): introduce DefaultConfigPath for streamlined configuration
  • 50c8448 feat(store)!: Lock AuthDir when use gitstore/pgstore
  • 78989d6 feat(store)!: Lock AuthDir when use gitstore/pgstore
  • 42087d5 feat(store): add PostgreSQL-backed config store with env selection
  • 5123cfd feat(store): add PostgreSQL-backed config store with env selection
  • a83978f feat(store): introduce GitTokenStore for token persistence via Git backend
  • a602ae8 feat(translator): Add support for openrouter image_config
  • 01be94a feat(translator): Map OpenAI modalities to Gemini responseModalities
  • c5d7137 feat(translator): Pass through imageConfig
  • 2f477df feat(translator): add built-in translator registry and helpers
  • ede4471 feat(translator): add default thinkingConfig for gemini-3-pro-preview
  • 40255b1 feat(translator): add usage metadata aggregation for Claude and OpenAI responses
  • 6524d3a feat(translator): add usage metadata mapping for Gemini responses
  • 6d4b43d feat(translator): add user metadata generation for Claude transformation requests
  • 644a3ad feat(translator): emit response.output_item.done event for reasoning summary completion
  • 5999864 feat(translator): enhance OpenAI Gemini request handling for mixed content
  • c945e35 feat(translator): improve Claude request handling with enhanced content processing
  • dc8d320 feat(translator): support image size and googleSearch tools
  • 31659c7 feat(translator/gemini-cli): support inline image data in responses
  • 3dd5095 feat(translators): add token counting support for Claude and Gemini responses
  • 5090d98 feat(translators): improve system instruction extraction and input handling for OpenAI and Claude responses
  • d41ff20 feat(translators): improve system instruction extraction and input handling for OpenAI and Claude responses
  • 9df04d7 feat(translators/claude): implement non-streaming response parsing for various translator types
  • 19609db feat(usage): add in-memory usage statistics tracking and API endpoint
  • 32a8102 feat(usage): add support for tracking request source in usage records
  • 3ade03f feat(usage): implement usage tracking infrastructure across executors
  • 717eadf feat(vertex): add support for Vertex AI Gemini authentication and execution
  • 592f6fc feat(vertex): add usage source resolution for Vertex projects
  • d6bd6f3 feat(vertex, management): enhance token handling and OAuth2 integration
  • 88f06fc feat(watcher): Log detailed diff for openai-compatibility on reload
  • 02e28bb feat(watcher): add support for proxy_url in auth metadata
  • 40f7061 feat(watcher): debounce config reloads to prevent redundant operations
  • 39e398a feat(watcher): ensure reload callback triggers before auth refresh
  • a7d2f66 feat(watcher): expand event handling for config and auth JSON updates
  • f60ef0b feat(watcher): implement incremental client hot-reloading
  • 3297f75 feat(watcher, auth): add stable hash for OpenAI compatibility models
  • 359b8de feat(ws): add WebSocket auth
  • 9ad0f3f feat: Add Amp CLI integration with comprehensive documentation
  • 4657c98 feat: Add option to disable management control panel
  • 580ec73 feat: Add support for Gemini Web via cookie authentication
  • b839e35 feat: Add support for iFlow provider
  • ad4d045 feat: Restore API key config in config file
  • 9678be7 feat: add DisableCooling configuration to manage quota cooldown behavior
  • 92f4278 feat: add auto model resolution and model creation timestamp tracking
  • df66046 feat: add client availability tracking and error handling improvements
  • 172f282 feat: add graceful shutdown for streaming response handling
  • 0d89a22 feat: add handling for function call finish reasons in OpenAI response conversion
  • 24f243a feat: add support for Gemini 2.5 Flash image preview alias
  • 3839d93 feat: add websocket routing and executor unregister API
  • 3569e57 feat: enhance quota management with backoff levels and cooldown logic
  • d5ad5fa feat: enhance request logging and account handling in CLI proxy
  • 243bf5c feat: enhance tool call handling in OpenAI response conversion
  • 67f5538 feat: implement management asset configuration and auto-updater
  • 869a3df feat: implement model-specific Codex instructions for GPT-5
  • 0607e52 feat: implement token refresh support for executors
  • d225558 feat: improve error handling with added status codes and headers
  • f81898c feat: introduce custom provider example and remove redundant debug logs
  • d16599f feat: prefer util.WritablePath() for logs and local storage
  • 827bd6e first commit
  • 08856a9 fix(access): Exclude inline provider from reconciliation changes
  • b6d5ce2 fix(access): Force rebuild of aliased provider configurations
  • 6d822cf fix(access): rebuild providers for specific AccessProviderTypeConfigAPIKey changes
  • 7f266aa fix(aistudio): ensure colon-spaced JSON in responses
  • 7459c2c fix(aistudio): remove generationConfig and tools when action is countTokens
  • c99d0df fix(aistudio): remove no-op executor unregister on WS disconnect
  • 62bfd62 fix(aistudio): strip Gemini generation config overrides
  • ea6065f fix(aistudio): strip usage metadata from non-final stream chunks
  • db1119d fix(amp): add /threads.rss root-level route for AMP CLI
  • 7ae0032 fix(amp): enable OAuth fallback for Gemini v1beta1 routes
  • 72d8226 fix(amp): filter context-1m beta header for local OAuth providers
  • 608d745 fix(api): Enable management routes based on secret key presence
  • 1f6a384 fix(api): omit auth file entries lacking path unless runtime-only
  • eac8b1a fix(auth): Correct iFlow OAuth callback port to 11451
  • 759bb88 fix(auth): Improve file-based auth handling and consistency
  • e836b4a fix(auth): Make round-robin auth selection deterministic
  • 64f4c18 fix(auth): Return error if iFlow API key fetch fails
  • c63dc7f fix(auth): Scope unavailability checks to specific models
  • 5bf7a95 fix(auth): address index logic bug and remove redundant conditions
  • 6a19135 fix(auth): fix runtime auth reload on oauth blacklist change
  • ec08500 fix(auth): resolve drain label for correct loop termination in cliproxy service
  • 27faf71 fix(auth): use fixed antigravity callback port 51121
  • c73b3fa fix(claude translator): guard tool schema properties
  • e73cdf5 fix(claude): ensure max_tokens exceeds thinking budget for thinking models
  • 5ab0854 fix(claude): track message_start event in streaming response
  • d9f8129 fix(client): Add reason to unregistration to skip persistence
  • f17ec7f fix(client): Prevent overwriting auth file on update
  • 6bd37b2 fix(client): Prevent overwriting auth file on update
  • b0f2ad7 fix(cliproxy): Clear stale compatibility model registrations
  • dd1e0da fix(cliproxy): Use model name as fallback for ID if alias is empty
  • b86ed46 fix(codex): Remove reasoning.effort for default gpt-5-codex model
  • da72ac1 fix(config): Inline SDKConfig for proper YAML parsing
  • 16be3f0 fix(config): dedupe and normalize Gemini keys and headers
  • 2021ae3 fix(config): skip persisting empty API key and compat entries
  • 5c65938 fix(config): stabilize YAML sequence merges by reordering items
  • 78738ca fix(config): treat directory as absent for optional config in cloud deploy mode
  • c8f20a6 fix(executor): add logging and prompt cache key handling for OpenAI responses
  • 38cfbac fix(executor): adjust Anthropic-Beta header handling for consistent API requests
  • 5be4d22 fix(executor): ensure consistent header application in Claude API requests
  • ef7e820 fix(executor): ensure usage reporting for upstream responses lacking usage data
  • 8356b35 fix(executor): expire stop chunks without usage metadata
  • 7dd93a4 fix(executor): only apply thinking config to supported models
  • 663b9b3 fix(executor): pass authID to relay instead of provider
  • ed23472 fix(executor): prevent streaming from 429 response when fallback available
  • 0ff094b fix(executor): prevent streaming on failed response when no fallback
  • 89b0d53 fix(executor): remove safetySettings from payload for Gemini requests
  • 64774a5 fix(executor): remove safetySettings from payload in token counting request
  • 67ad26c fix(executor): remove default reasoning effort for gpt-5-codex-mini
  • 3ce1b41 fix(executor): remove outdated Gemini model previews from CLI fallback order
  • 30d448e fix(executor): update model name from codex-mini-latest to gpt-5-codex-mini
  • c62ecc2 fix(gemini): Disable thinking config for incompatible models
  • 88e5662 fix(gemini): filter SSE usage metadata in streams
  • 48bbd9e fix(gemini): handle "[DONE]" chunk, trim "data:" prefix, and remove session_id from requests
  • 7061cd6 fix(gemini): map responseModalities to uppercase IMAGE/TEXT
  • 166fa9e fix(gemini): parse stream usage from JSON, skip thoughtSignature
  • b018072 fix(gemini): trim "data:" prefix in raw JSON and resolve variable shadowing in stream translation
  • eb2549a fix(gemini): update response template to omit finishReason until known
  • 58d3036 fix(gemini-cli): correctly strip/normalize thinking config by model
  • abc2465 fix(gemini-cli): ignore thoughtSignature and empty parts
  • e370f86 fix(gemini-executor): uppercase responseModalities
  • 1d70336 fix(gemini-web): Correct ambiguity check in conversation lookup
  • 108dcb7 fix(gemini-web): Correct history on conversation reuse
  • bb6ec7c fix(gemini-web): Correct inaccurate cookie refresh log message
  • 73cf491 fix(gemini-web): Correct stream translation and reduce auth refresh lead
  • d33a89b fix(gemini-web): Ignore tool messages to fix sticky selection
  • 1d7abc9 fix(gemini-web): ensure colon spacing in JSON output for compatibility
  • b285b07 fix(iflow): adjust auth filename email sanitization
  • 7980f05 fix(iflow): streamline authentication callback handling and improve error reporting
  • cd0b1be fix(log): Reduce noise on metadata updates and provider sync
  • 4923237 fix(log): Trim trailing newlines to prevent blank log lines
  • 314125e fix(logging): Prevent race conditions in FileStreamingLogWriter
  • df3b006 fix(logs): ignore ENOENT when truncating default log file
  • 43095de fix(management): exclude disabled runtime-only auths from file entries
  • dc804e9 fix(management): improve error handling and normalize YAML comment indentation
  • 51d2766 fix(management): sanitize keys and normalize headers
  • f335aee fix(postgresstore): normalize config line endings for DB/disk writes
  • d6aa1e5 fix(postgresstore): normalize config line endings for DB/disk writes
  • 2717ba3 fix(registry): Avoid provider update when new provider is empty
  • 63af4c5 fix(registry): Fix provider change logic for new models
  • a887a33 fix(registry): Handle duplicate model IDs in client registration
  • e18e288 fix(registry): Remove gemini-2.5-flash-image Gemini models from gemini cli and add gemini-2.5-flash-image preview to AIStudio
  • e1de042 fix(registry): Reset client status on model re-registration
  • 7516ac4 fix(registry): add gemini-3-pro-preview-11-2025 model to Gemini CLI model definitions
  • 0895533 fix(registry): correct Claude Opus 4.5 created timestamp
  • d745f07 fix(registry): replace Gemini model list with updated stable and preview versions
  • 9c5ac29 fix(request_logging): update logging conditions to include only /v1 paths
  • c419264 fix(responses): handle empty and invalid rawJSON in ConvertOpenAIChatCompletionsResponseToOpenAIResponses
  • cfbaed0 fix(runtime): remove gpt-5.1 minimal effort variant
  • d32bb9d fix(runtime): treat non-empty finishReason as terminal
  • 843a81f fix(server): Handle empty/invalid config in cloud deploy mode
  • 9e10573 fix(server): add PATCH method to CORS allowed methods
  • cd4706f fix(server): resolve incorrect variable usage in management asset paths
  • 84fa497 fix(server): snapshot config with YAML to handle in-place mutations
  • bb00436 fix(service): skip disabled auth entries during executor binding
  • 8ce22b8 fix(sse): preserve usage metadata for stop chunks
  • d60040b fix(translator): accept camelCase thinking config in OpenAI→Gemini
  • 680b3f5 fix(translator): avoid default thinkingConfig in Gemini requests
  • 682c459 fix(translator): handle gjson strings in OpenAI response formatting
  • c29931e fix(translator): ignore empty JSON chunks in OpenAI responses
  • 0defb68 fix(translator): improve error handling for function parameters schema transformation
  • b05cfd9 fix(translator): include empty text chunks in responses
  • 734b040 fix(translator): remove strict field from Gemini Claude tool initialization
  • 10be026 fix(translator): remove strict field from Gemini Claude tool initialization
  • af3fbd1 fix(translator): remove strict key from function declaration to prevent errors during schema transformation
  • 2965bda fix(translator): remove debug print statement from OpenAI Gemini request processing
  • 9e3b849 fix(translator): remove unsupported token limit fields for Codex Responses API
  • 1afbc4d fix(translator): separate tool calls from content in OpenAI Claude requests
  • 2a73d8c fix(translator): simplify tool response handling and adjust JSON schema updates in Gemini modules
  • 5d806fc fix(translator): support system instructions with parts and inline data in OpenAI Gemini requests
  • 2a3ee8d fix(translators): normalize thinking budgets
  • cf9a748 fix(watcher): Prevent infinite reload loop on rapid config changes
  • f97954c fix(watcher): enhance API key client counting and logging
  • 57484b9 fix(watcher): improve client reload logic and prevent redundant updates
  • e9037fc fix(windows): Improve path handling and file read reliability
  • 15981aa fix: add Claude→Claude passthrough to prevent SSE event fragmentation
  • a0c389a fix: comprehensive JSON Schema sanitization for Claude to Gemini
  • 8a33f3e fix: detect HTML error bodies without text/html content type
  • 1061354 fix: handle empty and non-JSON SSE chunks safely
  • 9cdef93 fix: initialize contentBlocks with an empty slice and improve content handling in ConvertOpenAIResponseToClaudeNonStream
  • 46b4110 fix: preserve SSE usage metadata-only trailing chunks
  • 5a2bebc fix: remove duplicate CountTokens stub
  • 1ba0571 fix: use underscore suffix in short name mapping
  • 84248b6 merge
  • afff921 perf(watcher): Avoid unnecessary auth dir scan on config reload
  • f5dc380 rebuild branch
  • b56edd4 refactor(access): Introduce ApplyAccessProviders helper function
  • 1dbb930 refactor(access): centralize configaccess.Register and remove redundant calls
  • 6557d9b refactor(access): migrate config-api-key provider to internal package
  • d512f20 refactor(access): migrate to SDKConfig for authentication and provider management
  • edd4b4d refactor(api): Lazily register management routes
  • fd795ca refactor(api): Use middleware to control management route availability
  • aba719f refactor(auth): Centralize auth file reading with snapshot preference
  • 2274d74 refactor(auth): Centralize logging for saving credentials
  • 56b2dab refactor(auth): Introduce generic cookie snapshot manager
  • 9b80820 refactor(auth): Move candidate sorting to RoundRobinSelector
  • 053134f refactor(auth): remove unused Refresh methods from authenticators
  • bb8f931 refactor(auth): replace FileStore with FileTokenStore for unified token persistence
  • 72ffeb7 refactor(auth): replace NextRefreshAfter with NextRetryAfter for clarity and consistency
  • d01c490 refactor(auth): replace TokenRecord with coreauth.Auth and migrate TokenStore to coreauth.Store
  • e3be548 refactor(auth): replace log calls with fmt for improved consistency and standard output usage
  • 7c157d6 refactor(auth): simplify inline API key provider logic and improve configuration consistency
  • 39518ec refactor(client): Improve auth file handling and client lifecycle
  • ed87dda refactor(client): remove deprecated and unused methods for cleaner session handling and core auth management
  • 5888e04 refactor(cliproxy): remove unused access provider refresh logic
  • c675cf5 refactor(config): Implement reconciliation for providers and clients
  • 57c9ba4 refactor(config): migrate to SDKConfig and streamline proxy handling
  • 58f74eb refactor(config): remove force-gpt-5-codex option and related handlers
  • a00ba77 refactor(config): rename SyncGeminiKeys; use Sanitize* methods
  • c43f0ea refactor(config): rename model blacklist fields to excluded models
  • 688547b refactor(config, auth): remove allow-localhost-unauthenticated support and related handlers
  • 7632204 refactor(cookie): Extract cookie snapshot logic to util package
  • efd28bf refactor(copilot): address PR review feedback
  • 2c296e9 refactor(copilot): improve code quality in authentication module
  • 7ea8835 refactor(executor): centralize header application logic for executors
  • 7515090 refactor(executor): improve concurrency and code quality in GitHub Copilot executor
  • a2c5fda refactor(executor): remove ClientAdapter and legacy fallback logic
  • 514add4 refactor(executor): remove redundant handling of "reasoning.effort" in gpt-5 and gpt-5-codex models
  • a517290 refactor(executor): summarize API error bodies of html in debug logs
  • 9810834 refactor(gemini-web): Centralize HTTP client creation for media
  • 7f2e2fe refactor(gemini-web): Consolidate conversation data into single BoltDB file
  • 0d4cb9e refactor(gemini-web): Improve client robustness and code reuse
  • e9707c2 refactor(gemini-web): Move provider logic to its own package
  • 8e485e5 refactor(gemini-web): Remove auto-refresh, auto-close, and caching
  • 7a30e65 refactor(gemini-web): Remove file-based PSIDTS cookie caching
  • 75d7763 refactor(gemini-web): Rename flash image preview model ID
  • c76b878 refactor(gemini-web): Standardize logging with logrus
  • d32fc04 refactor(headers): centralize header logic using EnsureHeader utility
  • 3ca01b6 refactor(logging): Improve client loading and registration logs
  • ac93641 refactor(logging, mgmt): update timestamp format in logs and remove force-gpt-5-codex handlers
  • ae646fb refactor(login): disable geminicloudassist API check in required services list
  • 9e2d76f refactor(login): enhance project ID normalization and onboarding logic
  • b895018 refactor(provider): remove Gemini Web cookie-based provider
  • c3f8812 refactor(provider): remove Gemini Web cookie-based support
  • 832268c refactor(proxy): improve SOCKS5 proxy authentication handling
  • 0f55e55 refactor(registry): Preserve duplicate models in client registration
  • 352a678 refactor(runtime): move Anthropic-Beta header setting to applyClaudeHeaders for better header management
  • 6629cad refactor(server): remove unused context and managementasset references
  • d6bb143 refactor(translator): Remove unused logrus imports
  • 92c8cd7 refactor(translator): remove unnecessary debug log in ConvertOpenAIRequestToGeminiCLI function
  • f6cf784 refactor(translator): remove unused log dependency and comment out debug logging
  • 582677d refactor(usage): replace channel-based queue with mutex-protected slice
  • 6136a77 refactor(util): Centralize auth directory path resolution
  • 06e6f0a refactor(watcher): Extract config change logging to new function
  • 8f0a345 refactor(watcher): Filter irrelevant file system events early
  • 4bfafbe refactor(watcher): Move API key client creation to watcher package
  • e8e00d4 refactor(watcher): Remove unnecessary log separator
  • 39abde2 refactor(watcher): remove redundant quota-exceeded change logs
  • 0e0602c refactor(watcher): restructure client management and API key handling
  • f3f3127 refactor(wsrelay): rename RoundTrip to NonStream
  • c0fbc19 refactor: remove redundant Codex instruction validation logic
  • e5a6fd2 refactor: standardize dataTag processing across response translators
  • d9ad656 refactor: standardize constant naming and improve file-based auth handling
  • 307ae76 refactor: streamline ConvertCodexResponseToGeminiNonStream by removing unnecessary buffer and improving response handling
  • 3f69254 remove all
  • a6cb16b security: fix localhost middleware header spoofing vulnerability
  • 6c17dbc style(amp): tidy whitespace in proxy module and tests
  • 4999fce v6 version first commit

Don't miss a new CLIProxyAPIPlus release

NewReleases is sending notifications on new releases.