All checks were successful
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>
19 lines
442 B
Python
19 lines
442 B
Python
# Generated by Django 4.2.29 on 2026-04-04 17:59
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('generation', '0018_add_thumbnail_and_duration'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AlterField(
|
|
model_name='asset',
|
|
name='duration',
|
|
field=models.FloatField(default=None, null=True, verbose_name='时长(秒)'),
|
|
),
|
|
]
|