小鱼开发
|
63cbc10118
|
fix: 统一预计文案,TTS预计积分恢复±1积分范围
|
2026-05-13 17:33:00 +08:00 |
|
小鱼开发
|
cf1352ed41
|
fix: TTS合成成功弹窗显示后端实际扣费积分
|
2026-05-13 17:28:15 +08:00 |
|
小鱼开发
|
356de86b1f
|
fix: 积分不足弹窗文案改为预估消耗XX积分
|
2026-05-13 17:23:47 +08:00 |
|
小鱼开发
|
d7b5d78c13
|
fix: 积分不足弹窗文案统一格式
|
2026-05-13 17:16:51 +08:00 |
|
小鱼开发
|
982b95a97a
|
chore: 删除 Playwright MCP 临时日志和快照
|
2026-05-13 17:05:26 +08:00 |
|
小鱼开发
|
6728f9b012
|
fix: TTS去掉前置积分检查、扣费允许欠费,避免402打断流程
|
2026-05-13 16:52:57 +08:00 |
|
小鱼开发
|
2cca838aa4
|
fix: 积分不足弹窗显示具体余额和所需积分
|
2026-05-13 16:29:44 +08:00 |
|
小鱼开发
|
b25a08b307
|
feat: TTS预计积分考虑镜头切换停顿和语速,朗读误差±20%不影响停顿时间
|
2026-05-13 16:04:41 +08:00 |
|
小鱼开发
|
b1df4d7465
|
fix: 声音复刻成功提示文案改为复刻成功
|
2026-05-13 15:34:22 +08:00 |
|
小鱼开发
|
b27f194f78
|
fix: 充值成功弹窗去掉toast和标题,勾选图标改为白色
|
2026-05-13 15:30:58 +08:00 |
|
小鱼开发
|
7c1984070a
|
fix: Modal 无标题时平衡顶部留白
|
2026-05-13 15:24:12 +08:00 |
|
小鱼开发
|
4579fa78d4
|
feat: 操作按钮展示积分消耗提示
后端:
- 新增 GET /points/rules 返回积分计费规则列表
前端:
- 各操作按钮添加积分消耗提示:
- 固定积分: 生成脚本(5)/润色(1)/标题生成(1)/字幕烧录(2)/封面设计(2)/压制成片(5)
- 按秒计费: 配音合成/视频生成 显示'按秒计费'
|
2026-05-13 14:52:09 +08:00 |
|
小鱼开发
|
86486fa4d5
|
chore: 添加装修避坑脚本prompt(sq/3、wt/2)
|
2026-05-13 13:51:16 +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 |
|
小鱼开发
|
2b319bc42d
|
fix: identifier改为cn.meijiaka.ai-zy + 清理audios.json + 修复临时文件残留
- 应用标识符从 cn.meijiaka.ai-jian 改为 cn.meijiaka.ai-zy
- 删除 audios.json 相关代码(前后端 IPC/存储/状态)
- 修复 video_processing.rs 临时文件路径:从 projects/ 根目录改为项目目录
- 修复 video_processing.rs rename/copy 双失败后文件残留(有音频/无音频两分支)
- 修复 ffmpeg concat_videos_robust 标准化失败后 std_*.mp4 残留
- 修复 ffmpeg burn_ass_subtitle 首次失败原因被静默丢弃
- VideoGeneration Step1 截取片段上传后立即删除
|
2026-05-12 22:58:05 +08:00 |
|
小鱼开发
|
b3c279f4fc
|
style: 脚本生成页面左侧面板样式优化
|
2026-05-12 18:00:32 +08:00 |
|
小鱼开发
|
353890df29
|
chore: 更新 prompt 配置与分类
|
2026-05-12 17:36:26 +08:00 |
|
小鱼开发
|
6889193999
|
feat: 目录结构迁移至 app_local_data_dir + 导出功能 + 弹窗文案优化
- 业务数据从 ~/Documents/Meijiaka-zy/ 迁移到 app_local_data_dir
- products/ 从全局目录改为每个项目的 projects/{id}/products/
- 封面关联改为目录结构 + meta.json 读取,不再依赖文件名解析 project_id
- 新增 export_product 命令,支持导出成品到用户指定位置
- 进度弹窗成功态文案合并为单行,数字红色高亮
- 删除 copy_product_cover、.cover.jpg 相关逻辑、extract_project_id_from_filename
- 修复 VoiceSynthesis handleAlignAndClip 重复设置 progress.success 的问题
|
2026-05-12 17:23:59 +08:00 |
|
小鱼开发
|
c56f805c6f
|
fix: 移除封面 fallback 逻辑,仅从 meta.json coverPath 读取
|
2026-05-12 15:49:43 +08:00 |
|
小鱼开发
|
a09f947092
|
fix: 我的作品卡片封面从 meta.json 的 coverPath 读取
list_local_products 原来只在 products 目录下硬编码查找 {filename}.jpg,
但封面实际保存在项目目录的 meta.json coverPath 中。
现在优先从 meta.json 读取 coverPath,不存在时再 fallback 到 products 目录。
|
2026-05-12 15:46:53 +08:00 |
|
小鱼开发
|
68a13b472d
|
feat: 任务完成弹窗显示积分实际消耗明细
- progressStore: success 方法增加 pointsConsumed 参数
- ProgressModal: 成功态下显示消耗积分(绿色小字)
- ScriptCreation: 脚本生成成功显示消耗 5 积分
- VideoGeneration: 视频生成成功显示实际消耗积分
- VoiceSynthesis: 配音合成成功显示实际消耗积分
- VideoCompose: 压制成片成功显示消耗 5 积分
- VoiceMaterialLibrary: 声音克隆成功显示消耗 200 积分
- SubtitleBurning: 字幕烧录成功显示消耗 2 积分
- CoverDesign: 封面设计成功显示消耗 2 积分
|
2026-05-12 13:40:24 +08:00 |
|
小鱼开发
|
4cba598b17
|
feat: 视频生成积分按总时长一次性扣费 + 错误文案友好化 + 弹窗样式修复
- 视频生成积分规则:从按对口型实际时长计费改为按脚本规划总时长计费
- 前端 VideoGeneration:提交 lipSync 时传 plannedDuration + totalPlannedDuration + batchId
- 后端 video_handler:tick 预检用 planned_duration,扣费改为总时长一次性扣 + batch_id 幂等
- 后端 tasks.py:VideoParams 替换字段,余额检查用 planned_duration
- 前端按钮旁显示预计消耗积分
- 新增 errorMessage.ts:统一错误信息友好化转换
- ScriptCreation/VideoGeneration/VoiceSynthesis/SubtitleBurning/CoverDesign:弹窗错误文案改用友好提示
- ProgressModal.css:错误/成功文案添加折行样式
- ContentManagement.css:补全缺失的 settings-row 样式
- ScriptCreation:删除过时空状态文案和多余 Slider.css import
|
2026-05-12 12:36:39 +08:00 |
|
小鱼开发
|
1219dd6399
|
fix: VideoCompose 扣费失败时回滚合成状态
|
2026-05-12 09:44:08 +08:00 |
|
小鱼开发
|
4adaa165a4
|
fix: VideoCompose 压制成片添加前置积分检查
|
2026-05-11 23:51:45 +08:00 |
|
小鱼开发
|
82baf1a332
|
fix: 前置积分检查前先刷新余额
- VideoGeneration/SubtitleBurning/CoverDesign 检查余额前调用 fetchBalance
- 避免使用缓存的旧余额导致错误判断
|
2026-05-11 23:45:55 +08:00 |
|
小鱼开发
|
61757f0d73
|
fix: 积分不足弹窗文案统一为'请先充值积分后再进行尝试'
|
2026-05-11 23:42:29 +08:00 |
|
小鱼开发
|
e9737cd490
|
fix: 积分不足弹窗统一只显示当前余额
- 去掉'需要 X 积分'的预估提示,统一为'当前余额 X,积分不足'
- 覆盖 usePointsCheck hook 及所有页面的 ConfirmModal 描述
|
2026-05-11 23:38:54 +08:00 |
|
小鱼开发
|
8118aaa3aa
|
feat: 统一积分不足 ConfirmModal 弹窗 + usePointsCheck hook
- 新建 usePointsCheck hook:封装积分预检、402 错误捕获和弹窗组件
- ScriptCreation:脚本生成(5积分)、润色(1积分) 前置检查
- VoiceSynthesis:TTS 合成前置预估检查
- CoverDesign/SubtitleBurning:标题生成 402 错误处理
- VoiceMaterialLibrary:声音复刻(200积分) 前置检查
- 所有端点余额不足时统一显示 ConfirmModal + 立即充值按钮
|
2026-05-11 23:08:05 +08:00 |
|
小鱼开发
|
dc5d0d4959
|
fix: TTS/润色/标题/克隆 API 前置积分检查 + 402 异常透传
- voice.py: synthesize/synthesize-batch/synthesize-file/clone/submit 添加前置积分检查
- script.py: polish/generate_title 添加前置积分检查
- 修复 HTTPException(402) 被外层 except Exception 吞掉变成 500 的问题
- 所有端点在执行业务前先检查余额,不足直接返回 402
|
2026-05-11 22:55:47 +08:00 |
|
小鱼开发
|
367c3d352c
|
fix: 任务创建 API 和 Scheduler 前置积分检查
- tasks.py: create_task 在写入 Redis 前检查积分余额,不足返回 402
- script_handler.py: tick 执行 AI 调用前预检积分
- video_handler.py: 提交 Vidu 任务前预检积分
- 避免余额不足的任务入队,即时反馈给用户
|
2026-05-11 22:06:01 +08:00 |
|
小鱼开发
|
873db1a26f
|
fix: 禁止积分余额变为负数
- point_service.consume 默认 allow_negative=False
- script.py / voice.py 捕获 ValueError(积分不足) 返回 402
- Scheduler 后置扣费余额不足时静默失败并记录日志
|
2026-05-11 21:47:26 +08:00 |
|
小鱼开发
|
154b259c82
|
fix: 积分不足提示改为 ConfirmModal 弹窗
|
2026-05-11 18:25:21 +08:00 |
|
小鱼开发
|
c9f3ae258c
|
fix: 积分不足提示条按钮文字颜色强制白色
|
2026-05-11 18:20:55 +08:00 |
|
小鱼开发
|
24d8d1f16d
|
fix: 封面设计和字幕烧录页面的积分不足双弹窗 bug
与 VideoGeneration 同样的修复:
- 操作前预检积分(封面设计 2 积分 / 字幕烧录 2 积分)
- 不足时显示提示条 + 立即充值按钮,不打开进度弹窗
- 积分不足 catch 分支先 progress.hide() 再弹提示
- 充值成功后自动刷新余额并隐藏提示
|
2026-05-11 18:14:16 +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 |
|
小鱼开发
|
355c69a7bc
|
config: 从 .env.example 中移除业务规则配置
业务规则配置(Token过期时间、连接池大小、上传限制等)
已回归 config.py 默认值,.env 只保留环境相关配置。
|
2026-05-11 00:09:03 +08:00 |
|
小鱼开发
|
95e55293c6
|
security: 全面生产安全加固与部署修复
后端安全:
- DEBUG 默认 True → False
- 彻底移除 AUTH_BYPASS 认证绕过
- 验证码不再明文打印到日志
- 上传接口增加大小限制(500MB/20MB/100MB)与魔数校验
- python-jose → PyJWT, 更新 requirements.lock/uv.lock
- Bandit 恢复关键规则(B104/B301/B305/B314/B324/B603/B607)
- 修复 5 处 try_except_pass, 15 处加 nosec 注释
- 启用 Bandit pre-commit 钩子
前端安全:
- 配置完整 CSP 策略
- 收紧 Capabilities(fs:allow-read-file → $RESOURCE/**)
- 移除硬编码 devToken
- 清理前端 TODO(美家卡智影命名统一)
部署修复:
- docker-compose.prod 增加 alembic 迁移步骤
- api + scheduler 增加 Redis 心跳健康检查
- Nginx 添加安全响应头
- Nginx client_max_body_size 100M → 500M
- .env.example 补充 UPLOAD_MAX_* 配置与安全注释
其他:
- /voice/upload 合并到 /upload/audio
- Rust 上传增加文件大小检查
- 清理 Rust 19 处 println! + 前端 21 处 console.info
- 修复 VideoCompose.tsx toast 未导入(已有bug)
|
2026-05-10 23:31:34 +08:00 |
|
小鱼开发
|
821f81b335
|
chore(cleanup): 移除废弃的 Account 页面
- 删除 Account.tsx(功能已合并到 Profile)
- 从 App.tsx 路由表中移除 account
- 清理不再使用的 .settings-row / .profile-logout-btn CSS
|
2026-05-10 21:19:36 +08:00 |
|
小鱼开发
|
41c6adadb9
|
fix(profile): 昵称编辑失焦行为统一为保存
与其他页面(MyWorks、VoiceMaterialLibrary)保持一致:
- 失焦时:内容为空或不变则取消,否则自动保存
- 之前是失焦直接取消,导致交互不一致
|
2026-05-10 21:15:17 +08:00 |
|
小鱼开发
|
82108fd13c
|
fix(auth): PATCH /auth/me 会话隔离导致修改失败
current_user 来自 get_current_user 的数据库会话,和 update_me
的 db 不是同一个会话。直接修改对象后 commit 找不到变更。
修复:先用当前会话重新查询用户再修改。
|
2026-05-10 21:13:37 +08:00 |
|
小鱼开发
|
fe3b378117
|
fix(cors): 后端 CORS 允许 Tauri 桌面应用 origin
添加 tauri://localhost 到 CORS_ORIGINS 默认值,
解决 Tauri WebView 请求被跨域拦截的问题
|
2026-05-10 21:10:11 +08:00 |
|
小鱼开发
|
c7e8e89c22
|
fix(profile): 错误提示改为 inline 显示,避免覆盖手机号
|
2026-05-10 21:07:35 +08:00 |
|
小鱼开发
|
0366201fa1
|
fix(profile): 昵称错误提示不挤开布局
- 错误提示改为绝对定位,浮在输入框下方
- 输入框错误时边框变红
|
2026-05-10 21:03:45 +08:00 |
|
小鱼开发
|
9b027b8cb2
|
refactor(ui): 统一全部页面的编辑图标为铅笔 SVG
- MyWorks 作品/草稿重命名:统一铅笔 SVG 路径
- VoiceMaterialLibrary 音色重命名:✎ 字符 → 铅笔 SVG
- 所有编辑图标使用同一 SVG 路径:M17 3a2.828...
|
2026-05-10 21:01:28 +08:00 |
|
小鱼开发
|
4e2a0ea3b3
|
refactor(ui): 统一编辑图标为铅笔 SVG
- Account 页面昵称编辑:修改文字 → 铅笔图标
- 移除保存/取消按钮,统一为 Enter 保存、Esc/失焦取消
|
2026-05-10 20:56:36 +08:00 |
|
小鱼开发
|
5706042254
|
refactor(profile): 昵称编辑交互优化
- 修改按钮改为铅笔图标
- 移除保存/取消按钮,统一为 Enter 保存、Esc/失焦取消
|
2026-05-10 20:53:25 +08:00 |
|
小鱼开发
|
c1eaae64aa
|
refactor(profile): 重新设计个人中心页面排版
- 合并用户信息卡片和积分资产区,移除独立的账户信息区块
- 退出登录移至页面底部,避免与侧边栏重复
- 接入真实用户数据到侧边栏头像和昵称
- 新增系统默认头像 SVG,替代首字母占位
- 清理不再使用的 CSS 样式
|
2026-05-10 20:49:38 +08:00 |
|
小鱼开发
|
6e52935768
|
feat(profile): 账户设置集成到个人中心页面
- Profile.tsx 底部新增账户信息区域(昵称编辑、手机号、退出登录)
- Sidebar.tsx 移除独立的账户设置菜单入口
- 保留 Account.tsx 组件文件但不作为独立导航入口
|
2026-05-10 08:47:59 +08:00 |
|
小鱼开发
|
ea1b607aca
|
feat(profile): 拆分个人中心与账户设置,支持昵称编辑
后端:
- 新增 UpdateNicknameRequest schema
- 新增 PATCH /auth/me 修改昵称接口
前端:
- Profile.tsx 精简为纯资产中心(积分统计+最近记录+充值)
- 新建 Account.tsx 账户设置页(昵称编辑、手机号、退出登录)
- App.tsx + Sidebar.tsx 新增 account 路由和导航菜单
- 昵称修改后同步更新 authStore
|
2026-05-10 08:32:45 +08:00 |
|
小鱼开发
|
23721a4197
|
style(profile): PC桌面端布局重构
- 顶部用户信息栏:64px头像+昵称+退出登录按钮,横向展开
- 积分统计:3个白色卡片横向排列+充值按钮,绿色数字强调
- 个人信息与快捷入口:双列网格布局
- 最近记录:6列表格(类型/变动/余额/说明/时间),PC级信息密度
- 删除移动端渐变卡片、窄卡片堆叠等设计
|
2026-05-10 08:19:51 +08:00 |
|