Commit Graph
100 Commits
Author SHA1 Message Date
RedwindA 12a48c620e feat(token): add batch API for fetching token keys
Add new endpoint POST /api/token/batch/keys to fetch multiple
token keys in a single request, improving performance when
exporting or copying multiple tokens.

- Backend: Add GetTokenKeysBatch controller and GetTokenKeysByIds model
- Backend: Add route with CriticalRateLimit and DisableCache middleware
- Frontend: Add fetchTokenKeysBatch helper function
- Frontend: Update useTokensData to use batch API for token export
2026-04-06 19:46:01 +08:00
RedwindA f449e06b9d fix: handle ISOBMFF extended sizes in HEIF dimension parser
parseHEIFDimensions now correctly handles boxSize==1 (64-bit extended
size) and boxSize==0 (box-to-EOF), preventing the parser from breaking
out of the loop when encountering these valid ISOBMFF box headers
before reaching the meta box.
2026-04-02 17:01:21 +08:00
RedwindA 79527c0ab1 feat: add HEIC/HEIF image format support
Add detection, MIME type mapping, and dimension parsing for HEIC/HEIF
images via ISOBMFF ftyp brand inspection and ispe box parsing. Update
Gemini relay to accept these formats and refactor getImageConfig to
properly retry decoders using buffered data.
2026-04-02 16:40:45 +08:00
RedwindA 49db5147c3 fix: align log cleanup button with other controls in the row 2026-03-21 21:48:31 +08:00
RedwindA 13122aa0fa fix: refresh log info on partial delete failure 2026-03-21 21:11:52 +08:00
RedwindA dcd0911612 fix: log management race condition, partial delete reporting, and UX issues
- Fix data race on gin.DefaultWriter during log rotation by adding LogWriterMu
- Report partial failure when some log files fail to delete instead of always returning success
- Fix misleading "logging disabled" banner shown before API responds
- Fix en.json translation for numeric validation message
2026-03-21 20:40:39 +08:00
RedwindA e904579a5b feat: add server log file management to performance settings
Add API endpoints (GET/DELETE /api/performance/logs) to list and clean up
server log files by count or by age. Track the active log file path in
the logger to prevent deleting the currently open log. Add a management
UI section in the performance settings page with log directory info,
file statistics, and cleanup controls. Includes i18n translations for
all supported languages (en, fr, ja, ru, vi, zh-CN, zh-TW).
2026-03-21 20:06:49 +08:00
RedwindA 7e68e1b36a chore: update model lists for frequently used channels 2026-03-11 23:39:18 +08:00
RedwindA f3d38ca195 fix: enhance migrateTokenModelLimitsToText function to return errors and improve migration checks 2026-02-28 19:08:03 +08:00
RedwindA f1b3627274 fix: migrate model_limits column from varchar(1024) to text for existing tables 2026-02-28 18:49:06 +08:00
RedwindA 066de35a77 fix: change token model_limits column from varchar(1024) to text
Fixes #3033 — users with many model limits hit PostgreSQL's varchar
length constraint. The text type is supported across all three
databases (SQLite, MySQL, PostgreSQL) with no length restriction.
2026-02-27 14:47:20 +08:00
RedwindA 144fe67705 feat(web): add custom-model create hint and i18n translations 2026-02-24 21:44:21 +08:00
RedwindA b2898b392a fix: adjust default Gemini cache ratios 2026-02-20 12:28:30 +08:00
RedwindA fa4465c41c feat: add models.dev preset support to upstream ratio sync 2026-02-20 12:28:26 +08:00
RedwindA 4aa14c7ef7 fix(token-search): use TrimPrefix for sk- token normalization 2026-02-12 15:12:49 +08:00
RedwindA 9f20f32474 feat: add OpenRouter pricing support to upstream ratio sync 2026-02-12 12:57:27 +08:00
RedwindA 3985d10ae1 feat(gemini): support cached token billing 2026-02-01 22:50:47 +08:00
RedwindA 9899073ecb feat(gemini): map OpenAI stop to Gemini stopSequences 2026-01-29 21:30:27 +08:00
RedwindA ffa8a42784 fix(minimax): 添加 MiniMax-M2 系列模型到 ModelList 2026-01-09 20:46:47 +08:00
RedwindA 0f0ba4adc4 fix: remove Minimax from FETCHABLE channels 2026-01-09 20:37:12 +08:00
RedwindA db96248c5b refactor(gemini): 更新 GeminiModelsResponse 以使用 dto.GeminiModel 类型 2026-01-09 18:08:11 +08:00
RedwindA e8eea5d3ee fix(gemini): fetch model list via native v1beta/models endpoint
Use the native Gemini Models API (/v1beta/models) instead of the OpenAI-compatible
path when listing models for Gemini channels, improving compatibility with
third-party Gemini-format providers that don't implement OpenAI routes.

- Add paginated model listing with timeout and optional proxy support
- Select an enabled key for multi-key Gemini channels
2026-01-09 18:00:40 +08:00
RedwindA 6e8242b8f4 fix: remove a duplicate key in i18n 2026-01-03 00:55:08 +08:00
RedwindA 5bc2d9f414 fix(checkin): prevent visual flicker when loading check-in component
- Add initialLoaded state to track first data load completion
- Set isCollapsed to null initially, determined after data loads
- Show loading state on button and description text before data arrives
- Remove auto-collapse effect that caused visual flicker
- Add i18n translations for loading states (en/fr/ja/ru/vi/zh)

Fixes issue where component would collapse/expand after data loads,
causing visual flicker when navigating to personal settings page.
2026-01-03 00:43:52 +08:00
RedwindA 518563c7eb feat: map OpenAI developer role to Gemini system instructions 2025-12-27 02:52:33 +08:00
RedwindA 4a8bdb1483 fix(i18n): disable namespace separator to fix URL display in translations
i18next uses ':' as namespace separator by default, causing URLs like
'https://api.openai.com' to be incorrectly parsed as namespace 'https'
with key '//api.openai.com', resulting in truncated display.

Setting nsSeparator to false fixes this issue since the project doesn't
use multiple namespaces.
2025-12-26 00:10:19 +08:00
RedwindA dcd0f4fb0d feat: add GetClaudeAuthHeader function and update FetchUpstreamModels to support Anthropic channel type 2025-10-09 02:43:19 +08:00
RedwindA efdb1c5b46 fix(openai): account cached tokens for
zhipu_v4 usage
2025-10-08 16:52:49 +08:00
RedwindA 66a956d965 fix: improve text visibility in warning box for dark mode in SettingsLog 2025-10-05 23:39:20 +08:00
RedwindA 2c669cce91 feat: Allow FIM chat requests without messages 2025-10-03 02:27:02 +08:00
RedwindA 78f34bd095 fix(openai): add nil checks for web_search streaming to prevent panic 2025-10-01 22:19:22 +08:00
RedwindA 00cf826c4e feat: 添加 Bark 和 Gotify 通知的国际化支持 2025-10-01 19:36:19 +08:00
RedwindA 98050ee6e9 feat: add Gotify notification option for quota alerts 2025-10-01 19:15:00 +08:00
RedwindA fb428ee9c0 fix(jina): remove encoding_format for jina embedding 2025-10-01 02:06:30 +08:00
RedwindA c00e5ca201 fix: Optimize sidebar refresh to avoid redundant loading states 2025-09-29 22:16:25 +08:00
RedwindA 9e271b0680 fix: sync third-party binding state in personal settings 2025-09-29 19:23:42 +08:00
RedwindA 71b3c90bc9 解锁deepseek补全倍率;允许deepseek渠道获取模型 2025-09-29 18:32:44 +08:00
RedwindA 1b51a7e311 fix(settings): ensure turnstile settings are reset when disabled 2025-09-28 17:38:56 +08:00
RedwindA 3bbba55343 fix(settings): correct third-party binding states and unify Telegram
button styling

  - Show “Not enabled” for WeChat when status.wechat_login is false.
  - Refresh /api/status on PersonalSetting mount and persist via
  setStatusData to avoid stale flags, enabling binding after admin turns
  on OAuth.
  - Unify Telegram button styling with other providers; open a modal to
  render TelegramLoginButton for binding; align disabled “Not enabled” and
  “Bound” states.
  - Introduce isBound helper and reuse across providers (email/GitHub/OIDC/
  LinuxDO/WeChat) to simplify checks and prevent falsy-ID issues.
2025-09-28 17:31:38 +08:00
RedwindA 4f3ec81b3f fix: add missing timeout 2025-09-27 22:29:27 +08:00
RedwindA 2437c90d68 feat: 在添加和更新渠道时重置代理客户端缓存 2025-09-27 22:18:46 +08:00
RedwindA fcc5c73bc0 feat: 添加代理客户端缓存和重置功能,优化 HTTP 客户端管理 2025-09-27 22:18:39 +08:00
RedwindA 395f06f488 feat: 添加对 Zhipu v4 渠道获取模型列表的支持 2025-09-27 01:19:43 +08:00
RedwindA ee6e5ff882 feat: 仅为适当的渠道渲染获取模型列表按钮 2025-09-27 01:19:09 +08:00
RedwindA f5a52bc5b5 feat: update dto for embeddings 2025-08-09 18:31:56 +08:00
RedwindA 1dcb9a01ce Merge branch 'alpha' into 'feat/support-native-gemini-embedding' 2025-08-09 18:05:11 +08:00
RedwindA 74057324b2 fix typo; add ParamOverride for Gemini Embedding 2025-08-09 01:07:48 +08:00
RedwindA 8127ad9929 feat: support native Gemini Embedding 2025-08-09 00:27:33 +08:00
RedwindA 037cc47354 feat: optimize channel retrieval by respecting original model names 2025-08-07 21:58:15 +08:00
RedwindA 87cfcf1190 feat: add default model ratio for gemini-2.5-flash-lite-preview-thinking model 2025-08-07 21:39:11 +08:00
RedwindA 2ef6e340a8 feat: update FormatMatchingModelName to handle gemini-2.5-flash-lite model prefix 2025-08-07 21:37:08 +08:00
RedwindA 342bf59c91 fix: 调整Disable Ping标志的设置位置 2025-08-07 06:18:22 +08:00
RedwindA b2597206f3 fix a typo in comment 2025-08-07 01:11:01 +08:00
RedwindA d6dea7d082 fix: 修复 FetchUpstreamModels 函数中 AuthHeader 的使用,确保正确处理 多key聚合的情况 2025-08-07 01:01:45 +08:00
RedwindA 14ee6651b4 refactor: 移除 GoogleOpenAI 兼容模型相关结构体,简化 FetchUpstreamModels 函数逻辑 2025-08-07 00:54:48 +08:00
RedwindA b0dc31c414 fix(web): 修复模型倍率设置中添加新模型时输入框锁定的问题 2025-08-05 23:18:42 +08:00
RedwindA e06d0ba0e4 fix: 修正nothinking判断逻辑,确保仅当预算为零时返回true 2025-07-20 17:35:34 +08:00
RedwindA 20c132bf13 禁用原生Gemini模式中的ping保活 2025-07-18 23:39:01 +08:00
RedwindA 4d9b5bcf48 增加 DisablePing 字段以控制是否发送自定义 Ping 2025-07-18 23:38:35 +08:00
RedwindA 3368b26880 🐛 fix: Add nil check for xaiResponse.Usage before calculating CompletionTokens 2025-07-14 21:40:15 +08:00
RedwindA f30a0f7783 🐛 fix: Use correct dto for non-stream xai 2025-07-14 21:32:31 +08:00
RedwindA bc65c82745 🎨 feat(channel-test): Enhance request conversion for Embedding models and update input type 2025-07-14 16:59:48 +08:00
RedwindA 98d1da6fcc fix: 调整初始化顺序以避免写入日志失败 2025-07-12 02:23:10 +08:00
RedwindA 98696526d4 feat: 支持 xAI 网络搜索 2025-07-12 02:22:40 +08:00
RedwindA 4f84fd6a71 fix: update model name logic for vertex 2025-06-20 16:40:51 +08:00
RedwindA 97e51e442f fix gizmo completion ratio 2025-06-19 20:16:04 +08:00
RedwindA 50907a5758 Merge remote-tracking branch 'upstream/alpha' into update-gemini-ratio 2025-06-19 20:02:27 +08:00
RedwindA 33e46cabb6 feat(gemini): add pricing for Gemini 2.5 Flash Lite preview audio input 2025-06-18 03:38:58 +08:00
RedwindA 9bc9d40891 feat(gemini): update audio input pricing and adjust model handling logic 2025-06-18 03:25:59 +08:00
RedwindA 49592897d5 feat(ratio): add new Gemini model ratios and enhance flash model handling 2025-06-18 01:09:09 +08:00
RedwindA a004db93c9 feat(Gemini): enhance budget clamping logic for Gemini models 2025-06-18 00:49:35 +08:00
RedwindA 09ffc364f2 🔧 refactor(redis): replace direct constant usage with RedisKeyCacheSeconds function for cache duration 2025-06-17 03:24:39 +08:00
RedwindA e34d3c2160 🔧 fix(redis): only set expiration if greater than 0 in RedisHSetObj 2025-06-17 02:37:19 +08:00
RedwindA 9209355f7d refactor: replace inline closure with a helper function 2025-06-16 19:41:42 +08:00
RedwindA fe0ff4726d 🐛 fix(api): include group in payload for playground 2025-06-16 01:12:18 +08:00
RedwindA 45e9607995 update i18n 2025-06-15 23:40:58 +08:00
RedwindA 1e1a6aae55 feat: implement thinking budget control in model name 2025-06-15 23:20:41 +08:00
RedwindA 66ffccf164 💬 fix(GeminiHelper): clean up empty system instructions in request 2025-06-14 19:36:58 +08:00
RedwindA 9cfc7ad3bd update input range and description for thinking adapter budget tokens 2025-06-12 18:20:58 +08:00
RedwindA b9a026ed23 🔧 fix(useApiRequest): improve playground SSE error handling and stream completion tracking 2025-06-11 02:05:16 +08:00
RedwindA 07a671ec27 🐛 fix: update condition to check for empty content in assistant role messages 2025-06-09 02:15:39 +08:00
RedwindA da41545139 🐛 fix(Gemini): improve JSON parsing for tool content handling 2025-06-08 14:35:56 +08:00
RedwindA b197dfb95d 🐛 fix(EditTagModal): add info banner to clarify modelList behavior 2025-06-08 13:23:59 +08:00
RedwindA 18f82f120c 🐛 fix(EditTagModal): add fetchTagModels function to retrieve models based on tag 2025-06-08 01:16:39 +08:00
RedwindA c4f664f376 🎨 feat(channel): add endpoint to retrieve models by tag 2025-06-08 01:16:27 +08:00
RedwindA 546d0140d3 🐛 fix(mistral): validate and generate new IDs for tool calls and tool call IDs; Correctly handle null content for assistant messages with tool_calls. 2025-06-08 00:06:56 +08:00
RedwindA 894f9b98d9 Merge remote-tracking branch 'upstream/main' into fix/ali-embedding 2025-06-07 22:32:02 +08:00
RedwindA 7671f82ab6 🐛 fix(ali): Remove hardcoding of embedding model names. 2025-06-07 22:28:32 +08:00
RedwindA b8cfb64a45 feat: ali rerank 2025-06-07 21:29:46 +08:00
RedwindA eb23dffa04 修复2.5-pro的预算范围 2025-06-06 01:58:02 +08:00
RedwindA 8add0b1592 解决合并冲突 2025-06-06 01:29:06 +08:00
RedwindA d84da74a0a 硬编码旧模型,让新2.5pro均支持设置预算 2025-06-06 01:22:50 +08:00
RedwindA 2c3464c2c6 清理注释 2025-06-06 01:09:51 +08:00
RedwindA f24e2b0d40 Fix: Correctly relay FunctionResponse content for Gemini API 2025-06-06 00:56:38 +08:00
RedwindA 24abf51b8d 修复复制多选令牌按钮的文本 2025-06-05 21:29:14 +08:00
RedwindA 098c1e8829 refactor: rename RedisHDelObj to RedisDelKey and update references 2025-06-05 21:17:57 +08:00
RedwindA 15607996e6 fix: change RedisHDelObj to use Del instead of HDel 2025-06-05 20:42:56 +08:00
RedwindA 5bb8f2dfed Add DeepWiki Badge in README 2025-06-05 02:09:21 +08:00
RedwindA 0827ebd22e fix: 移除流式响应结尾的[Done],以适应Gemini API的行为 2025-06-04 15:41:25 +08:00
RedwindA 5e88e76001 feat: 支持从 x-goog-api-key header 中获取授权密钥 2025-06-04 15:41:25 +08:00