1ff985d64f
fix: Deploy to K3s 添加 3 次重试,防止内网抖动导致构建失败
...
Build and Deploy / build-and-deploy (push) Successful in 6s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:35:31 +08:00
05097d58f9
perf: gunicorn 启用 gevent 异步模式,并发从 2 提升到 400
...
Build and Deploy / build-and-deploy (push) Successful in 13s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:33:58 +08:00
ca6f2a0346
fix: 添加 Redis 分布式锁防止 poll_video_task 重复派发
...
Build and Deploy / build-and-deploy (push) Failing after 6m17s
recover_stuck_tasks 在 API 超时 >3 分钟时可能重复派发同一任务,
导致重复扣费风险。通过 cache.add 实现互斥锁保护。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:21:38 +08:00
55c26fb1f5
Merge branch 'dev' of https://gitea.airlabs.art/zyc/video-shuoshan into dev
Build and Deploy / build-and-deploy (push) Successful in 6s
2026-04-04 14:12:09 +08:00
49e06fd3c4
fix 镜像原
2026-04-04 14:11:39 +08:00
seaislee1209
9bca1bc20f
feat: v0.17.0 对齐火山 API 文档 + 素材库多类型支持 + 删除功能
...
Build and Deploy / build-and-deploy (push) Successful in 27s
- Asset URI 大小写修复(Asset:// → asset://)
- HEIC/HEIF 图片格式支持
- 素材删除功能(DeleteAsset API + 前端 hover 删除按钮)
- 素材库支持视频/音频上传(asset_type 字段 + 后端类型检测)
- 素材组详情页按类型分三区(肖像/视频/音频)+ 红字提示
- @ 引用全发(组内所有 active 素材按类型发送)
- 前端素材库上传校验(validateAssetFile 全套校验)
- Failed 素材 hover 显示错误原因
- 正在生成的视频可点重新编辑
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:07:38 +08:00
befd7c8d49
add sql prod
Build and Deploy / build-and-deploy (push) Has been cancelled
2026-04-04 14:04:53 +08:00
f85a3d69d0
fix: kubectl 自动安装兜底 + 阿里云镜像源
...
Build and Deploy / build-and-deploy (push) Failing after 5m5s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:54:49 +08:00
ffbd7cf016
add prod 镜像仓
Build and Deploy / build-and-deploy (push) Successful in 12s
2026-04-04 13:52:43 +08:00
6c9fddf5fe
更新测试文档
Build and Deploy / build-and-deploy (push) Failing after 9m20s
2026-04-04 13:36:23 +08:00
seaislee1209
ee7cdec9e3
add docs
Build and Deploy / build-and-deploy (push) Successful in 5s
2026-04-04 13:27:13 +08:00
70725894bd
pull test
Build and Deploy / build-and-deploy (push) Successful in 12s
2026-04-04 13:21:57 +08:00
aff37ee4a8
chore: verify DaoCloud mirror build
Build and Deploy / build-and-deploy (push) Successful in 5s
2026-04-04 13:15:40 +08:00
a7a9fdf4fe
fix: use DaoCloud mirror for base images to avoid Docker Hub timeout
Build and Deploy / build-and-deploy (push) Successful in 25s
2026-04-04 13:14:20 +08:00
ec5622534f
chore: verify docker cache hit
Build and Deploy / build-and-deploy (push) Failing after 19s
2026-04-04 13:11:48 +08:00
4175474149
chore: rebuild after clearing docker cache
Build and Deploy / build-and-deploy (push) Successful in 3m23s
2026-04-04 13:06:44 +08:00
8c31e7e36a
chore: trigger rebuild with updated docker mirrors
Build and Deploy / build-and-deploy (push) Successful in 5s
2026-04-04 13:05:50 +08:00
d01301433c
chore: rebuild after docker mirror fix
Build and Deploy / build-and-deploy (push) Successful in 20s
2026-04-04 13:04:08 +08:00
27655910a4
chore: rebuild after runner config fix (docker.sock mount)
Build and Deploy / build-and-deploy (push) Failing after 0s
2026-04-04 13:02:24 +08:00
c885051ab3
fix: nginx config serving assets as text/html instead of correct MIME type
Build and Deploy / build-and-deploy (push) Failing after 20s
2026-04-04 12:58:28 +08:00
5fa0af4acd
chore: trigger rebuild for dev deployment
Build and Deploy / build-and-deploy (push) Successful in 5s
2026-04-04 12:56:30 +08:00
06587edc10
Merge remote-tracking branch 'origin/temptudou' into dev
Build and Deploy / build-and-deploy (push) Successful in 1m0s
2026-04-04 12:50:54 +08:00
1a2bd982af
add test
Build and Deploy / build-and-deploy (push) Failing after 19s
2026-04-04 12:46:26 +08:00
seaislee1209
e885d92745
add .
2026-04-04 12:45:29 +08:00
1c4b491e10
fix: correct MySQL private domain name (remove extra hyphen)
...
Build and Deploy / build-and-deploy (push) Successful in 5s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 11:34:40 +08:00
36ff1b5aca
fix build dev
Build and Deploy / build-and-deploy (push) Successful in 2m17s
2026-04-04 11:18:17 +08:00
43228d255e
fix celery
2026-04-04 10:15:23 +08:00
seaislee1209
34e56ddf86
feat: v0.16.0 即时上传 + 音频视频前端校验 + 资产页修复 + Toast UI
...
- 即时上传:拖入文件后立刻上传 TOS,spinner/红色重试/禁用提交
- 音频校验:格式(MP3/WAV) + 时长[2,15.4]s + 总时长≤15.4s
- 视频校验:格式(MP4/MOV) + 时长[2,15.4]s + 总时长≤15.4s
- 后端 blob: URL 兜底拦截 + 音频错误文案优化
- 资产页:nginx 403 修复 + 倒序排列 + 加载更多按钮
- Toast:glass-card 毛玻璃风格 + 橙色感叹号图标
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:12:06 +08:00
seaislee1209
a4c36e4fee
fix: v0.15.1 生成记录软删除 + 双重结算修复
...
Build and Deploy / build-and-deploy (push) Successful in 4m50s
1. 软删除:GenerationRecord 新增 is_deleted 字段,DELETE 接口改为标记不真删,
用户生成列表/资产页/任务详情过滤已删除记录,消费记录和管理后台不过滤
2. 双重结算修复:前端轮询(video_task_detail_view)不再调火山API和结算,
只读数据库状态,结算完全交给 Celery
3. _settle_payment 加防重入检查(frozen_amount==0 直接 return)
4. 部署需跑 migration 0016_add_is_deleted_to_generationrecord
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:05:08 +08:00
seaislee1209
b50ad147cd
feat: v0.15.0 Seedance 2.0 Fast 模型上线 + 四档计费
...
Build and Deploy / build-and-deploy (push) Successful in 3m0s
- Fast 模型:取消隐藏 Toolbar 选项,用户可选 AirDrama / AirDrama Fast
- 四档计费:按模型+有无视频参考选单价(2.0: 46/28, Fast: 37/22 元/百万tokens)
- QuotaConfig 新增 base_token_price_fast / base_token_price_fast_video 字段
- 系统设置页 4 个价格输入框(Seedance 2.0 + Fast 各两个)
- 前端预估动态选价:根据当前选的模型和有无视频参考实时计算
- 推理接入点:Fast EP ep-m-20260329211530-68999
- 消费记录表格+CSV+详情弹窗加"模型"列
- 轮询间隔改为全程固定 5 秒
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 20:33:02 +08:00
seaislee1209
7a358ea9ef
fix: v0.14.3 GenerationRecord 加 updated_at + 轮询改固定5秒
...
Build and Deploy / build-and-deploy (push) Successful in 2m25s
- GenerationRecord 加 updated_at 字段(之前只在 QuotaConfig 上,Celery 查 GenerationRecord 报 FieldError)
- 后端轮询间隔从渐进式(5s→15s→30s)改为全程固定 5 秒(RPM 12000 足够,400 并发仅用 40%)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 18:33:29 +08:00
seaislee1209
1b707282ae
fix: Docker 构建加 --no-cache 禁用缓存(修复 Celery 镜像代码过期)
...
Build and Deploy / build-and-deploy (push) Successful in 2m37s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 17:21:25 +08:00
seaislee1209
99c7e9f4bb
chore: 触发重新构建镜像(修复 Celery updated_at FieldError)
...
Build and Deploy / build-and-deploy (push) Successful in 2m38s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 17:01:22 +08:00
seaislee1209
57270a7faf
fix: 重新添加 updated_at migration(修复线上 IntegrityError)
...
Build and Deploy / build-and-deploy (push) Successful in 2m13s
Model 有 updated_at 字段但线上数据库缺少该列,INSERT 时报
"Field 'updated_at' doesn't have a default value",导致视频生成 500。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 04:09:47 +08:00
seaislee1209
4138d374df
Revert "fix: 添加 GenerationRecord.updated_at 字段(修复 Celery 僵尸任务恢复报错)"
...
Build and Deploy / build-and-deploy (push) Successful in 2m14s
This reverts commit 81f9cc923a9c6458f7ac49dd382a7d32ab404ef8.
2026-03-29 03:58:28 +08:00
seaislee1209
81f9cc923a
fix: 添加 GenerationRecord.updated_at 字段(修复 Celery 僵尸任务恢复报错)
...
Build and Deploy / build-and-deploy (push) Successful in 2m32s
recover_stuck_tasks 和 poll_video_task 依赖 updated_at 字段判断僵尸任务,
但该字段未在 model 中定义,导致 Celery worker 持续报 FieldError,所有异步轮询失败。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 03:46:10 +08:00
seaislee1209
b25d1f3e8c
fix: v0.14.2 修复长提示词标签被挤出可视区域
...
Build and Deploy / build-and-deploy (push) Successful in 2m16s
- 截断计算时预留mention标签的额外渲染宽度(每个约24px),防止标签被overflow:hidden裁掉
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 02:55:02 +08:00
seaislee1209
973a4f049d
feat: v0.14.2 推理接入点EP + 参考图片上限9张 + reEdit标签修复
...
Build and Deploy / build-and-deploy (push) Successful in 2m34s
- 推理接入点:model字段优先使用EP接入点ID(ARK_ENDPOINT_SEEDANCE环境变量),无EP降级到模型ID
- 参考图片上限:提交时校验image类型不超过9张,超限返回友好中文提示
- 上传图片标签编号:接着已有素材编号,不再从1重新计数
- 轮询同步assetMentions:polling完成时同时更新references和assetMentions
- reEdit标签修复:用纯文本prompt重建标签,避免blob:URL失效导致图片标签丢失
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 01:43:35 +08:00
6853b08fc9
refactor: 切换 Celery broker 为火山引擎 Redis + 僵尸任务自动恢复
...
Build and Deploy / build-and-deploy (push) Successful in 2m16s
- Redis 从阿里云切换到火山引擎(同区域低延迟)
- delay() 失败改为 warning 日志 + 重试一次(不再静默吞异常)
- 新增 recover_stuck_tasks 定时任务,每10分钟扫描卡住的任务重新派发
- 轮询时每次 touch updated_at,防止活跃任务被误判为僵尸
- Celery worker 启用内嵌 Beat 调度器(-B 参数)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 10:26:04 +08:00
seaislee1209
3cdeb55367
chore: 移除误创建的 docs 文件(正确位置在仓库外 AirDrama 根目录)
...
Build and Deploy / build-and-deploy (push) Successful in 4m7s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 23:34:51 +08:00
seaislee1209
b219c01ea7
docs: 更新版本管理和项目总览(v0.14.1)
...
Build and Deploy / build-and-deploy (push) Successful in 4m47s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 23:28:20 +08:00
seaislee1209
f3f8d08b56
feat: v0.14.1 视频参考双单价 + Token刷新防抖 + CSV导出上限
...
- 计费双单价:含视频输入28元/百万tokens,不含视频输入46元/百万tokens
- QuotaConfig 加 base_token_price_video 字段,系统设置页两个并排输入框
- 预估费用和实际结算按参考素材类型自动选择单价
- Token 刷新加锁:同页面内并发 401 共用一次 refresh 请求
- 关闭 BLACKLIST_AFTER_ROTATION:防止快速刷新导致误登出
- ProtectedRoute 容错:请求中断时自动重试,不误跳转
- CSV 导出上限从 100 提升到 10000
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 23:25:58 +08:00
35ebb55893
refactor: 切换 Celery broker 为阿里云 Redis,移除自建 Redis Pod
...
Build and Deploy / build-and-deploy (push) Successful in 2m28s
复用现有阿里云 Tair 实例(db8),减少集群内 Pod 数量和运维负担。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 13:32:47 +08:00
seaislee1209
60713ea009
feat: v0.14.0 后端异步轮询(Celery + Redis)
...
Build and Deploy / build-and-deploy (push) Has been cancelled
- Celery 异步任务:任务提交后后端持续轮询火山 API 直到拿到终态,用户关浏览器也不会丢视频
- 渐进式轮询:前2分钟每5秒、2-10分钟每15秒、10分钟后每30秒
- 优雅降级:无 Redis 时静默跳过,不影响现有前端轮询
- K8s:新增 Redis Deployment + Service、Celery Worker Deployment
- CI/CD:deploy.yaml 自动部署 Redis/Celery,每次推代码自动重启 celery worker
- 兜底:poll_stuck_tasks management command 清理僵尸任务
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 13:27:16 +08:00
seaislee1209
911f3c158b
feat: v0.13.3 消费记录详情弹窗 + 参考素材预览下载 + CSV 全量导出
...
Build and Deploy / build-and-deploy (push) Has been cancelled
- 消费记录点击行弹出任务详情弹窗(任务ID、状态、错误原因+原始错误、基本信息、完整提示词、参考素材)
- ReferenceList 共用组件:图片点击大图、视频/音频点击播放、下载按钮
- VideoDetailModal 参考素材加播放和下载按钮
- 素材库引用图片修复:用 thumb_url 替代 asset:// 显示,轮询时也更新 references
- raw_error 字段:存储火山原始错误信息,仅管理员弹窗可见
- CSV 导出扩充至 21 列(超管)/ 17 列(团管):新增任务ID、完成时间、视频时长、比例、种子值、原始错误、参考素材数
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 13:10:28 +08:00
seaislee1209
49616128da
feat: v0.13.2 消费记录增加耗时列
...
Build and Deploy / build-and-deploy (push) Successful in 2m31s
- GenerationRecord 新增 completed_at 字段,任务完成/失败时记录时间
- 超管/团管/个人消费记录 API 返回 completed_at
- RecordsPage、TeamRecordsPage 表格新增"耗时"列
- CSV 导出包含耗时字段
- 历史记录 completed_at 为空显示"-"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 01:56:26 +08:00
seaislee1209
7a0be57227
fix: v0.13.1 烂图修复 + 额度检查修正
...
Build and Deploy / build-and-deploy (push) Successful in 2m46s
【烂图修复】
①backendToFrontend 过滤空 URL 引用
②@ 弹窗音频显示音符符号而非烂图
③hover 预览音频显示音符而非烂图
④视频详情空 previewUrl 显示「无预览」
【额度检查修正】
⑤spending_limit 检查:已完成用 cost_amount,处理中用 frozen_amount
⑥超限提示改为显示总额度/已消费/剩余/本次预估
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 00:47:23 +08:00
seaislee1209
727be720b4
feat: v0.13.0 主副管理员 + 素材引用 bug 修复 + admin 保护
...
Build and Deploy / build-and-deploy (push) Successful in 17m15s
【主副管理员】
①User 加 is_team_owner 字段,现有团管自动升为主管
②主管可指定/取消副管理员,副管不能再指定别人
③副管不能禁用/修改其他管理员
④超管团队详情支持三种角色显示和切换
【素材引用 bug 修复】
⑤span.replaceWith('') → span.remove(),删除引用后标签真正移除
⑥switchMode 时清空 assetMentions,切换模式不带旧素材
⑦fallback 只在纯文本时生效,用户删标签后不再偷偷加回
⑧后端跳过未解析的 asset:// URL,不发给火山 API
【admin 保护】
⑨admin 账号不可被任何人禁用
⑩admin 密码不可被其他超管重置
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 00:14:58 +08:00
seaislee1209
f4255a04ee
fix: 公告弹窗改为 CSS Module 规范
...
Build and Deploy / build-and-deploy (push) Successful in 10m8s
inline style 改为 CSS Module,z-index/圆角/关闭按钮与其他弹窗统一
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 22:13:42 +08:00
seaislee1209
0ab5523ed1
feat: v0.12.6 公告弹窗 + HTML 编辑器
...
Build and Deploy / build-and-deploy (push) Successful in 3m5s
①公告改为弹窗(用户未读自动弹出,已读不再弹)
②生成页右上角小铃铛按钮可重新查看公告
③公告支持 HTML 渲染(加粗/红字/蓝字/标题/分割线/列表)
④超管公告编辑器加格式工具栏 + 预览按钮
⑤去掉旧的公告横幅
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 20:57:58 +08:00