Commit Graph

1824 Commits

Author SHA1 Message Date
t0ng7u
5707ee3492 feat(subscription): add quota reset periods and admin configuration
- Add reset period fields on subscription plans and user items
- Apply automatic quota resets during pre-consume based on plan schedule
- Expose reset-period configuration in the admin plan editor
- Display reset cadence in subscription cards and purchase modal
- Validate custom reset seconds on plan create/update
2026-01-31 00:06:13 +08:00
t0ng7u
ecf50b754a 🎨 style: format all code with gofmt and lint:fix
Apply consistent code formatting across the entire codebase using
gofmt and lint:fix tools. This ensures adherence to Go community
standards and improves code readability and maintainability.

Changes include:
- Run gofmt on all .go files to standardize formatting
- Apply lint:fix to automatically resolve linting issues
- Fix code style inconsistencies and formatting violations

No functional changes were made in this commit.
2026-01-30 23:43:27 +08:00
t0ng7u
697cbbf752 fix(subscription): finalize payments, log billing, and clean up dead code
Complete subscription orders by creating a matching top-up record and writing billing logs
Add Epay return handler to verify and finalize browser callbacks
Require Stripe/Creem webhook configuration before starting subscription payments
Show subscription purchases in topup history with clearer labels/methods
Remove unused subscription helper, legacy Creem webhook struct, and unused topup fields
Simplify subscription self API payload to active/all lists only
2026-01-30 23:40:01 +08:00
t0ng7u
a60783e99f feat(admin): streamline subscription plan benefits editor with bulk actions
Restore the avatar/icon header for the “Model Benefits” section
Replace scattered controls with a compact toolbar-style workflow
Support multi-select add with a default quota for new items
Add row selection with bulk apply-to-selected / apply-to-all quota updates
Enable delete-selected to manage benefits faster and reduce mistakes
2026-01-30 16:24:51 +08:00
t0ng7u
348ae6df73 feat(admin): add user subscription management and refine UI/pagination
Add admin APIs to list/create/invalidate/delete user subscriptions
Add model helpers to fetch all user subscriptions (incl. expired) and support cancel/hard-delete
Wire new admin routes for user subscription operations
Replace “Bind subscription plan” entry with a dedicated User Subscriptions SideSheet in Users table
Use CardTable with responsive layout and working client-side pagination inside the SideSheet
Improve subscription purchase modal empty-gateway state with a Banner notice
2026-01-30 14:29:56 +08:00
t0ng7u
009910b960 feat: add subscription billing system with admin management and user purchase flow
Implement a new subscription-based billing model alongside existing metered/per-request billing:

Backend:
- Add subscription plan models (SubscriptionPlan, SubscriptionPlanItem, UserSubscription, etc.)
- Implement CRUD APIs for subscription plan management (admin only)
- Add user subscription queries with support for multiple active/expired subscriptions
- Integrate payment gateways (Stripe, Creem, Epay) for subscription purchases
- Implement pre-consume and post-consume billing logic for subscription quota tracking
- Add billing preference settings (subscription_first, wallet_first, etc.)
- Enhance usage logs with subscription deduction details

Frontend - Admin:
- Add subscription management page with table view and drawer-based edit form
- Match UI/UX style with existing admin pages (redemption codes, users)
- Support enabling/disabling plans, configuring payment IDs, and model quotas
- Add user subscription binding modal in user management

Frontend - Wallet:
- Add subscription plans card with current subscription status display
- Show all subscriptions (active and expired) with remaining days/usage percentage
- Display purchasable plans with pricing cards following SaaS best practices
- Extract purchase modal to separate component matching payment confirm modal style
- Add skeleton loading states with active animation
- Implement billing preference selector in card header
- Handle payment gateway availability based on admin configuration

Frontend - Usage Logs:
- Display subscription deduction details in log entries
- Show step-by-step breakdown of subscription usage (pre-consumed, delta, final, remaining)
- Add subscription deduction tag for subscription-covered requests
2026-01-30 05:31:10 +08:00
Calcium-Ion
1c983a04d3 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
Seefs
478f1871d6 feat: grok Usage Guidelines Violation Fee (#2753)
* feat: grok Usage Guidelines Violation Fee ui setting

* feat: grok Usage Guidelines Violation Fee consume log

* fix: grok Usage Guidelines Violation Fee log detail
2026-01-26 20:20:30 +08:00
Seefs
cc1da72d10 feat: openai response /v1/response/compact (#2644)
* feat: openai response /v1/response/compact

* feat: /v1/response/compact bill

* feat: /v1/response/compact

* feat: /v1/responses/compact -> codex channel

* feat: /v1/responses/compact -> codex channel

* feat: /v1/responses/compact -> codex channel

* feat: codex channel default models

* feat: compact model price

* feat: /v1/responses/comapct test
2026-01-26 20:20:16 +08:00
Seefs
d7d3a2f763 feat: channel affinity (#2669)
* feat: channel affinity

* feat: channel affinity -> model setting

* fix: channel affinity

* feat: channel affinity op

* feat: channel_type setting

* feat: clean

* feat: cache supports both memory and Redis.

* feat: Optimise ui/ux

* feat: Optimise ui/ux

* feat: Optimise codex usage ui/ux

* feat: Optimise ui/ux

* feat: Optimise ui/ux

* feat: Optimise ui/ux

* feat: If the affinitized channel fails and a retry succeeds on another channel, update the affinity to the successful channel
2026-01-26 19:57:41 +08:00
Seefs
7da04be52b fix: test using the correct path for rerank (#2736)
* fix: test using the correct path for rerank.

* fix: The `input` parameter for testing responses uses an array to accommodate certain channels, such as Codex, which are incompatible with single strings.
2026-01-26 19:57:15 +08:00
Seefs
6b85114148 Merge pull request #2610 from Bliod-Cook/main 2026-01-26 17:30:02 +08:00
Seefs
35c055e1c1 Merge pull request #2749 from wans10/main 2026-01-26 16:50:44 +08:00
Bliod-Cook
d77bb794d0 Merge branch 'main' into pr/Bliod-Cook/2610 2026-01-26 05:23:51 +00:00
wans10
f00a25c7ec fix(topup): 修复用户配额获取逻辑
- 移除用户ID检查条件,始终获取最新用户数据
- 确保余额等统计信息准确性
- 解决用户状态更新不及时的问题
2026-01-26 09:34:09 +08:00
Seefs
dda40ef62a feat: logs show reject reason 2026-01-25 15:00:30 +08:00
Seefs
00c5d9ffdf feat: logs show reject reason 2026-01-25 14:52:18 +08:00
Calcium-Ion
b28ac71722 Merge pull request #2703 from seefs001/feature/log-conversion-info
feat: log shows request conversion
2026-01-21 23:48:08 +08:00
Calcium-Ion
c08a9348b3 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-Ion
4a6e423120 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
Seefs
bc2569b649 Merge pull request #2696 from Bliod-Cook/email-verification-fix 2026-01-21 22:51:06 +08:00
Seefs
5c01b77357 feat: optimized display 2026-01-21 00:17:20 +08:00
Seefs
3728fbdbf5 feat: optimized display 2026-01-21 00:12:41 +08:00
Seefs
6582020c80 feat: optimized display 2026-01-21 00:01:36 +08:00
Seefs
d4582ede98 feat: log shows request conversion 2026-01-20 23:43:29 +08:00
Bliod
c149c9cfcf fix: fix email send 2026-01-20 04:29:56 +00:00
feitianbubu
3b01cb3f41 fix: update warning threshold label from '5$' to '2$' 2026-01-19 12:58:10 +08:00
Seefs
f96615110d fix: the login method cannot be displayed under the aff link. 2026-01-15 23:19:51 +08:00
Seefs
e5cb9ac03a feat: codex channel (#2652)
* feat: codex channel

* feat: codex channel

* feat: codex oauth flow

* feat: codex refresh cred

* feat: codex usage

* fix: codex err message detail

* fix: codex setting ui

* feat: codex refresh cred task

* fix: import err

* fix: codex store must be false

* fix: chat -> responses tool call

* fix: chat -> responses tool call
2026-01-14 22:29:43 +08:00
Seefs
4bffc249d6 feat: customizable automatic retry status codes 2026-01-14 14:34:12 +08:00
Seefs
6169f46cc6 Merge pull request #2627 from seefs001/feature/channel-test-param-override
feat: channel testing supports parameter overriding
2026-01-12 18:49:05 +08:00
Seefs
688280b3c3 fix: chat2response setting ui (#2643)
* fix: setting ui

* fix: rm global.chat_completions_to_responses_policy

* fix: rm global.chat_completions_to_responses_policy
2026-01-12 18:48:05 +08:00
Seefs
41da848c56 Merge pull request #2647 from seefs001/feature/status-code-auto-disable
feat: status code auto-disable configuration
2026-01-12 18:47:45 +08:00
Seefs
62b796fa6a feat: /v1/chat/completion -> /v1/response (#2629)
* feat: /v1/chat/completion -> /v1/response
2026-01-11 21:38:07 +08:00
RedwindA
b51d1e2f78 fix: remove Minimax from FETCHABLE channels 2026-01-09 20:37:12 +08:00
Bliod
d4edec6ac2 feat: select model in visualized modl mapping 2026-01-08 15:26:59 +00:00
Seefs
9e61338a6f Merge pull request #2582 from seefs001/fix/tips
fix: add tips for model management and channel testing
2026-01-05 18:47:02 +08:00
Seefs
22d0b73d21 fix: fix model deployment style issues, lint problems, and i18n gaps. (#2556)
* fix: fix model deployment style issues, lint problems, and i18n gaps.

* fix: adjust the key not to be displayed on the frontend, tested via the backend.

* fix: adjust the sidebar configuration logic to use the default configuration items if they are not defined.
2026-01-03 12:37:50 +08:00
Seefs
c33ac97c71 feat: check-in feature integrates Turnstile security check 2026-01-03 11:08:26 +08:00
Seefs
fdd1ac0f6e Merge pull request #2554 from zpc7/bugfix/remove-duplicate-condition 2026-01-03 09:31:22 +08:00
RedwindA
be8e644546 fix: remove a duplicate key in i18n 2026-01-03 00:55:08 +08:00
RedwindA
a0328b2f5e 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
CaIon
8abfbe372f feat(checkin): add check-in functionality with status retrieval and user quota rewards 2026-01-02 23:00:33 +08:00
CaIon
a195e88896 fix: 修复 timestamp2string1 跨年显示问题,仅在数据跨年时显示年份 2026-01-01 15:42:15 +08:00
PCCCCCCC
8b790446ce remove duplicate condition in TaskLogsColumnDefs 2025-12-31 09:38:23 +08:00
CaIon
b808b96cce fix(TaskLogs): use correct video URL for modal preview 2025-12-31 00:44:12 +08:00
Seefs
725d61c5d3 feat: ionet integrate (#2105)
* wip ionet integrate

* wip ionet integrate

* wip ionet integrate

* ollama wip

* wip

* feat: ionet integration & ollama manage

* fix merge conflict

* wip

* fix: test conn cors

* wip

* fix ionet

* fix ionet

* wip

* fix model select

* refactor: Remove `pkg/ionet` test files and update related Go source and web UI model deployment components.

* feat: Enhance model deployment UI with styling improvements, updated text, and a new description component.

* Revert "feat: Enhance model deployment UI with styling improvements, updated text, and a new description component."

This reverts commit 8b75cb5bf0d1a534b339df8c033be9a6c7df7964.
2025-12-28 15:55:35 +08:00
skynono
9aeef6abec feat: support first bind update password (#2520) 2025-12-26 13:59:56 +08:00
Seefs
f51b5bb0c8 Merge pull request #2455 from comeback01/french-translation 2025-12-26 13:56:30 +08:00
Calcium-Ion
c722ddd58b 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