|
|
ded5c4c44f
|
fix bug
|
2026-04-04 20:13:23 +08:00 |
|
seaislee1209
|
9a6d95a69d
|
fix: v0.18.0 商业级加固 — 并发安全、流式上传、错误反馈、类型修复
Build and Deploy / build-and-deploy (push) Successful in 3m13s
- TOS 流式上传 upload_from_file_path(避免大文件 OOM)
- 视频生成完成后下载一次复用(TOS 上传 + 首帧提取)
- 并发安全:group thumbnail 用 select_for_update 原子更新
- 跨团队校验:_resolve_asset_group_all 加 group__team 过滤
- 异常信息脱敏:文件上传失败不再泄露内部异常
- SSRF 防护:download_to_temp 校验 URL scheme
- poll lock 终态释放:cache.delete 在 record.save 后调用
- duration=null 语义区分:ffprobe 失败存 None 非 0
- 前端 duration 未知 toast 警告:素材时长未确定时提示用户
- 搜索 API 失败 toast:素材搜索失败时反馈用户
- 视频保存降级标记:临时 URL 降级时设 error_message
- TypeScript 类型修复:AssetItem/AssetSearchResult.duration 改为 number|null
- rebuildMentionSpans 补完 assetId/assetType/assetName/duration 属性
- paste DOMPurify 白名单补完新 data attributes
- resolved_url NameError 修复:非素材库视频/音频引用用 url
- process_asset_media group 删除保护
- download_to_temp 改为 public API
- 清理前端死代码
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-04 18:49:08 +08:00 |
|
seaislee1209
|
2e72c82116
|
Merge branch 'dev' of https://gitea.airlabs.art/zyc/video-shuoshan into dev
Build and Deploy / build-and-deploy (push) Successful in 4m39s
|
2026-04-04 17:36:39 +08:00 |
|
seaislee1209
|
da9a1413c3
|
v0.18.0 素材库多类型支持 + @ 引用改为单素材
对齐火山 API 文档(Asset URI 小写、HEIC/HEIF、DeleteAsset)
素材库支持视频/音频上传(按类型分三区显示、前端校验、拖拽上传)
@ 引用从素材组改为单个素材(搜索返回具体素材、即时数量/时长检查)
ffmpeg 视频封面帧提取 + 音频时长读取(Celery 异步)
生产级安全修复(跨团队校验、异常信息脱敏、下载大小限制)
|
2026-04-04 17:36:35 +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 |
|
|
|
43228d255e
|
fix celery
|
2026-04-04 10:15:23 +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 |
|
|
|
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
|
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 |
|