qian
|
5ce16daa46
|
feat(model):新增MiniMax-H3视频支持
|
2026-09-13 22:14:21 +08:00 |
|
qian
|
26c53c2228
|
feat(tenant):新增模型厂商和租户消费总额
|
2026-09-13 22:13:59 +08:00 |
|
qian
|
97da0a70aa
|
feat(relay):添加OpenAI标准视频端点
|
2026-09-12 17:04:36 +08:00 |
|
chengqian
|
755868a331
|
feat(relay):新增token估算接口
|
2026-09-09 14:33:59 +08:00 |
|
qian
|
72fb0318f5
|
fix(permissions):修复租户端的权限漏洞
|
2026-09-05 00:31:14 +08:00 |
|
chengqian
|
644097fa0c
|
fix(permissions):修复用户端权限漏洞
|
2026-09-03 15:44:37 +08:00 |
|
chengqian
|
ec182c5a71
|
chore(doc):完善文档描述
|
2026-09-02 17:41:10 +08:00 |
|
qian
|
4d0e2901d9
|
fix(setting):渠道代理改为系统配置而不是配置文件
|
2026-09-01 23:34:14 +08:00 |
|
qian
|
3c749c6c0a
|
fix(setting):移除设置中多个未生效设置项
|
2026-09-01 23:11:31 +08:00 |
|
chengqian
|
ce59b12622
|
fix(cron): 兜底任务 panic,并支持自定义渠道探测间隔
panic 兜底:cron.New() 默认不带 Recover 链,robfig/cron v3 的 startJob 是裸的
`go func(){ j.Run() }()`——任意一个定时任务 panic 会直接崩掉整个进程,而不只是让该
任务失败。在 runJobInternal 内兜住并转成普通 error,进程存活且失败经 recordExecution
落进 sys_cron_jobs,管理后台可见,不再表现为一次无声重启。堆栈只进日志,避免撑爆
last_error 的展示。渠道自动探测再加一层 per-channel recover:单个渠道 panic 只跳过
自己,本轮剩余渠道继续(否则整轮被中断)。
探测间隔可配置:新增 channel_auto_test_interval_minutes(默认 5,范围 1-1440),
原先固定 */5 * * * *。用 @every 而非 */N——*/N 只在 N<60 时有意义,*/90 会被静默
解析成 */30,给出与配置不符的频率;@every 还让各实例按启动时刻错开,不会所有实例
卡在同一分钟同时探测。
配套两处基础能力:CronScheduler 记录 cron.EntryID 并新增 Reschedule(先加新条目、
成功后再摘旧条目,非法表达式时保持原调度,避免一次错配把任务彻底摘出调度器);
ConfigService 新增 OnSettingsChanged 回调钩子,挂在既有的 settings:changed 订阅上,
使配置变更能触发动作而不只是让缓存失效,多实例各自重排、无需重启。
|
2026-08-27 21:59:45 +08:00 |
|
qian
|
08c885aa6c
|
fix(web):修复前端缓存导致点击页面没反应
|
2026-08-27 00:08:31 +08:00 |
|
qian
|
40e91d9450
|
feat(channel):新增渠道调试日志功能
|
2026-08-20 10:34:15 +08:00 |
|
qian
|
8a7f0f2760
|
Merge branch 'main' into feat/responses
# Conflicts:
# docs/reference/goframe-conventions.md
# internal/logic/admin/channel.go
# web/tenant/src/views/service/ApiKeysPage.vue
|
2026-08-18 23:02:33 +08:00 |
|
qian
|
f482cadac9
|
fix(log):修复各个协议转换时缓存token数丢失的问题
|
2026-08-16 23:24:19 +08:00 |
|
qian
|
5d25673c06
|
feat(relay):完善responses协议
|
2026-08-16 19:58:20 +08:00 |
|
martin
|
1a85916e79
|
feat(update):优化程序更新启动方式
|
2026-08-15 15:57:13 +08:00 |
|
qian
|
27f4770623
|
fix(update):修复升级回滚未等待信号的问题
|
2026-08-15 00:38:11 +08:00 |
|
qian
|
95a6bce0b1
|
feat:开发环境下给后端一个落地页引导
|
2026-08-08 10:23:32 +08:00 |
|
qian
|
99cb57dcd2
|
refactor(wallet):预扣冻结金额完全走redis,提升数据库并发能力
|
2026-08-05 23:38:15 +08:00 |
|
qian
|
a4390c1cba
|
perf(relay): 减少大模型请求路径的数据库读写
- 额度累加(IncrMemberQuotaUsed/IncrApiKeyQuotaUsed)异步化,不再阻塞请求 goroutine
* context.WithoutCancel 脱父级取消,客户端断开不中断累加与缓存失效
- 审计日志(aud_request_logs)改批量通道写入,复用 UsageLogWriter
* UsageLogWriter 增加可选 DB getter,支持路由到独立审计库
* 新增 DefaultAuditLogWriter(64条/批或1s flush),OverflowSyncFallback 保证审计不丢
* UpdateTaskAudit 重试窗口扩至10次以覆盖批量 flush 延迟
- CheckApiKeyQuota 补 Redis 缓存(60s),同请求内两次检查第二次命中缓存
* IncrApiKeyQuotaUsed 落库后失效缓存,与成员额度缓存行为一致
- GetModelMapping/GetModelDeprecationInfo 合并对 mdl_models 的单次查询
* modelInfoCached 扩展弃用字段,GetModelDeprecationInfo 复用600s缓存不再裸查
* 缓存 key 加 v2 前缀隔离旧格式,避免部署窗口读到零值弃用字段
|
2026-08-03 00:48:21 +08:00 |
|
qian
|
ab463ede83
|
improve(task):定时任务优化,显示中文名称
|
2026-08-02 17:52:21 +08:00 |
|
Qian
|
2ef5a40c26
|
新的调度方式 (#14)
重构模型渠道调度系统
|
2026-08-01 22:55:08 +08:00 |
|
martin
|
a6ed67d841
|
fix: 完成 P3 细节优化项
依据《代码分析结果.md》P3 章节,逐条修复 20 项细节问题:
正确性修复:
- P3-1 锁定剩余分钟改用 math.Ceil,避免「0.9 分钟」显示为「0 分钟」
- P3-12 移除 CheckAndUpgradeLevel 中恒真的 hasUpdate 标志
- P3-14 移除 CheckTrialExpiry 中恒真表达式(count > 0 || true)调试残留,改用 RowsAffected
- P3-2 成员不存在统一返回 NewNotFoundError(404),与其它方法语义一致
安全加固:
- P3-6 X-Request-Id 加格式校验 ^[A-Za-z0-9-]{1,64}$,防日志注入
- P3-7 新增公共 EscapeLikePattern,转义 admin LIKE 搜索的 %/_ 通配符
- P3-8 Encrypt 输出加 v1: 版本前缀,Decrypt 兼容无前缀历史密文
- P3-9 turnstile 响应体读取加 64KB 上限,防内存耗尽
- P3-11 backup codes 熵由 48-bit 提升到 64-bit
- P3-15 recordAudit 对 multipart/二进制体跳过 Unmarshal 与原文落库
- P3-17 错误日志按 Content-Type 跳过 multipart/二进制体读取
- P3-16 HandleRealtime 加 panic recover 与连接生命周期日志
可维护性/一致性:
- P3-3 oauth.go 时间格式统一为 time.RFC3339
- P3-5 MsgSuccess 统一为 ok,response.go 改用常量引用
- P3-4 错误码分段策略加注释,说明空洞与跳跃的成因
- P3-13 ModelMultiplier 占位语义加注释(计费公式设计位 + 快照列)
- P3-19 抽取 registerCronJobs,主启动流程清爽
重构:
- P3-18 删除死代码 BuildBillingSummary/SummaryParams(仅测试引用),保留共用 helper
- P3-20 抽取 relay.InvalidateMemberModelScopeCache 单一失效入口,
消除三处 member_model 前缀字面量重复(原为有意跨包失效,原建议改名会破坏)
经核实保留 + 文档化:
- P3-10 TOTP 暂保留 SHA-1:totp.Validate 硬编码 SHA-1 且存储不保存算法元信息,
直接切 SHA-256 会导致校验恒失败,需配合 schema 改动,超出 P3 范围
|
2026-07-26 12:16:33 +08:00 |
|
martin
|
6665b1e113
|
refactor:重构渠道调度功能
|
2026-07-25 20:48:15 +08:00 |
|
martin
|
e9b5592666
|
fix:修复租户数据导出功能
|
2026-07-25 19:57:50 +08:00 |
|
 Qianandchengqian
|
be9e707bfd
|
修复异步图片导致的多个问题 (#12)
* fix:修复响应污染问题
* fix:修改存储相关文件为中文注释
* fix:修复二次退款问题
* fix:修复多个考虑不全面问题
1.误删用户数据
2.R2存储默认区域
3.删除失败导致孤儿记录
4.网络抖动事变时重试
5.前端无限次请求获取图片
6.文件管理权限
* fix:修复字符串截断异常问题和文件下载超时问题
* fix:修复多图问题
* fix:异步生成图片时未配置oss提示错误信息
* fix:修复关闭异步后同步生成出错问题
* feat:新增文件存储测试功能,防止设置后不生效
* fix:修复同步图片转异步后计费错误
* fix:修复无下限扣款问题
* fix:修复结算重复扣款问题
* fix:修复计费出错导致的0费用结算
* fix:修复回调双重履约
* fix:修复预扣事务
* fix:修复费用字段类型问题
* fix:修复缓存问题
* fix:修复安全问题
* fix:修复数据库操作事务问题
* refactor:重构事务使用方式,改为官方推荐的dao形式
* fix:修复余额更新隐患
* fix:修复N+1查询问题
* fix:修复密钥安全问题
* fix:结算失败时打印错误日志
* improve:优化扣款
* fix:修复用户接口越权
---------
Co-authored-by: chengqian <wuchengqian@kkidc.com>
|
2026-07-22 17:53:18 +08:00 |
|
 
|
fa053529af
|
图片请求统一异步处理 (#11)
* fix:未导入unicode包
* feat:图片异步转换
* feat:添加R2支持
* feat:新增文件管理
* fix:修复错误信息双写导致响应异常
* chore:渠道列表中添加快捷启用停止按钮
* fix:修复模型异常终端导致报错的问题
* improve:优化无可用渠道的日志打印,减少日志污染
* fix:在线体验出错缺少提示信息
* fix:修复日志库问题,只有请求日志保存到独立的库中
* feat:新增阿里图片模型说明文档
* fix:阿里千问图片生成
* fix:修复图片异步控制无效问题
* improve:优化文件展示,支持缩略图查看
* feat:实时监控中添加图片异步转换池状态信息
* improve:优化在线体验页面布局
* fix:修复异步任务状态显示异常问题
* feat:图片异步任务停止时等待任务完成后再退出程序
* chore:调整存储路径
---------
Co-authored-by: qian <wuchengqian5@163.com>
Co-authored-by: chengqian <wuchengqian@kkidc.com>
|
2026-07-18 00:26:13 +08:00 |
|
 
|
22ee0aa112
|
修复安全问题 (#9)
* fix:修复权限问题
* fix:修复项目key类型错误问题
* fix:修复rbac权限问题
* fix:修复api密钥未及时失效的问题
* improve:优化渠道调度稳定性
* improve:优化路由
* fix:修复项目预算控制缺陷
* fix:加强限流等安全措施
* feat:添加限流相关字段的前端展示及接口字段
* improve:优化注册时密码要求,只需要字母和数字即可
* feat(setting):添加注册限流设置
* improve:优化前端数字类型转换
* chore:rbac权限放行
---------
Co-authored-by: chengqian <wuchengqian@kkidc.com>
Co-authored-by: qian <wuchengqian5@163.com>
|
2026-06-23 22:47:54 +08:00 |
|
qian
|
6712ec88df
|
fix(pay):修复订单回调和超时未关闭问题
|
2026-06-13 20:15:48 +08:00 |
|
chengqian
|
a219a1f67e
|
fix:系统优雅退出
|
2026-06-08 17:39:21 +08:00 |
|
martin
|
6c82a3fed7
|
fix:修复文件缺失
|
2026-06-07 22:48:29 +08:00 |
|
martin
|
0c05366136
|
feat(update):新增快捷升级功能
|
2026-06-07 22:27:01 +08:00 |
|
martin
|
b63e5440c6
|
fix(open):修复开放平台权限功能
|
2026-06-07 08:50:02 +08:00 |
|
qian
|
f0ac2d90d4
|
fix:移除用户和key级别的并发限制
|
2026-06-05 21:11:38 +08:00 |
|
qian
|
879d94a957
|
feat(task):优化定时任务,减少写表操作
|
2026-06-04 00:10:18 +08:00 |
|
qian
|
248c5f85b4
|
feat(task):添加定时任务,自动清理预扣费表中的内容
|
2026-06-03 23:51:16 +08:00 |
|
chengqian
|
ccf457592b
|
fix(relay):修复多个并发问题
|
2026-06-03 17:03:09 +08:00 |
|
qian
|
5d48dbcdc2
|
refactor(plan):移除套餐相关的所有修改
|
2026-05-25 22:26:32 +08:00 |
|
qian
|
cbe1317f7c
|
refactor(pay):重构套餐和支付功能
|
2026-05-24 11:42:33 +08:00 |
|
qian
|
8eb38bf162
|
improve(db):优化数据库链接
|
2026-05-23 14:46:08 +08:00 |
|
qian
|
f0160c57d8
|
feat(monitor):添加模型渠道监控
|
2026-05-23 13:33:29 +08:00 |
|
qian
|
50a21f0d2a
|
fix(bill):修复冻结金额无法释放的问题
|
2026-05-22 01:13:18 +08:00 |
|
qian
|
555bddf5c3
|
refactor(payment):重构支付功能
|
2026-05-21 23:06:01 +08:00 |
|
qian
|
42f2b2e1c0
|
feat(model):阿里模型添加异步支持
|
2026-05-17 15:59:08 +08:00 |
|
qian
|
dc55125f6e
|
refactor(notify):重构站内信功能
|
2026-05-16 21:37:53 +08:00 |
|
chengqian
|
8610974227
|
feat(script):重构docker部署文件
|
2026-05-13 19:10:24 +08:00 |
|
chengqian
|
bb5bbb42e7
|
feat:可执行文件嵌入数据库变更记录,项目启动时更新数据表
|
2026-05-12 18:32:52 +08:00 |
|
chengqian
|
2a1409cbbc
|
feat:支持打包前端到二进制文件中,方便快速部署和测试
|
2026-05-11 16:16:43 +08:00 |
|
qian
|
378330f114
|
refactor:重构版本信息,前端改用bun包管理工具
|
2026-05-10 13:27:04 +08:00 |
|
qian
|
3405280224
|
后端功能首次提交
|
2026-05-10 12:21:27 +08:00 |
|