Commit Graph
100 Commits
Author SHA1 Message Date
CaIon a9982ef244 Remove deprecated components and hooks 2026-02-05 23:04:49 +08:00
CaIon d13fa74368 Update .gitattributes to enhance text file handling and mark additional file types for LF normalization and binary detection 2026-02-05 22:57:32 +08:00
CaIon 493dbd2acb Add .gitattributes to mark frontend as vendored 2026-02-05 22:53:07 +08:00
CaIon 0e095d4ad8 feat(api): add 'cookie' to passthroughSkipHeaderNamesLower 2026-02-05 22:16:35 +08:00
CaIon 17be836aa4 feat(oauth): implement custom OAuth provider management #1106
- Add support for custom OAuth providers, including creation, retrieval, updating, and deletion.
- Introduce new model and controller for managing custom OAuth providers.
- Enhance existing OAuth logic to accommodate custom providers.
- Update API routes for custom OAuth provider management.
- Include i18n support for custom OAuth-related messages.
2026-02-05 21:18:43 +08:00
CaIon 424595e620 feat(oauth): migrate GitHub user identification from login to numeric ID 2026-02-05 20:30:48 +08:00
CaIon 7801dc6762 refactor: unify OAuth providers with i18n support
- Introduce Provider interface pattern for standard OAuth protocols
- Create unified controller/oauth.go with common OAuth logic
- Add OAuthError type for translatable error messages
- Add i18n keys and translations (zh/en) for OAuth messages
- Use common.ApiErrorI18n/ApiSuccessI18n for consistent responses
- Preserve backward compatibility for existing routes and data
2026-02-05 20:21:38 +08:00
Calcium-IonandGitHub eaee7a99d1 Merge pull request #2853 from QuantumNous/remove/claude-legacy-models
remove: drop support for claude-2 and claude-1 series models
2026-02-05 17:26:29 +08:00
CaIon 330e1e6395 remove: drop support for claude-2 and claude-1 series models
- Remove claude-instant-1.2, claude-2, claude-2.0, claude-2.1 from model lists
- Remove /v1/complete endpoint support (legacy completion API)
- Remove RequestModeCompletion and related code paths
- Simplify handler functions by removing requestMode parameter
- Update all channel adaptors that referenced claude handlers
2026-02-05 17:20:46 +08:00
Calcium-IonandGitHub 3b1866b6af Merge pull request #2848 from seefs001/fix/gemini-empty-responses-local-usage
fix: charge local input tokens when Gemini returns empty response
2026-02-05 16:24:23 +08:00
Calcium-IonandGitHub b3934e83e2 Merge pull request #2842 from QuantumNous/feat/backend-i18n
feat: backend i18n
2026-02-05 01:57:44 +08:00
Calcium-IonandGitHub c5efbe47bf Merge pull request #2840 from seefs001/feature/header-regex-override
feat: 支持基于Go Regex规则和全量的请求体透传
2026-02-05 01:56:27 +08:00
Calcium-IonandGitHub 4b07737fff Merge pull request #2837 from seefs001/fix/chat2responses_reasoning
fix: map Responses reasoning stream to chat completion deltas
2026-02-05 01:56:12 +08:00
Calcium-IonandGitHub 59c30ff1e1 Merge pull request #2839 from QuantumNous/fix/sidebar-scroll-dvh
🐛 fix: sidebar scroll on mobile dynamic viewport
2026-02-05 01:46:32 +08:00
Calcium-IonandGitHub 492003dfad Merge pull request #2838 from QuantumNous/fix/subscription-epay
 fix: Improve subscription payment handling and card layout consistency
2026-02-05 01:46:18 +08:00
CaIon a78c1c9be9 fix(i18n): prioritize user settings over Accept-Language header
The i18n middleware runs before UserAuth, so user settings weren't
available when language was detected. Now GetLangFromContext checks
user settings first (set by UserAuth) before falling back to the
language set by middleware or Accept-Language header.
2026-02-05 00:37:18 +08:00
CaIon 194e89de12 fix(i18n): add missing translations and improve language fallback
- Change default language fallback to English instead of Chinese
- Add ErrRedeemFailed typed error for model layer translation
- Migrate remaining hardcoded messages in controller/user.go
- Add translation keys: redeem.failed, user.create_default_token_error, common.uuid_duplicate, common.invalid_input
2026-02-05 00:16:17 +08:00
CaIon c444746088 feat(i18n): add backend multi-language support with user language preference
- Add go-i18n library for internationalization
- Create i18n package with translation keys and YAML locale files (zh/en)
- Implement i18n middleware for language detection from user settings and Accept-Language header
- Add Language field to UserSetting DTO
- Update API response helpers with i18n support (ApiErrorI18n, ApiSuccessI18n)
- Migrate hardcoded messages in token, redemption, and user controllers
- Add frontend language preference settings component
- Sync language preference across header selector and user settings
- Auto-restore user language preference on login
2026-02-05 00:09:32 +08:00
CaIon 732d501f75 feat(i18n): update translations for performance monitoring and cache management across multiple languages 2026-02-04 23:39:56 +08:00
Calcium-IonandGitHub b564194f92 Merge pull request #2635 from feitianbubu/pr/1a2a0dbd92384bfe886b93606003f6753fcb4e9d
feat: task log show username
2026-02-04 23:39:41 +08:00
Calcium-IonandGitHub 87ce4b455a Merge pull request #2835 from QuantumNous/feat/performance-monitoring
feat(performance): implement system performance monitoring
2026-02-04 21:34:44 +08:00
CaIon 5e71ef98d9 feat(performance): implement system performance monitoring with configurable thresholds 2026-02-04 21:26:07 +08:00
CaIon ffef331192 refactor(gemini): remove GeminiVisionMaxImageNum constant and related image count logic 2026-02-04 19:10:06 +08:00
Calcium-IonandGitHub 5878ea6b64 Merge pull request #2832 from QuantumNous/revert-2759-fix-group-colors
Revert "fix(ui): use distinct color palette for group tags"
2026-02-04 19:06:35 +08:00
CaIon a8ff74c2c7 feat(cache): enhance disk cache management with concurrency control and cleanup optimizations 2026-02-04 18:23:17 +08:00
CaIon 9ef9e78821 feat(file): unify file handling with a new FileSource abstraction for URL and base64 data 2026-02-04 18:23:17 +08:00
Calcium-IonandGitHub 36d3ae1c94 Merge pull request #2825 from seefs001/feature/request-id-log-column
feat: log search field request_id && conversion_path display
2026-02-04 15:13:06 +08:00
CaIon ba6fa9ab7b feat(subscription): implement SQLite support for SubscriptionPlan table creation and migration
#2823
2026-02-04 01:42:55 +08:00
CaIon 163bcb4c01 fix(workflow): enhance tag resolution and error handling in Docker image build 2026-02-04 00:13:47 +08:00
CaIon 46305ebcaa feat(workflow): add manual trigger and tag input for Docker image builds
- Introduce a `workflow_dispatch` event to allow manual triggering of the Docker image build workflow.
- Add an input parameter for specifying the tag name, enhancing flexibility in build processes.
- Update tag resolution logic to prioritize the input tag when provided, ensuring accurate versioning during builds.
2026-02-04 00:09:02 +08:00
CaIon 0b799d4716 feat(epay): enhance parameter parsing for notify and return handlers
- Update EpayNotify and SubscriptionEpayNotify functions to handle both POST and GET requests for parameter parsing.
- Improve error handling by logging failures and returning appropriate responses when parameters are missing or parsing fails.
- Ensure consistent behavior across both notify and return routes for better reliability in payment processing.
2026-02-03 23:37:12 +08:00
CaIon a7caff9b85 feat(subscription): validate price amount and migrate database column type
- Add validation to ensure subscription plan price amount is non-negative and does not exceed 9999.
- Migrate the price_amount column from float/double to decimal(10,6) in the database for improved precision.
- Update SubscriptionPlan model to reflect the new decimal type for price_amount.
2026-02-03 18:58:28 +08:00
CaIon b07254ab48 feat: add license section to README files in multiple languages 2026-02-03 18:34:50 +08:00
Calcium-IonandGitHub 0b4d82e9e5 Merge pull request #2814 from thirking/fix/remove-unescape-function
fix: 移除不必要的 unescapeMapOrSlice 调用,修复 Windows 路径转义问题
2026-02-03 17:42:09 +08:00
Calcium-IonandGitHub 723b85b87f feat: default enable channel affinity (#2809) 2026-02-03 00:05:23 +08:00
CaIon 319a909da8 feat: add support for jfif image format in file decoder 2026-02-02 21:36:08 +08:00
Calcium-IonandGitHub 9cf884c527 Merge pull request #2803 from seefs001/feature/qwen-responses
feat: /v1/responses qwen3 max && perplexity
2026-02-02 21:22:25 +08:00
Calcium-IonandGitHub 0ef4080ea8 fix: claude panic (#2804) 2026-02-02 21:22:07 +08:00
CaIon a02c7b903a fix: FreeBSD build failure due to type mismatch in Statfs_t fields (#2793)
Explicitly cast Blocks, Bavail, and Bfree to uint64 for cross-platform compatibility,
as these fields are int64 on FreeBSD but uint64 on Linux.
2026-02-02 00:36:36 +08:00
d7c55b92b2 feat: disk request body cache (#2780)
* feat: 引入通用 HTTP BodyStorage/DiskCache 缓存配置与管理

- 新增 common/body_storage.go 提供 HTTP 请求体存储抽象和文件缓存能力
- 增加 common/disk_cache_config.go 支持全局磁盘缓存配置
- main.go 挂载缓存初始化流程
- 新增和补充 controller/performance.go (及 unix/windows) 用于缓存性能监控接口
- middleware/body_cleanup.go 自动清理缓存文件
- router 挂载相关接口
- 前端 settings 页面新增性能监控设置 PerformanceSetting
- 优化缓存开关状态和模块热插拔能力
- 其他相关文件同步适配缓存扩展

* fix: 修复 BodyStorage 并发安全和错误处理问题

- 修复 diskStorage.Close() 竞态条件,先获取锁再执行 CAS
- 为 memoryStorage 添加互斥锁和 closed 状态检查
- 修复 CreateBodyStorageFromReader 在磁盘存储失败时的回退逻辑
- 添加缓存命中统计调用 (IncrementDiskCacheHits/IncrementMemoryCacheHits)
- 修复 gin.go 中 Seek 错误被忽略的问题
- 在 api-router 添加 BodyStorageCleanup 中间件
- 修复前端 formatBytes 对异常值的处理

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-30 01:00:49 +08:00
Calcium-IonandGitHub 3c1675d4e4 Merge pull request #2766 from seefs001/fix/response-compact-price
fix: /v1/responses/compact default billing
2026-01-29 23:24:31 +08:00
Calcium-IonandGitHub 3be7801d00 Merge pull request #2765 from seefs001/fix/2763
fix: remove disable_parallel_tool_use if tool_choice=none
2026-01-29 23:24:11 +08:00
Calcium-IonandGitHub f470310df8 Merge pull request #2779 from RedwindA/feat/gemini2oaiSTOP
feat(gemini): map OpenAI stop to Gemini stopSequences
2026-01-29 23:21:35 +08:00
CaIon 8aa025f6e5 Update readme docs links 2026-01-28 22:50:47 +08:00
CaIon 5a39a84a2f Update readme 2026-01-28 22:38:14 +08:00
CaIon 44f8b3e2c9 docs: add HelloGitHub and Product Hunt badges to README 2026-01-28 13:29:22 +08:00
Calcium-IonandGitHub d4d395e178 Add link to GitHub Security Advisories for reporting
Updated the reporting method for security issues to include a link to the draft security advisory.
2026-01-26 20:43:12 +08:00
CaIon e42dc2624a feat: add CODE_OF_CONDUCT and SECURITY.md files for community guidelines and vulnerability reporting 2026-01-26 20:37:50 +08:00
Calcium-IonandGitHub f2108a7deb Update LICENSE file 2026-01-26 20:24:28 +08:00
Calcium-IonandGitHub 57c65c2782 Merge pull request #2742 from seefs001/fix/pr-2540
feat(gemini): 支持 tool_choice 参数转换,优化多个渠道错误处理
2026-01-26 15:12:09 +08:00
Calcium-IonandGitHub 264f07da2c Merge pull request #2717 from xyfacai/feat/qwen-config
feat(qwen): support qwen image sync image model config
2026-01-22 18:50:39 +08:00
Calcium-IonandGitHub 979c81985e Merge pull request #2703 from seefs001/feature/log-conversion-info
feat: log shows request conversion
2026-01-21 23:48:08 +08:00
Calcium-IonandGitHub 77d9a54627 Merge pull request #2702 from seefs001/fix/ali-baseurl
fix: replace Alibaba's Claude-compatible url with new url
2026-01-21 23:47:59 +08:00
Calcium-IonandGitHub 3f208ee365 Merge pull request #2701 from seefs001/fix/gemini-tool-call-index
fix: calls to multiple tools in gemini all return index=0
2026-01-21 23:47:48 +08:00
Calcium-IonandGitHub 14d2290bf0 Merge pull request #2663 from seefs001/feature/retry-status-code
feat: customizable automatic retry status codes
2026-01-21 23:47:31 +08:00
Calcium-IonandGitHub 817006d861 Merge pull request #2684 from seefs001/fix/codex-rm-max-output-tokens
fix: codex Unsupported parameter: max_output_tokens
2026-01-21 23:47:17 +08:00
Calcium-IonandGitHub defda1df0a Merge pull request #2676 from seefs001/fix/aff-login-method
fix: the login method cannot be displayed under the aff link.
2026-01-21 23:47:05 +08:00
Calcium-IonandGitHub ffd20f9fc8 Merge pull request #2668 from seefs001/feature/ignore-tls-config
feat: TLS_INSECURE_SKIP_VERIFY env
2026-01-21 23:46:52 +08:00
Calcium-IonandGitHub 4f8abca054 Merge pull request #2667 from seefs001/fix/gemini-whitelist-field
fix: openAI function to gemini function field adjusted to whitelist mode
2026-01-21 23:45:57 +08:00
Calcium-IonandGitHub 9cea854bb2 Merge pull request #2710 from QuantumNous/revert-2691-pr/5f73324da8aebf6a98269c242dda05da3ea6d7bc
Revert "fix: video content api Priority use url field"
2026-01-21 23:39:59 +08:00
CaIon b311d482e3 fix: update abortWithOpenAiMessage function to use types.ErrorCode 2026-01-19 17:35:28 +08:00
Calcium-IonandGitHub ef572392b7 Merge pull request #2642 from seefs001/fix/gemini-propertyNames
fix: clean propertyNames for gemini function
2026-01-12 18:48:24 +08:00
CaIon 4ffe7dc50b docs: update readme 2026-01-07 20:52:27 +08:00
CaIon 04ff3df583 fix(gin): update request body size check to allow zero limit 2026-01-05 18:55:24 +08:00
Calcium-IonandGitHub cf2eb6da08 Merge pull request #2580 from seefs001/fix/aws-proxy-timeout
fix: fix the proxyURL is empty, not using the default HTTP client configuration && the AWS calling side did not apply the relay timeout.
2026-01-05 18:32:25 +08:00
Calcium-IonandGitHub 43f5433e6a Merge pull request #2578 from xyfacai/fix/gemini-mimetype
fix: 修复 gemini 文件类型不支持 image/jpg
2026-01-04 22:19:16 +08:00
CaIon 6ba75a02b7 feat: add plans directory to .gitignore 2026-01-04 16:20:58 +08:00
Calcium-IonandGitHub 1c95a9febc Merge pull request #2558 from seefs001/fix/gemini-tool-call
fix: gemini request -> openai tool call
2026-01-03 12:37:28 +08:00
Calcium-IonandGitHub 93527862a0 Merge pull request #2571 from seefs001/feature/check-in-security-check
feat: check-in feature integrates Turnstile security check
2026-01-03 12:36:39 +08:00
Calcium-IonandGitHub 54cb496b09 Merge pull request #2565 from QuantumNous/feat/check-in
feat(checkin): add check-in functionality
2026-01-02 23:17:10 +08:00
CaIon d340112ce2 feat(checkin): add check-in functionality with status retrieval and user quota rewards 2026-01-02 23:00:33 +08:00
CaIon a3c1bc6350 fix: 修复 timestamp2string1 跨年显示问题,仅在数据跨年时显示年份 2026-01-01 15:42:15 +08:00
CaIon 87a75b0565 feat(ratio): add functions to check for audio ratios and clean up unused code 2025-12-31 21:29:10 +08:00
CaIon 7bbb7f8114 feat(model): add audio ratios for new TTS models and adjust default values 2025-12-31 21:22:33 +08:00
CaIon 75a6a0ba2b feat(init): increase maximum file download size to 64MB 2025-12-31 21:15:37 +08:00
CaIon 300459c8a8 fix(TaskLogs): use correct video URL for modal preview 2025-12-31 00:44:12 +08:00
CaIon 62020d00a4 feat(adaptor): update resolution handling for wan2.6 model 2025-12-31 00:44:06 +08:00
CaIon 6d0e316ee6 refactor(image): remove unnecessary logging in oaiImage2Ali function 2025-12-31 00:23:19 +08:00
Calcium-IonandGitHub edca79297b Merge pull request #2551 from feitianbubu/pr/829cb06b5d689ecbcc05bb3ef49dbf1aec427c35
feat: flush response writer after copying body
2025-12-30 18:09:33 +08:00
CaIon b5a0c822d2 feat(adaptor): 新适配百炼多种图片生成模型
- wan2.6系列生图与编辑,适配多图生成计费
- wan2.5系列生图与编辑
- z-image-turbo生图,适配prompt_extend计费
2025-12-29 23:00:17 +08:00
Calcium-IonandGitHub 15b38adf98 Merge pull request #2460 from seefs001/feature/gemini-flash-minial
fix(gemini): handle minimal reasoning effort budget
2025-12-26 13:57:56 +08:00
Calcium-IonandGitHub 89e5edd407 Merge pull request #2450 from seefs001/fix/gemini-system-prompt
fix: 支持传入system_instruction和systemInstruction两种风格系统提示词参数名
2025-12-26 13:54:21 +08:00
Calcium-IonandGitHub 343497ad84 Merge pull request #2512 from seefs001/fix/warning-pass-through-body
fix: add warning for pass through body
2025-12-26 13:52:51 +08:00
Calcium-IonandGitHub 7126c3c125 Merge pull request #2513 from seefs001/fix/token-auth-bearer
fix: 支持小写bearer和Bearer后带多个空格 && 修复 WSS预扣费错误提取key的问题
2025-12-26 13:51:32 +08:00
Calcium-IonandGitHub 225cb9ef86 Merge pull request #2154 from feitianbubu/pr/fix-model-sync
fix: ensure overwrite works correctly when no missing models
2025-12-25 22:34:49 +08:00
Calcium-IonandGitHub 90b70f472b Merge pull request #2475 from seefs001/feature/pyro
feat: pyroscope integrate
2025-12-25 17:54:39 +08:00
CaIon ceb7ebe5cd feat(user): simplify user response structure in JSON output 2025-12-25 15:39:58 +08:00
Calcium-IonandGitHub c7125480ac Merge pull request #2524 from seefs001/fix/revert-model-ratio
fix: revert model ratio
2025-12-25 15:38:36 +08:00
Calcium-IonandGitHub 3955d61b3e Merge pull request #2477 from 1420970597/fix/anthropic-cache-billing
fix: 修复 Anthropic 渠道缓存计费错误
2025-12-24 16:59:23 +08:00
Calcium-IonandGitHub 8ee5c23b48 Merge pull request #2510 from feitianbubu/pr/0e7050dc89c1b761069f5e528d8ecf786e7008ae
修复claudeResponse流式请求空指针Panic
2025-12-24 14:15:51 +08:00
CaIon d488a19ed7 feat(token): enhance error handling in ValidateUserToken for better clarity 2025-12-22 18:01:38 +08:00
Calcium-IonandGitHub 4bcdb1ec07 Merge pull request #2486 from QuantumNous/docs/readme-update-doc-links-new-routing
🔗 docs(readme): update documentation links to new site routing
2025-12-21 21:28:35 +08:00
Calcium-IonandGitHub 7af80ff043 Merge pull request #2483 from seefs001/fix/vertex-function-response-id
fix: 模型设置增加针对Vertex渠道过滤content[].part[].functionResponse.id的选项,默认启用
2025-12-21 17:24:07 +08:00
CaIon c2a6193497 feat(gin): improve request body handling and error reporting 2025-12-20 13:34:10 +08:00
CaIon 3523acfc2c feat(init): increase MaxRequestBodyMB to enhance request handling 2025-12-20 13:27:55 +08:00
CaIon f2d2b6e7fc feat(channel): add error handling for SaveWithoutKey when channel ID is 0 2025-12-20 13:26:40 +08:00
CaIon 692b5ff5ac feat(auth): refactor IP restriction handling to use clearer variable naming 2025-12-15 20:13:09 +08:00
CaIon 947a763a1a feat(auth): enhance IP restriction handling with CIDR support 2025-12-15 17:24:09 +08:00
CaIon 1bd0d8de02 Revert "feat(audio): replace SysLog with logger for improved logging in GetAudioDuration"
This reverts commit 2a980bbcf5.
2025-12-14 00:04:40 +08:00
CaIon 2a980bbcf5 feat(audio): replace SysLog with logger for improved logging in GetAudioDuration 2025-12-13 23:59:58 +08:00