小鱼开发
|
b8b6c583ee
|
fix: 修复环境切换后 API 地址不正确的问题
- 修复 Rust snake_case 字段名与前端的 camelCase 不匹配(api_base_url → apiBaseUrl)
- 开发模式下改用页面刷新代替 restart_app,避免 Tauri dev 模式重启后白屏
|
2026-04-27 16:46:44 +08:00 |
|
小鱼开发
|
44be1650b6
|
feat: 保存环境配置后自动重启应用
|
2026-04-27 16:37:44 +08:00 |
|
小鱼开发
|
f0c599d661
|
fix: save_app_config 写入前先创建父目录
|
2026-04-27 16:31:40 +08:00 |
|
小鱼开发
|
ee41cdb4dd
|
fix: 环境切换弹窗改用 inline-block 布局,彻底修复错乱
|
2026-04-27 16:27:50 +08:00 |
|
小鱼开发
|
9f0fa262f1
|
fix: 环境切换弹窗 URL 放到第二行避免布局撑开
|
2026-04-27 16:16:59 +08:00 |
|
小鱼开发
|
5cfbc42854
|
fix: 修复环境切换弹窗样式错乱
|
2026-04-27 16:14:23 +08:00 |
|
小鱼开发
|
8f1939b1ab
|
chore: 测试服 CORS 允许本地开发地址 localhost:1420
|
2026-04-27 16:05:35 +08:00 |
|
小鱼开发
|
460c738a9d
|
chore: acme-setup.sh 改用 Let's Encrypt + webroot 模式
|
2026-04-27 15:41:05 +08:00 |
|
小鱼开发
|
ab545f5560
|
chore: acme-setup.sh 增加 ZeroSSL 邮箱注册交互 + 临时文件清理
|
2026-04-27 15:25:15 +08:00 |
|
小鱼开发
|
750339d96f
|
chore: acme-setup.sh 改用 Gitee 镜像 + ZeroSSL,解决国内 GitHub 超时
|
2026-04-27 15:16:56 +08:00 |
|
小鱼开发
|
1616a2d755
|
chore: 添加 Nginx + acme.sh HTTPS 配置,更新测试服 CORS
- 新增 nginx/meijiaka-zy.conf: 反向代理 + SSL 配置
- 新增 nginx/acme-setup.sh: acme.sh 一键证书申请脚本
- 新增 nginx/README.md: 部署和证书管理文档
- docker-compose.test.yml: 添加 CORS_ORIGINS=https://dev.tapi.meijiaka.cn
|
2026-04-27 14:40:48 +08:00 |
|
小鱼开发
|
6f3aca5b9d
|
chore: Dockerfile pip/uv 改用阿里云 PyPI 镜像源
|
2026-04-27 13:42:46 +08:00 |
|
小鱼开发
|
5b9d57a92a
|
chore: Dockerfile 改用 python:3.13-slim 基础镜像,配合 Docker 镜像加速使用
|
2026-04-27 12:59:09 +08:00 |
|
小鱼开发
|
5f3d414a48
|
chore: 对齐测试与生产 Docker 配置
- 新增 .dockerignore,减少构建上下文体积
- 修复 Dockerfile 缺失 config/ 目录复制
- docker-compose.test.yml: DEBUG=false, ENV=production, SECRET_KEY 强制传入
- 新增 docker-compose.dev.yml(开发专用)和 docker-compose.prod.yml(生产专用)
- deploy-test.sh: 加入 SECRET_KEY 强制检查,统一步骤编号
|
2026-04-27 12:33:06 +08:00 |
|
root
|
0210875f16
|
docs: update AGENTS.md with project init analysis
|
2026-04-27 11:00:56 +08:00 |
|
小鱼开发
|
ddc77d51bc
|
chore: 将 .env 从 Git 跟踪中移除,加入 .gitignore
|
2026-04-27 09:31:13 +08:00 |
|
小鱼开发
|
8404f43912
|
chore: 更新生产/测试环境 API 地址
- 生产: https://tapi.meijiaka.cn/api/v1
- 测试: https://dev.tapi.meijiaka.cn/api/v1
- 本地开发: http://127.0.0.1:8081/api/v1
|
2026-04-26 23:59:06 +08:00 |
|
小鱼开发
|
7728d18381
|
refactor: 配置完全封装在 Rust 层
- 环境预设和默认地址全部定义在 Rust (storage/config.rs)
- 前端不再硬编码任何 API 地址
- 新增 get_environment_presets 命令,前端动态获取预设列表
- save_app_config 只接收环境标识,URL 由 Rust 层决定
- client.ts 默认值置空,启动时由 Rust 配置填充
|
2026-04-26 23:51:14 +08:00 |
|
小鱼开发
|
2217d1f145
|
feat: 环境切换功能(连击版本号触发)
- Rust: 新增 storage/config.rs,提供 load/save_app_config 命令
- 配置存储路径: ~/Documents/Meijiaka-zy/config.json
- 前端: App.tsx 启动时自动加载配置并设置 API Base URL
- 前端: Sidebar 在非生产环境显示环境标识标签
- 前端: AboutUs 页面连击版本号 5 次触发环境切换弹窗
- 支持预设: 生产/测试/本地开发/自定义
- 切换后提示重启生效
|
2026-04-26 23:35:57 +08:00 |
|
小鱼开发
|
9c7a1f9049
|
fix: 前端默认 API 端口改为 8081(与 docker-compose 一致)
|
2026-04-26 23:24:37 +08:00 |
|
小鱼开发
|
c59542a189
|
fix: staging 环境也自动创建数据库表
|
2026-04-26 23:08:23 +08:00 |
|
小鱼开发
|
773065536c
|
refactor: 统一项目命名为 meijiaka-zy / 美家卡智影
- 中文产品名统一为 美家卡智影
- 代码目录/容器名/数据卷: meijiaka-zy
- 本地存储路径: Meijiaka-zy
- 数据库名: meijiaka_zy
- 七牛云资源前缀: meijiaka-zy
- 部署脚本指向新仓库 meijiaka-zy.git
|
2026-04-26 23:02:05 +08:00 |
|
小鱼开发
|
8f1e813a43
|
docs: 更新 .env.example 注释,兼容本地开发和 Docker 部署
- DATABASE_URL: 添加注释说明 localhost(本地) vs 容器名(Docker)
- REDIS_HOST: 同上
- CORS_ORIGINS: 添加注释说明不同环境的配置差异
|
2026-04-26 22:34:41 +08:00 |
|
小鱼开发
|
69c2fe1c1c
|
chore: 清理仓库废弃代码和临时文件
删除文件:
- 根目录: package.json, package-lock.json, .DS_Store
- 后端未使用模块: token_manager_example.py, kling_dto.py, crud/avatar.py
- 未注册路由: ai_models.py, klingai.py, qiniu.py, video.py
- 废弃配置: docker-compose.dev.yml
- 前端未使用页面: AudioMixing.tsx/css, VideoEditing.tsx/css
- 所有 .DS_Store 临时文件
新增: .gitignore(忽略 .DS_Store, node_modules, __pycache__ 等)
清理后减少 ~2700+ 行无效代码
|
2026-04-26 22:32:12 +08:00 |
|
小鱼开发
|
571324ef50
|
chore: 测试服数据卷改为指定目录挂载
- docker-compose.test.yml: 命名卷 → /opt/meijiaka-zj/data/{postgres,redis,logs} bind mount
- deploy-test.sh: 自动创建数据目录,步骤编号同步更新
- 便于备份: tar czvf backup.tar.gz /opt/meijiaka-zj/data
|
2026-04-26 22:22:42 +08:00 |
|
小鱼开发
|
5edabf5013
|
chore: 添加测试服部署配置和一键部署脚本
- docker-compose.test.yml: 独立 PostgreSQL + Redis + API + Scheduler
- deploy-test.sh: 检查环境、拉代码、建镜像、启动、验证的自动化脚本
- 测试服与开发环境隔离,不依赖外部网络和本地路径
|
2026-04-26 22:08:26 +08:00 |
|
小鱼开发
|
bc724810a6
|
feat: 视频创作流程全链路优化
- 后端: Vidu Provider、System API、Upload API、素材服务更新
- 前端: 字幕压制、视频生成、配音、本地存储、类型定义优化
- Rust: FFmpeg 命令、视频合成、语音命令、库注册更新
- Store: 项目状态、语音状态管理优化
- 新增: 对口型替换文档、健康检查器、字幕 API 模块、音频对齐工具
- 删除: 废弃的 polish 提示词模板
|
2026-04-26 21:24:42 +08:00 |
|
小鱼开发
|
3766a977e2
|
chore: 清理 ScriptCreation.tsx 未使用变量和注释代码
- 删除 DURATION_MARKS、setScriptDuration、formatDuration 未使用变量
- 删除注释掉的视频时长滑块代码(TODO: 视频时长配置暂时隐藏)
- 减少 49 行代码债务,消除 TypeScript noUnusedLocals 警告
|
2026-04-26 21:22:24 +08:00 |
|
小鱼开发
|
7640dc23ba
|
feat: 区分 SSE 阶段文案 + 前端请求去重锁
- script_service: start文案"准备生成...", generating文案"正在创作脚本..."
- ScriptCreation: 添加 requestLock ref,防止网络延迟期间快速点击发起多个请求
- 锁在请求开始时设置,完成后释放,与 generating 状态互补
|
2026-04-26 21:17:27 +08:00 |
|
小鱼开发
|
6da6cf2f3e
|
feat: 引入 @microsoft/fetch-event-source 替代原生 fetch SSE
- 安装 @microsoft/fetch-event-source
- script.ts generateStream: 原生 fetch+ReadableStream → fetchEventSource
- 新增能力: 自动重连、onopen/onclose 生命周期回调、后台保持连接
- 代码从 45 行简化为 35 行,更简洁可维护
|
2026-04-26 21:14:16 +08:00 |
|
小鱼开发
|
e924193ead
|
refactor: 简化脚本生成 SSE 事件流,移除 analyzing 阶段
- script_service: 删除一闪而过的 analyzing 事件,4阶段→3阶段
- start 和 generating 文案统一为"正在创作脚本..."
- 同步更新前后端类型定义和 API 文档
|
2026-04-26 21:07:54 +08:00 |
|
小鱼开发
|
43609de2f1
|
chore: 移除脚本生成流程的临时性能日志
- script_service: 删除流式生成各阶段的 info/debug 日志
- model_router: 删除首 chunk 延迟、provider 信息日志
- volcengine_provider: 删除 SDK request、首 chunk 耗时、流结束统计日志
- 保留: 初始化日志、降级/错误日志、API 层异常日志
- 为后续统一结构化日志规划做准备
|
2026-04-26 20:59:52 +08:00 |
|
小鱼开发
|
c8009f21d0
|
feat: 模型降级链 Pro → Lite
- model_router: 新增 FALLBACK_CHAIN 配置
- generate: 主模型失败时自动降级到备用模型
- generate_stream_with_progress: 支持流式降级,已输出内容后不再降级
- 降级成功/失败均有日志记录
|
2026-04-26 20:50:23 +08:00 |
|
小鱼开发
|
7c23cb3afb
|
feat: 启用 JSON Mode 约束脚本生成输出
- script_service: 调用 model_router 时传入 response_format="json_object"
- volcengine_provider: generate 和 generate_stream_with_progress 支持 response_format 参数
- 强制模型输出合法 JSON,减少 Markdown 代码块包裹和说明文字导致的解析失败
|
2026-04-26 20:41:05 +08:00 |
|
小鱼开发
|
0138e7b01f
|
refactor: generate_stream_with_progress 从 httpx 原始请求改为 AsyncOpenAI SDK
- 使用 self.async_client.chat.completions.create() 替代 httpx 原始 SSE
- 添加 stream_options={"include_usage": True} 获取 Token 用量
- 修复 usage 在最后一个 chunk(choices=[])时被跳过的问题
- 代码从 56 行减少到 36 行,更简洁可维护
|
2026-04-26 20:33:16 +08:00 |
|
小鱼开发
|
d0057ecc2c
|
feat: 脚本生成流式优化 - Ark SDK 迁移至 httpx SSE + reasoning_effort 关闭思考过程
- volcengine_provider: Ark SDK 同步迭代器 → AsyncOpenAI → httpx 原始 SSE
- generate_stream_with_progress 使用 httpx 直接请求,消除 80s+ 缓冲
- 新增 generate_stream (AsyncOpenAI) 作为备用方案
- enable_thinking 替换为 reasoning_effort,支持思考程度控制
- ai_models.yaml: 默认 LLM 改为 doubao-seed-2-0-pro,添加 reasoning_effort: minimal
- model_router: 透传 reasoning_effort 参数
- script_service: 4 阶段 SSE 精简 (start→analyzing→generating→complete)
- script.py: SSE 直连端点 /script/generate/stream
- 前端 ScriptCreation: 直连 SSE 端点,弃用调度器轮询模式
|
2026-04-26 20:17:12 +08:00 |
|
小鱼开发
|
e15bdaf996
|
fix: 素材匹配、Step流程、UI优化
- 修复 duration 解析 bug (parseInt→parseFloat),解决素材'换一个'候选池过小
- 素材匹配策略:候选池=满足时长+最近5个,严格模式排除已用素材
- Step2 下一步按钮绑定 dubbingAudioUrl 生成状态
- 修复 VoiceDubbing 生成后未同步 projectStore
- 修复 _meta.json JSON 格式错误导致分类列表空白
- Step3/Step4 视频预览区添加标题
- 压制字幕按钮固定在底部
- 选项卡按钮高度微调
|
2026-04-24 15:46:06 +08:00 |
|
小鱼开发
|
c5adae0a0f
|
fix: rx 需要 mut,child 不需要 mut
|
2026-04-24 13:05:50 +08:00 |
|
小鱼开发
|
1b61af7063
|
fix: Rust 编译错误 - engine 模块私有 + 多余 mut 警告
|
2026-04-24 13:03:59 +08:00 |
|
小鱼开发
|
ee3d4c4658
|
feat: Vidu 对口型传 refPhotoUrl + 项目切换数据隔离 + 成品去重存储
- 提交 Vidu 对口型任务时,动态截取人物素材首帧上传七牛云,作为 refPhotoUrl
- 新增 Rust IPC upload_image_file、get_product_save_path
- 修复 extract_first_frame 对输入路径的安全校验过严问题(用户素材可能在任意目录)
- 修复新建/切换项目时 store 残留旧数据的问题:createNewProject 和 loadMeta 显式清空所有业务字段
- Step 6 最终合成直接输出到 products 目录,去掉二次复制
- 新增 VideoComposite 前置条件提示(缺少 coverPath/burnedVideoPath 时显示具体原因)
- 更新 materials.json 关键词映射
|
2026-04-24 12:56:46 +08:00 |
|
小鱼开发
|
285257905e
|
feat: 视频生成页面改造、字幕冻结修复及多项前端优化
- 修复字幕切换模板后冻结的 bug:ASS.js 新实例在视频播放中创建时收不到
play/playing 事件,RAF 循环不会启动。创建实例后手动触发 play 事件。
- VideoGeneration 页面 overhaul:卡片点击预览、左右箭头导航、换一个素材、
动态按钮文案和占位提示。
- 修复私有音色素材预览播放 trialUrl 的问题,改为播放 sourceUrl。
- 放宽空镜素材匹配逻辑:优先满足时长,fallback 到最近时长并随机选择。
- 隐藏脚本生成页面的时长滑块。
- 修复登录页和侧边栏标题渐变 WebKit 兼容问题。
- 清理旧计划文档、测试文件和临时脚本。
- 更新 Makefile、prompts、materials.json 等配置。
|
2026-04-23 23:17:10 +08:00 |
|
小鱼开发
|
26db375a84
|
fix: finalVideoPath 语义修正、标签删除、字幕提示、七牛云超时
- VideoGeneration: Step 3 不再写入 finalVideoPath(半成品不应占用最终字段)
- VideoComposite: 修正 finalVideoPath 保存时机,保存 products 目录路径而非临时路径
- CoverDesign: 删除标签列表输入和渲染逻辑
- useCoverFabric: 删除 renderTagList、未使用的 Circle 导入
- SubtitleBurning: 未打轴时预览区显示遮罩提示
- qiniu_service: 全局超时 30s → 120s,修复 logger 未定义
|
2026-04-23 10:18:56 +08:00 |
|
小鱼开发
|
aa7072c0cd
|
feat: 封面制作、字幕压制、视频合成全流程优化
- 封面制作(CoverDesign): Fabric.js 双标题+标签模板,6张预设背景图
- useCoverFabric: 金色主标题+副标题+绿色勾选标签,阴影/描边增强
- 字幕压制(SubtitleBurning): 改为单视频全局压制,结果存 burnedVideoPath
- 视频合成(VideoComposite): 合成条件改为 coverPath + burnedVideoPath 都必须有值
- ffmpeg_cmd: concat 保留音频(去掉-an),临时文件放项目目录(修复沙箱限制)
- localStorage: 修复 saveMeta 遗漏 lipSyncedVideoPath/Url/avatarMaterial* 等字段
- VideoGeneration: Vidu 对口型轮询,成功后保存 lipSyncedVideoPath/Url
- projectStore: initProjectStore 恢复所有字段,saveMetaToLocalFile 正确合并
- 修复 13+ TS 类型错误,消除未使用变量/导入警告
- 新增 public/bg/ 6张 720x1280 竖版背景图素材
|
2026-04-23 01:42:04 +08:00 |
|
小鱼开发
|
9b8d24b435
|
feat: 视频生成流程重构 - 本地拼接 + Vidu 对口型 + 空镜去重
- 后端: 空镜匹配支持 exclude_urls 去重
- 后端: materials.json 关键词映射扩充
- Rust: compose_video 参数平铺化修复 IPC 调用
- Rust: concat_videos_copy 去除音频
- Rust: 上传接口 API 地址改为 8081
- Rust: clip_video 放宽输入路径校验
- 前端: VideoGeneration 人物素材本地选择 + 保存恢复
- 前端: 空镜自动匹配 + 串行去重
- 前端: 对口型任务提交 + 字段重命名
- 前端: 分镜卡片去除点击/选中/hover 交互
- 前端: 视频预览改为成品视频
- Makefile: Docker 命令适配共享基础设施
|
2026-04-22 23:08:07 +08:00 |
|
小鱼开发
|
42a127d030
|
fix: Vidu TTS unauthorized 排查修复
- 修复容器重启方式,重新创建以读取新的 .env VIDU_API_KEY
- vidu_provider.py: api_key 为空时构造函数直接抛异常,避免发送 Token None
- vidu_provider.py: 请求失败时打印详细日志(url/status/headers/response)
- docker-compose.yml: 去除重复的环境变量定义
- .env.example: 补充 VIDU_API_KEY / VIDU_BASE_URL 模板
|
2026-04-22 20:31:35 +08:00 |
|
小鱼开发
|
4e06f4abe2
|
feat: 空镜素材配置后端化,视频生成流程重构
- 后端: 空镜素材迁移到 config/materials.json,duration从文件名_{N}s_自动解析
- 后端: 新增 POST /api/v1/materials/match 接口,后端做关键词匹配
- 前端: VideoGeneration 空镜匹配改为调用后端接口
- 前端: 人物出镜素材改为本地文件选择器直接选取,不走素材库
- 前端: 视频生成流程简化,移除Vidu对口型和七牛云上传
- Rust: 视频合成支持从随机起始时间截取人物素材片段
- Rust: 修复ffprobe参数错误(添加-show_entries format=duration)
|
2026-04-22 18:49:20 +08:00 |
|
小鱼开发
|
5154af777c
|
fix(prompts): 修复脚本生成提示词 JSON 输出格式
问题:system prompt 中输出格式要求自相矛盾("必须包含以下两部分:一、分镜内容..." 与 "只输出纯 JSON"),导致 AI 返回 Markdown 表格而非 JSON 数组。
修复:
- 删除矛盾的"必须包含以下两部分/一、分镜内容"描述
- 明确指令:"你只允许输出一个 JSON 数组,不要有任何其他文字"
- duration 字段从 "3s" 字符串改为数字 3(后端已支持)
- 精简素材库列表为各主题强相关场景(原 140+ 通用场景易分散模型注意力)
- 统一 5 个提示词文件的输出格式规范
|
2026-04-22 12:05:35 +08:00 |
|
小鱼开发
|
87a4aca213
|
fix: Async Engine ScriptParams 改为 category + subcategory
|
2026-04-22 11:22:27 +08:00 |
|
小鱼开发
|
2e22d555b0
|
fix: list_categories 以 _meta.json 为准,不再扫描未配置的目录
|
2026-04-22 11:17:45 +08:00 |
|
小鱼开发
|
1172dcaf80
|
fix: client.get 已自动解包 ApiResponse,getCategories 不应再访问 .data
|
2026-04-22 11:14:39 +08:00 |
|