小鱼开发
d84a4e9d65
fix(db): 放宽 release_package 唯一约束,支持同平台多文件(dmg + app.tar.gz)
...
- 唯一约束从 (release_id, platform, architecture) 改为包含 filename
- 新增 Alembic 迁移 7d855b38fe83
2026-05-26 22:57:20 +08:00
小鱼开发
8cddaec70e
chore(release): 优化发布脚本并统一表名
...
- publish_release.py: 自动加载.env,macOS Universal拆分为x86_64+aarch64,七牛云目录按平台区分
- 重命名表 mjk_release_packages -> mjk_app_release_packages,同步约束名
- 更新相关文档
2026-05-26 10:13:52 +08:00
小鱼开发
4af42c157e
fix: BGM 混音链路修复——URL 先下载到本地缓存再混音
...
- fix: 删除 BGM 预览硬编码开发者路径,改为使用 url 字段
- fix: BGM 混音前检测是否为 URL,先下载到 bgm_cache 本地缓存
- fix: Rust mix_bgm_to_video 恢复 validate_safe_path 校验,拒绝 URL
- feat: 新增 bgm_cache 目录及自动清理策略(30天/200MB上限)
- feat: Settings 缓存清理扩展为媒体缓存(video + BGM 统一清理)
- chore: BGM url 字段改为后端必填,同步 schema/model/seed/迁移
2026-05-25 00:54:17 +08:00
小鱼开发
06ec0ee202
feat: BGM 云端化 + 步骤页面 UI 统一重构
...
后端:
- 新增 BGM 数据库模型、Schema、CRUD、API 路由
- BgmMusic 增加 url 字段存储七牛云地址
- Alembic 迁移: 创建 BGM 表 + 添加 url 字段
- import_bgm.py 导入时自动上传七牛云 (meijiaka-zy/bgm/...)
前端:
- VideoCompose BGM 选择改为卡片弹窗 (系统BGM + 本地上传)
- 去掉 BGM 硬编码本地路径, 直接使用云端 URL
- CoverDesign 视觉重构: 绿色边框卡片、角标、hover 遮罩
- CoverDesign 去掉预选背景, 默认空白需手动选择
- 所有步骤按钮规范统一: 左=重新生成(主色), 右=导出/预览(次色)
- 预览按钮状态统一: 文字变为'视频预览中...', 保持 btn-secondary
- 去掉所有步骤按钮的 svg/emoji 图标
Rust:
- mix_bgm_to_video 支持临时文件保护 (输入输出同路径时自动中转)
- FFmpeg BGM 混合使用 aloop 循环 + amix 滤镜
2026-05-24 15:39:54 +08:00
小鱼开发
d7fa20a890
feat: 样式系统重构、图标更新、FFmpeg 模块调整及配置更新
...
- 更新 .gitignore 排除私钥和 IDE 配置
- 重构前端样式系统(新增 reset.css/animations.css/components/)
- 更新应用图标资源(多种尺寸)
- 调整 FFmpeg 命令模块
- 更新部署脚本和图标生成脚本
- 新增数据库迁移脚本
- 添加签名公钥文件
2026-05-21 10:45:04 +08:00
小鱼开发
cbd4068776
fix(db): unify table name prefix to mjk_ for update tables
...
- Rename app_releases → mjk_app_releases
- Rename release_packages → mjk_release_packages
- Update ForeignKey reference and migration file
- Add pre-commit hook: check_table_prefix.py to prevent future violations
2026-05-15 18:28:07 +08:00
小鱼开发
542bc1f070
refactor(alembic): squash all migrations into clean initial_schema
...
- Replace 8 messy migration files (~2000+ lines) with single clean initial_schema (215 lines)
- All table comments defined inline at CREATE TABLE time (no more alter_column spam)
- Final table names used directly (mjk_broll_categories, etc. — no rename chain)
- Includes diagnosis report at docs/alembic-diagnosis-report.md
2026-05-15 17:35:54 +08:00
小鱼开发
4fa8bd7c65
fix(alembic): 修复迁移历史分支,合并双 head
...
将 rename_mjk_to_mjk_broll 的 down_revision 从 e02c96e264d9 改为 d0a7c5a375c6,
解决 alembic upgrade head 时的 Multiple head revisions 错误。
2026-05-15 17:03:17 +08:00
小鱼开发
cb56698836
feat: 应用自动更新系统 + 草稿箱删除 + 分类缓存优化
...
- 新增 Tauri 自动更新(updater 插件)
- Rust: 集成 tauri-plugin-updater + tauri-plugin-process
- 后端: app_releases / release_packages 表 + /update/check API
- 前端: UpdateDialog 组件 + useUpdater hook + SystemUpdate 手动检查
- 发版脚本: scripts/publish_release.py(扫描 .sig → 上传七牛云 → 写入数据库)
- 配置 test 环境域名 dev.tapi.meijiaka.cn
- 草稿箱删除功能
- DraftListItem 添加删除按钮
- MyWorks 添加删除确认弹窗 + localProjectApi.deleteProject 调用
- 创作主题分类本地缓存
- scriptApi.getCategoriesCached() 先读 localStorage 再静默刷新
- TermsModal tab 居中
- 更新应用图标(Big Sur 风格圆角矩形)
- 清理: 删除未使用文件 create_user.py / video-replace-mvp.py / DEPS_*.md
2026-05-15 16:41:57 +08:00
小鱼开发
ada29a48a8
feat: 空镜素材分类&数据入库
...
- 素材表统一为 mjk_broll_ 前缀(mjk_broll_categories/materials/tags)
- 新增 218 条分类 seed + 2495 条素材 seed(含 ffprobe 时长)
- 新增 Alembic 迁移: rename mjk_* to mjk_broll_*
2026-05-15 15:49:29 +08:00
小鱼开发
17455b405c
Revert "feat: 空镜素材分类&数据入库"
...
This reverts commit 91e5cdefbb .
2026-05-15 15:45:55 +08:00
小鱼开发
91e5cdefbb
feat: 空镜素材分类&数据入库
...
- 重命名素材表 mjk_* -> broll_*,与模型命名保持一致
- 新增 182 个三级场景分类 seed 数据
- 新增 2495 条素材 INSERT SQL(含 ffprobe 时长探测)
- 新增 Alembic 迁移: rename mjk_categories/materials/tags to broll_*
2026-05-15 15:41:23 +08:00
小鱼开发
fc4ebb7de0
feat: 封面背景图迁移到数据库,按script_code分类获取
...
后端:
- 新建 mjk_cover_backgrounds 表(Alembic e02c96e264d9)
- CoverBackground模型/CRUD/Schema/API(GET /cover-backgrounds?script_code=)
前端:
- ScriptCreation保存categoryCode到store和meta.json
- CoverDesign从API获取背景图,替换bg-config.json
- 修复useEffect不响应categoryCode变化的bug
其他:
- 删除Rust遗留的generate_cover_image命令和burn_ass_subtitle_to_image函数
2026-05-13 11:07:11 +08:00
小鱼开发
447f3c2ffe
feat: 空镜素材系统数据库化 + 修复积分不足弹窗叠加
...
后端:
- 新增 BrollCategory/BrollMaterial/BrollTag 模型及表(mjk_categories/materials/tags)
- 新增 Alembic 迁移 69274ce979a5
- 新增 broll_category/broll_material CRUD 层
- 重构 material_service:删除 JSON 配置,改用 PostgreSQL + Redis 去重
- 新增 /materials/batch-match 接口,删除 /materials/reload
- usage_count 原子递增,Redis 失败自动降级
前端:
- materials API 改为 projectId 去重,新增 batchMatch
- VideoGeneration 批量匹配改用 batchMatch,删除 usedUrls 手动维护
- 修复积分不足时进度弹窗与充值弹窗叠加的 bug
- 操作前预检积分,不足时显示提示条+立即充值按钮
2026-05-11 17:40:38 +08:00
小鱼开发
04e467e433
feat(points): 积分系统收尾 + 充值弹窗改造 + 命名统一
...
后端:
- 微信回调 db.commit 失败仍返回 SUCCESS,避免无限重试
- recharge() 加 order_id 幂等保护,防重复充值
- time_expire 使用北京时间(UTC+8),修复时区 bug
- 充值档位后端配置化(points-config.yaml + /recharge-options API)
- 代码审查 20 项修复(认证加固、扣费顺序、错误响应、状态同步等)
前端:
- 充值弹窗:自动轮询 + 【我已支付】手动兜底
- 二维码倒计时显示,过期后遮罩 + 刷新按钮
- 充值档位从后端动态加载
- 去掉 select/qrcode 弹窗标题,金额红色突出显示
- 全项目命名统一(视频生成/压制成片/配音合成/声音复刻等)
- Modal 关闭按钮独立于 title 显示
2026-05-09 21:29:35 +08:00
小鱼开发
0722225c62
feat(points): 积分流水表支持时长显示,说明字段简化
...
后端:
- PointTransaction 模型添加 duration 字段(float, nullable)
- PointTransactionItem schema 添加 duration
- consume() 新增 duration 参数,写入流水记录
- 各业务 description 统一简化为【脚本生成】【配音合成】等格式
- duration 类业务(tts/video)传入实际秒数
- Alembic 迁移: 95eb1a1c0af9_add_duration_to_point_transaction
前端:
- PointTransaction 类型添加 duration
- UsageDetail: 来源列 → 时长列(有值显示 xs,无值显示 -)
- 说明列直接显示后端返回的简化描述
2026-05-09 17:08:50 +08:00
小鱼开发
c6eba97b43
feat(points): 积分消耗系统全链路集成
...
后端:
- 简化积分服务: 删除 freeze/settle/refund, 保留 consume/recharge/expire
- 计费配置化: config/points-config.yaml 驱动 fixed/duration/free 三种模式
- TTS 时长探测: app/utils/audio_utils.py (httpx + mutagen 纯 Python)
- Python 层扣费: script(5)/polish(1)/title(1)/voice_clone(200)/tts(按秒)/video(按秒)
- 字幕 free_services: caption/auto_align 不扣费
- 新增 POST /points/consume 端点(402余额预检)
- 新增 check_balance + /points/cost 返回 sufficient/balance/required
- 新增 expire_batches 定时回收, 接入 scheduler main(每5分钟)
- 删除废弃 tts_handler.py
- Alembic 迁移: 删除 frozen/total_refunded 字段
- 同步 requirements.lock 添加 mutagen
前端:
- Rust/IPC 层扣费: compose(5)/subtitle_burn(2)/cover_design(2)
- 字幕打轴改异步: 走 scheduler subtitle handler
- 对口型传 duration: VideoGeneration 传 actualDuration
- 创建 pointStore: 全局余额 + fetchBalance + 充值弹窗控制
- 402 欠费弹 RechargeModal: VideoGeneration/SubtitleBurning/CoverDesign
- 修复 VoiceDubbing.tsx 类型错误 (alignResult never)
- 同步 PointBalance 类型(删除 frozen/available/totalRefunded)
Refs: 积分消耗集成收尾
2026-05-09 15:42:54 +08:00
小鱼开发
fbef15ba7e
chore(alembic): 重建单一初始迁移脚本
...
- 合并为单一初始全量迁移,覆盖 users/user_devices/user_points/point_batches/point_transactions/point_recharge_orders
- 去掉所有 ForeignKey 约束(业务层软删除,不依赖数据库级联)
- 去掉不必要的索引,仅保留 Unique 约束自带索引
- 修复 mjk_users.id 为 UUID 类型(非 String(36))
- 修复 user_device.last_active_at 时区类型一致性(添加 timezone=True)
2026-05-08 14:40:22 +08:00
小鱼开发
d1ab7b8866
fix(alembic): mjk_users/mjk_user_devices id 和 user_id 改为 UUID 类型
...
与模型定义(BaseModel.id = UUID)和积分表外键保持一致。
2026-05-08 14:16:07 +08:00
小鱼开发
71086bd912
fix(alembic): 第一个迁移脚本兼容新数据库
...
32ec168f2552 原设计为增量迁移(假设 mjk_users 表已存在),
但新数据库从零开始时表不存在,导致 ALTER TABLE 失败。
修改:upgrade() 中先检查 mjk_users 表是否存在:
- 不存在 → 用 create_table 创建完整表(含所有字段)
- 存在 → 保持原有 add_column 行为
downgrade() 保持不变。
2026-05-08 14:02:09 +08:00
小鱼开发
b597d715c8
fix: 认证流程修复 + alembic 迁移补全 + 前端僵尸代码清理
...
后端:
- 修复 get_current_user 未校验 is_active,被封禁用户仍可用旧 Token
- auth.py 捕获 ValueError 转 HTTPException(验证码错误、账号被封、Token 无效等不再返回 500)
- 修正 SMS 每日上限注释(3次 → 10次)
- 修复迁移脚本外键引用错误:users.id → mjk_users.id
- 新建积分系统 4 张表的迁移(mjk_user_points/batches/transactions/recharge_orders)
- pyproject.toml 补充 alembic + psycopg2-binary 依赖
- ruff 格式修复(import 排序等)
前端:
- 修复 doRefreshToken 成功后不持久化新 Token 的严重 bug
- 修复应用重启后 SSE 不自动重连(收不到踢人通知)
- 修复 App.tsx handleLogout 未 await
- client.ts 统一从 utils/env 导入 isTauri,默认 base URL 兜底 localhost:8000
- 清理 ~20 个未使用的 hooks/utils/api 模块/组件导出
- 修复所有 ESLint 警告(206 → 0)和 TSC 错误
- 测试通过(5/5)
其他:
- 更新 requirements.lock 和 uv.lock
2026-05-08 11:10:48 +08:00
小鱼开发
51521fc0dd
feat(payment): 微信支付 APIv2 + 积分充值 + SMS 短信 + 双 Token 认证
...
- 微信支付从 APIv3 降级为 APIv2(MD5/XML)
- 积分系统:充值下单、微信回调、消费冻结/结算/退款
- SMS B2M 短信验证码服务
- 双 Token 认证(Access 30min + Refresh 30days)
- SSE 单设备踢人
- 用户设备管理、积分账户模型
- Alembic 迁移脚本
2026-05-07 18:43:02 +08:00
小鱼开发
bb08d0f586
refactor: 从智影 Fork 重构为智剪,独立 Docker 基础设施,开发模式认证兜底
...
主要变更:
- 修复 /tasks/script 路由 404(去掉重复 prefix)
- 开发模式自动认证兜底(无需登录即可测试流程)
- Docker 基础设施独立化(共用 db/redis)
- 前端 API 端口改为 8081
- 新增 TTS/语音克隆、视频粗剪、音频混音等智剪功能
- 删除智影专属模块(avatar、model_usage、qiniu 上传等)
2026-04-21 12:35:50 +08:00
小鱼开发
74983ce5ec
feat: init meijiaka-zj project from ai-meijiaka template
2026-04-20 16:39:57 +08:00