621 Commits

Author SHA1 Message Date
小鱼开发 9733a7f311 fix(progress-modal): 图标匹配改为互斥条件,避免标题同时命中多个关键词时重复渲染 2026-05-23 09:34:38 +08:00
小鱼开发 29f74f7afc chore(deploy): 让 deploy-test.sh 在 Git 中保持可执行权限 2026-05-23 09:26:15 +08:00
小鱼开发 8a5f0ace34 fix(update): 204 响应不通过 HTTPException 抛出,避免 Content-Length 校验失败 2026-05-23 09:24:53 +08:00
小鱼开发 f01f2c366a feat(cover-avatar): 封面形象功能
后端:
- 新增 POST /upload/image 图片上传(七牛云 image bucket)
- 新增 POST /image/remove-background AI 抠图(火山引擎 MediaKit)
- 提取 file_validation.py 共享模块

Rust:
- 新增 cover_avatar.rs 存储层(cover_avatars.json + 图片本地存储)
- 新增 4 个 IPC 命令:load/save/delete/save_image

前端:
- 新增 CoverAvatarLibrary 页面(内容管理 → 封面形象)
- 新增 coverAvatar API 模块和 coverAvatarStore
- 封面设计集成:背景图/封面形象弹窗选择 + Fabric.js 叠加
- 优化左侧布局:视觉素材横向卡片(9:16)+ 文案配置分组
2026-05-22 18:38:18 +08:00
小鱼开发 c55c256dc7 style(settings): reduce section title size (22px -> 18px) 2026-05-22 15:38:07 +08:00
小鱼开发 a7c81c14eb refactor(sidebar): remove lightning icon, adjust avatar/text layout
- Remove lightning bolt SVG from balance display
- Increase avatar size (32px -> 36px)
- Tighten nickname/balance spacing in user-info
- Adjust user-name font weight (500 -> 600) and size (var(--font-sm) -> 14px)
- Reduce sidebar-user justify-content: center -> default (flex-start)
2026-05-22 15:33:10 +08:00
小鱼开发 7f43795b2e refactor(sidebar): move balance below nickname 2026-05-22 15:28:43 +08:00
小鱼开发 9870a8cbc8 refactor(app-header): move back button to right side 2026-05-22 15:25:16 +08:00
小鱼开发 538cb1a367 refactor(sidebar): merge balance and user into unified card 2026-05-22 15:22:50 +08:00
小鱼开发 a50c61bbb5 refactor(pricing): remove explanation section from pricing modal 2026-05-22 15:17:20 +08:00
小鱼开发 19a166a873 fix(pricing): line break after period for video rule detail 2026-05-22 15:14:29 +08:00
小鱼开发 1cb1c0b387 refactor(profile): remove logout button
Profile page no longer shows logout button — logout is accessible via Sidebar dropdown menu only.
2026-05-22 15:10:22 +08:00
小鱼开发 1a0679049e refactor(profile): restore recent transactions table
Replace menu list (使用明细 + 设置) with recent transactions table:
- Add back recentTx state and loading state
- Fetch last 5 transactions in loadData
- Display table with type/amount/description/time columns
- Add '查看全部' link to usage-detail page
- Remove unused icon components (FileTextIcon, SettingsIcon, ChevronRightIcon)
2026-05-22 15:02:11 +08:00
小鱼开发 91774f52ee refactor(Phase 3): merge SystemUpdate + AboutUs into Settings page
- New Settings page combines: system update check, version info, auth/copyright
- Remove standalone AboutUs.tsx and SystemUpdate.tsx
- Route: 'about-us' + 'system-update' → 'settings'
- Profile menu: merge '系统设置' + '关于我们' into single '设置' entry
- Sidebar dropdown: add '设置' back to user menu (besides '我的账户')
2026-05-22 14:48:29 +08:00
小鱼开发 34d6f671fe refactor(Phase 2): extract components + AppHeader
New components:
- PricingModal: standalone product pricing modal with lazy rule loading
- PointsCard: reusable points balance + today consumed + action buttons
- AppHeader: unified page header with title, back button, and right actions

Profile.tsx:
- Use PricingModal + PointsCard (380 lines -> ~200 lines)
- Remove embedded pricing table logic (~80 lines)
- Remove inline points display logic (~40 lines)

Pages updated with AppHeader:
- Profile: '我的账户' (no back button)
- UsageDetail: '积分明细' + back button
- SystemUpdate: '系统更新' + back button
- AboutUs: '关于我们' + back button

CSS:
- Add app-header, app-header-left, app-header-title, app-header-right classes
- Remove margin-bottom from page-back-btn (handled by app-header)
2026-05-22 12:45:41 +08:00
小鱼开发 5386a1dbf4 refactor: redesign Profile page, fix navigation & interaction logic
Profile page:
- Add page title '我的账户' in settings-section h2
- Restructure points section: horizontal action buttons (充值/明细/定价)
- Remove '产品定价' from menu list (already in points section)
- Remove '更多' heading

Interaction fixes:
- Profile logout now uses onNavigate('logout') → App.tsx ConfirmModal
- Sidebar dropdown: only '我的账户' + '退出登录' (others go through Profile)
- Add back button to usage-detail / system-update / about-us → navigate to profile
- content-management click: only expand/collapse, no auto-navigate to first child

CSS:
- Add --bg-secondary / --bg-tertiary to variables.css
- Add page-back-btn CSS class
- Convert profile-points-actions to horizontal row layout
2026-05-22 11:27:41 +08:00
小鱼开发 abf03712a5 refactor(profile): tighten spacing, simplify logout button
- Reduce points card padding (20px→16px vertical)
- Reduce points section padding (24px→20px vertical)
- Reduce section spacing (24px→16px)
- Section title margin (12px→8px)
- Logout button: remove card background/border, keep text-only with error hover
2026-05-22 11:13:10 +08:00
小鱼开发 31fec11c44 refactor(profile): zero inline styles
- Add profile-card-flat, profile-edit-wrap, profile-section-spaced,
  profile-pricing-loading, profile-pricing-detail-list CSS classes
- Profile.tsx: remove all remaining inline style attributes
2026-05-22 11:05:45 +08:00
小鱼开发 0a52195490 refactor(profile): extract CSS classes, fix undefined vars, remove inline styles
- variables.css: add --bg-secondary and --bg-tertiary (used but undefined)
- ContentManagement.css: add 30+ Profile CSS classes following design system
- Profile.tsx: rewrite with className, remove all inline styles and emoji
  - pricing modal tags use semantic colors via CSS classes
  - logout hover uses var(--error) instead of hardcoded #e74c3c
  - menu items use CSS hover instead of onMouseEnter/Leave handlers
2026-05-22 11:04:01 +08:00
小鱼开发 aebc9f6bcc refactor: Phase 1 Profile/Settings UX refactoring
- Sidebar: Remove '系统设置' from navItems, add balance badge + user dropdown
  menu in footer (我的账户/使用明细/系统设置/关于我们/退出登录)
- Profile: Remove inline recent transactions table (UsageDetail page exists),
  simplify to info + points + menu entries. Add inline pricing modal.
- GenerationControls: Show current balance alongside point cost in button text
- Points config: Adjust subtitle_burn/cover_design to 5 pts, recharge validity
2026-05-22 10:50:48 +08:00
小鱼开发 574874c856 feat: 视频生成使用系统素材时每个额外收取 2 积分 2026-05-22 09:40:23 +08:00
小鱼开发 497e65d86d fix: 视频生成积分扣费不允许欠费 2026-05-21 22:28:41 +08:00
小鱼开发 372b36becc feat: 音量滑块范围改为 1-5(对应传参 0-4) 2026-05-21 22:18:03 +08:00
小鱼开发 582068b599 fix: 匹配素材成功后自动切换镜头并加载播放 2026-05-21 21:42:04 +08:00
小鱼开发 1448cd54ab feat: 匹配素材成功后自动加载播放预览 2026-05-21 21:32:14 +08:00
小鱼开发 59237f1098 style: 匹配素材按钮移到上传素材旁边 2026-05-21 21:29:33 +08:00
小鱼开发 d6fe43b7c3 feat: 匹配素材改为针对单个镜头匹配
- 新增 matchSingleMaterial 函数,调用单条匹配 API
- 点击'匹配素材'只匹配当前镜头,不影响其他镜头
2026-05-21 21:24:57 +08:00
小鱼开发 e52513f452 refactor: 匹配素材与换一个合并为同个按钮的不同状态 2026-05-21 21:22:16 +08:00
小鱼开发 4123b66ab9 fix: 添加 Tauri window.show/set_focus 权限
- 修复文件选择对话框触发的权限拒绝错误
- core:window:allow-show, core:window:allow-set-focus
2026-05-21 21:19:29 +08:00
小鱼开发 54fc6b2638 feat: 空镜素材自动匹配改为手动匹配
- 移除页面加载时的自动批量匹配逻辑
- 每个未匹配空镜卡片新增'匹配素材'按钮
- 点击后触发批量匹配,已匹配后显示'换一个'按钮
2026-05-21 21:19:25 +08:00
小鱼开发 2cece72abe feat: 用户白名单免验证码登录
- Settings 新增 SMS_CODE_WHITELIST 配置(逗号分隔手机号)
- login_with_sms 中白名单手机号跳过验证码校验
- 方便内部测试和演示账号使用
2026-05-21 16:32:09 +08:00
小鱼开发 44ec2dceb7 feat: ffprobe 快速检测 H.264/yuv420p 视频,跳过不必要的预览转码
- 应用生成的成品视频已是 H.264/yuv420p,无需重复转码
- 超时后显式 kill ffprobe 子进程,避免僵尸进程
- 分辨率上限判断:4K 素材仍转码为 540p 代理保证预览流畅
2026-05-21 16:32:02 +08:00
小鱼开发 6def12995e style: 视频预览加载遮罩增加'加载中...'文案 2026-05-21 16:06:40 +08:00
小鱼开发 ec3b2b87ed feat: 视频缓存自动清理
- 应用启动时后台清理 video_cache 目录
- 删除超过 30 天未修改的缓存文件
- 总容量超 500MB 时,按修改时间删最旧文件直到 300MB
- 不阻塞首屏加载
2026-05-21 16:00:55 +08:00
小鱼开发 59bfadcb99 fix: FAT32 文件系统修改时间读取失败导致转码报错;更新 useLocalVideo 注释 2026-05-21 15:58:05 +08:00
小鱼开发 666842ce2b feat: 视频预览自动转码为浏览器兼容格式
- Rust: 新增 transcode_for_preview,用 FFmpeg 将任意视频转码为
  H.264 Baseline + YUV420p 540p,确保跨平台预览兼容
- Rust: 缓存按(路径hash + 文件大小 + 修改时间)管理,避免重复转码
- 前端: 新增 getPreviewVideoUrl 工具,统一替换视频预览的 URL 获取逻辑
- 根本性解决 Windows WebView2 视频黑屏问题,同时提升预览性能
2026-05-21 15:52:30 +08:00
小鱼开发 5250381579 fix: Windows 视频预览黑屏 — 禁用 D3D11 硬件视频解码
Chromium 在 Windows 上的 D3D11 视频解码器与部分显卡驱动/视频编码
不兼容,导致视频画面黑屏但音频正常。回退到软件解码解决此问题。
2026-05-21 15:26:12 +08:00
小鱼开发 c4a9c9c2eb style: 启动加载动画颜色从 #1a9e8a 改为 var(--primary) 绿色 2026-05-21 15:20:57 +08:00
小鱼开发 0e876384d6 ci: 构建产物自动上传到 GitHub Release,artifacts 保留 3 天 2026-05-21 15:12:38 +08:00
小鱼开发 81145fb9d0 fix: ffprobe duration 解析增加 format 回退,兼容 MPEG-TS 等格式 2026-05-21 14:34:08 +08:00
小鱼开发 a913c6e3da chore: 更新版本号至 1.5.19 2026-05-21 14:26:04 +08:00
小鱼开发 2720dacc1d fix: Windows 视频分辨率 0x0 问题 — 改用 Rust 层 ffprobe 读取元数据
- 新增 ffmpeg_cmd::get_video_metadata,通过 ffprobe sidecar 读取视频信息
- 新增 Tauri Command get_video_metadata_cmd 供前端调用
- 前端 videoValidation.ts 不再依赖 HTML5 <video> 标签,改为调用 Rust ffprobe
- 解决 macOS 与 Windows 浏览器视频解码器差异导致的元数据读取不一致问题
2026-05-21 14:23:44 +08:00
小鱼开发 3c4c765f2a ci: macOS 构建使用 gh CLI 下载私有仓库 sidecar,解决认证问题 2026-05-21 11:14:32 +08:00
小鱼开发 2be938d0a3 ci: 修复 macOS 构建 sidecar 下载 URL,使用动态仓库名 2026-05-21 11:07:56 +08:00
小鱼开发 71bad49710 ci: 恢复 GitHub Actions macOS 构建 2026-05-21 10:55:43 +08:00
小鱼开发 30396543ee chore: 删除未使用的 minisign 密钥,更新签名文档
- 从 git 仓库移除 minisign.key.pub(未被任何配置引用)
- 本地删除 minisign.key 私钥
- 更新 windows-signing.md:将密钥文件名修正为实际使用的 .tauri-signing-key.pub
2026-05-21 10:50:34 +08:00
小鱼开发 ec428ba1c8 chore: 删除重复的 tauri.key.pub(内容与 .tauri-signing-key.pub 完全相同) 2026-05-21 10:48:02 +08:00
小鱼开发 f8ee7c61b9 chore: 清理测试密钥文件,防止敏感信息泄露
- 从 git 仓库移除已提交的测试公钥(cargo-test.key.pub、npm-test.key.pub)
- 本地删除测试密钥文件(cargo-test.key、npm-test.key)
- 更新 .gitignore 排除所有测试相关密钥
2026-05-21 10:46:41 +08:00
小鱼开发 d7fa20a890 feat: 样式系统重构、图标更新、FFmpeg 模块调整及配置更新
- 更新 .gitignore 排除私钥和 IDE 配置
- 重构前端样式系统(新增 reset.css/animations.css/components/)
- 更新应用图标资源(多种尺寸)
- 调整 FFmpeg 命令模块
- 更新部署脚本和图标生成脚本
- 新增数据库迁移脚本
- 添加签名公钥文件
2026-05-21 10:45:04 +08:00
小鱼开发 4fc8ee58cb fix: Windows 下 convertFileSrc 使用 http://asset.localhost,CSP 需显式放行 2026-05-21 10:40:19 +08:00