Commit Graph

46 Commits

Author SHA1 Message Date
empty
4dc6259a29 fix: 修复 ResultView Live Photo 预览宽度铺满问题
PHLivePhotoView 无 intrinsic content size,SwiftUI 的
.aspectRatio() 对 UIViewRepresentable 无效。
改用 Color.clear + aspectRatio 撑出正确比例容器,
再用 .overlay 放入 Live Photo 预览。
同时移除 .frame(maxWidth: .infinity) 避免强制撑满。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:56:12 +08:00
empty
88af6b6682 fix: 修复错误统计中 UNKNOWN 错误码问题
三处修复:
1. Analytics.logError() — 从通用 Error 提取 NSError domain:code,
   不再一律记录为 UNKNOWN
2. AppState — 通用 catch 已构造 AppError(LPB-901),改用
   logAppError 记录,确保错误码正确归类
3. HomeView — 视频导入错误包装为 AppError(IMP-001),
   添加 import LivePhotoCore

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:49:13 +08:00
empty
2f6c2d9557 fix: 修复导出诊断包点击后黑屏问题
将 .sheet(isPresented:) + if let 改为 .sheet(item:) 模式,
消除 feedbackPackageURL 与 showingShareSheet 的状态时序竞争。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:43:43 +08:00
empty
c826689ee4 fix: 代码审查 P2 建议项修复(22 项体验优化)
EditorView (8 项):
- 时长警告图标区分:分享警告改用 square.and.arrow.up
- coverExtractionTask 竞态防护:新增 isViewActive 守卫
- sensoryFeedback 优化:缩放触觉仅在手势结束时触发
- iPad 右侧面板增加水平内边距
- 预设列表/兼容模式/AI 区域硬编码间距替换为 DesignTokens
- 诊断按钮 padding 替换为 DesignTokens
- generateButton 补充 accessibilityLabel

PresetManager + RecentWorksManager (5 项):
- iCloud 合并回写 + 防循环标志位
- iCloud 配额防护(>900KB 跳过写入)
- QuotaViolation/AccountChange 事件处理
- EditingPreset 自定义 Codable(decodeIfPresent + 默认值)
- RecentWork aspectRatio 枚举化
- 清理 saveToLocalOnly 死代码

ResultView + ProcessingView + HomeView (5 项):
- ResultView animateIn 改用 structured concurrency
- ProcessingView 阶段数提取为常量
- ProcessingView 脉冲动画去重
- HomeView 删除触觉升级为 .warning
- HomeView Cancel 按钮本地化

LivePhotoCore + AppState (4 项):
- coverImageURL 参数去重,内部从 exportParams 读取
- progress 回调钳位 min(pct, 1.0)
- CropRect 新增 clamped() 归一化校验
- AppState 初始化错误增加 os.Logger 日志

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:34:44 +08:00
empty
f3bcaf4651 fix: 代码审查 P0+P1 问题修复(2 个崩溃 + 14 个体验问题)
P0 致命问题:
- LivePhotoCore: requestLivePhoto continuation 多次 resume 崩溃
  使用 ResumeOnce + highQualityFormat + 跳过降级版本
- ResultView: PHLivePhoto.request continuation 泄漏/多次 resume
  NSLock + hasResumed 守卫 + 处理 cancel/error 边缘情况

P1 并发安全:
- PresetManager/RecentWorksManager: 移除 NotificationCenter 闭包
  中的 guard let self(Swift 6 并发安全)
- RecentWorksManager: cleanupDeletedAssets 移到 Task.detached
- RecentWorksManager: ThumbnailLoader.load 移到后台 + 防重复

P1 EditorView 修复:
- AI 百分比改用 .percent FormatStyle(本地化)
- 预设选择器 if-else 互斥 + Group 包裹
- 诊断按钮优先使用 suggestion.action 闭包
- PhotosPicker 导入添加 50MB 大小限制
- 封面文件写入 try? 改为 do-catch

P1 其他修复:
- HomeView: selectedItem 在所有退出路径重置
- LivePhotoCore: trimmedSeconds 改用实际裁剪后视频时长
- LivePhotoCore: keyFrameTime 越界显式 clamp + DEBUG 警告
- LivePhotoCore: ExportParams Codable 向后兼容

本地化:
- Localizable.xcstrings 9 批翻译修复(~295 条)
  ar/es/fr/ja/ko 英文占位替换为正确翻译

修改文件:
- Sources/LivePhotoCore/LivePhotoCore.swift
- to-live-photo/Views/ResultView.swift
- to-live-photo/Views/HomeView.swift
- to-live-photo/Views/EditorView.swift
- to-live-photo/PresetManager.swift
- to-live-photo/RecentWorksManager.swift
- to-live-photo/Localizable.xcstrings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:19:54 +08:00
empty
ec2e0a3ce5 feat: v1.1 P1 功能实现 + 体验优化(4 项新功能 + 9 项修复)
## 新功能

### 视频时长放宽(Feature 5)
- LivePhotoCore: targetDuration 从固定 0.917 秒改为动态计算(0.5-5.0 秒)
- LivePhotoCore: keyFrameTime 按比例映射到目标视频时长
- EditorView: slider 上限从 1.5 秒提升至 5.0 秒
- EditorView: 超过 2 秒显示壁纸兼容性提示,超过 3 秒显示分享截断提示

### 自定义封面帧(Feature 4)
- ExportParams: 新增 coverImageURL 字段
- EditorView: 封面帧区域增加 PhotosPicker 从相册导入照片作为封面
- AppState: coverImageURL 传递到 LivePhotoWorkflow
- EditorView: onDisappear 时清理临时封面文件,避免磁盘泄漏

### 收藏/模板预设(Feature 6)
- 新增 PresetManager.swift: EditingPreset 模型 + 预设管理器
- 支持保存/加载/删除预设,最多 10 个
- UserDefaults + iCloud KV Store 双重持久化
- EditorView: 预设保存/加载 UI + 空状态 ContentUnavailableView

### iCloud 同步(Feature 7)
- RecentWorksManager: 新增 NSUbiquitousKeyValueStore 同步
- PresetManager: 同步支持 iCloud KV Store
- 合并策略:按 ID 去重,保留最新记录,限制条数上限

## Bug 修复

### P0 级
- ResultView: Live Photo 预览比例从固定值改为动态计算 aspectRatio
- EditorView: 修复本地化字符串拼接问题(使用 String(localized:) 替代硬编码)

### P1 级
- EditorView: 预设列表空状态显示 ContentUnavailableView
- ProcessingView: 进度环与百分比文本动画同步(统一 overallProgress 计算)

### P2 级
- EditorView: 添加触觉反馈(比例切换、生成按钮、预设保存、封面导入)
- HomeView: 删除作品触觉反馈 + 入场动画优化
- ProcessingView: 脉冲动画背景尺寸微调(160-175pt)
- LaunchScreen: 品牌启动画面(App Icon + 标题 + 副标题)

## 本地化

- 新增约 25 个本地化 key,覆盖 8 种语言
  (zh-Hans, zh-Hant, en, ja, ko, es, fr, ar)
- 包含:预设管理、封面导入、时长提示、删除确认、
  空状态、诊断建议等全部新增 UI 文案

## 改动文件(16 个)

- Sources/LivePhotoCore/LivePhotoCore.swift — 动态时长 + coverImageURL
- to-live-photo/AppState.swift — coverImageURL 传递
- to-live-photo/PresetManager.swift — 新增预设管理器
- to-live-photo/RecentWorksManager.swift — iCloud 同步
- to-live-photo/DesignSystem.swift — 新增设计令牌
- to-live-photo/Localizable.xcstrings — 25+ 本地化 key
- to-live-photo/Views/EditorView.swift — 4 项新功能 UI
- to-live-photo/Views/HomeView.swift — 删除作品 + 触觉反馈
- to-live-photo/Views/ProcessingView.swift — 进度环动画修复
- to-live-photo/Views/ResultView.swift — 预览比例修复 + Live Photo 预览
- to-live-photo/Base.lproj/LaunchScreen.storyboard — 品牌启动画面
- to-live-photo/Assets.xcassets/Launch*.colorset — 启动画面颜色资源

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:04:10 +08:00
empty
846d8ea8d7 feat: ProcessingView 脉冲动画微调
- 动画时长从 1.5s 调整为 2.0s(更平缓自然)
- 脉冲尺寸差从 160↔180 调整为 160↔175(更微妙克制)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-07 21:14:48 +08:00
empty
4588c7c1eb feat: 首页入场动画 + 增大最近作品卡片尺寸
入场动画:
- heroSection 添加 opacity + offset 交错入场动画
- recentWorksSection/emptyStateHint 延迟 0.2s 后动画进入
- 使用 DesignTokens.Animation.standard 保持一致性

卡片尺寸:
- RecentWorkCard 从 110x150 增大到 130x178
- 保持相近比例,提升视觉冲击力和触控目标

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-07 21:13:56 +08:00
empty
a75aeed767 refactor: 替换硬编码值为 DesignTokens + 添加触觉反馈和动画
硬编码值替换:
- spacing: 20/24/16/12/8/4 → DesignTokens.Spacing.xl/xxl/lg/md/sm/xs
- cornerRadius: 16/8/4 → DesignTokens.Radius.lg/sm/xs
- padding(.top, 8) / padding(.leading, 4) → DesignTokens.Spacing.sm/xs

生成按钮替换:
- 手动实现的渐变按钮替换为 SoftPrimaryButton 组件
- 添加底部安全间距 padding(.bottom, DesignTokens.Spacing.sm)

触觉反馈(iOS 17+ sensoryFeedback):
- 比例选择切换:.selection
- 生成按钮点击:.impact(weight: .medium)
- 裁剪手势结束:.impact(weight: .light)

动画优化:
- AspectRatioButton 添加选中状态过渡动画
- CropOverlay 添加比例切换平滑过渡动画

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-07 21:12:37 +08:00
empty
1556dfd167 fix: 修复裁剪手势状态丢失 + 合并重复预览代码
- 为 MagnificationGesture/DragGesture 添加 .onEnded 处理器,
  新增 lastCropOffset/lastCropScale 累积变量,修复抬手后
  缩放/偏移从初始值重新开始的问题
- 提取 cropPreview(height:dynamicHeight:) 共享方法和
  cropGesture 计算属性,消除 iPhone/iPad 约 60 行重复代码
- resetCropState() 同步重置累积变量

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-07 21:07:59 +08:00
empty
cfc39c75fc docs: 更新 README 反映 1.0 最新代码状态
- 新增功能特性:国际化、引导页、设置中心、最近作品
- 更新项目结构:8 个 View + 新增管理器和国际化文件
- 修正克隆地址为 Gitea 仓库
- 补充 AI 超分辨率技术细节(ODR、流式混合、vImage)
- 新增国际化章节(9 语言)
- 补充文档表格

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-07 20:27:40 +08:00
8a04d9774d Merge pull request 'fix: 1.0 发版前安全审查与优化修复' (#3) from release/1.0-final-fixes into main 2026-02-07 20:20:10 +08:00
empty
a49fee4b52 fix: 安全审查 P3 问题修复(10项)
无障碍与用户体验:
- 补全 OnboardingView/ProcessingView/ResultView/WallpaperGuideView 无障碍标注
- ContentView 添加后台切换截屏保护(模糊覆盖层)
- EditorView iPad 右侧面板改为响应式宽度(minWidth:320, maxWidth:420)
- ResultView CelebrationParticles 改用 Task 替代 DispatchQueue 延迟
- DesignSystem accessibility key 从中文改为英文
- EditorView/WallpaperGuideView 生成按钮 accentColor 统一为设计系统
- OnboardingView 第四页添加相册权限预告提示

核心库优化:
- LivePhotoLogger 添加日志安全注释
- CacheManager.makeWorkPaths 添加磁盘空间预检查(<500MB 报错)
- ImageFormatConverter BGRA/ARGB 转换改用 vImagePermuteChannels 加速

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-07 20:11:50 +08:00
empty
4bcad4d4b8 fix: 安全审查 P0-P2 问题修复(26项)
P0 关键修复:
- 移除 exit(0) 强制退出,改为应用语言设置后下次启动生效
- 修复 LivePhotoValidator hasResumed data race,引入线程安全 ResumeOnce
- 修复 addAssetID(toVideo:) continuation 泄漏,添加 writer/reader 启动状态检查
- 修复 OnboardingView "跳过" 按钮未国际化
- 修复 LanguageManager "跟随系统" 硬编码中文
- .gitignore 补全 AI 工具目录

P1 架构与 UI 修复:
- 修复 RealESRGANProcessor actor 隔离违规
- 修复 ODRManager continuation 生命周期保护
- TiledImageProcessor 改为流式拼接,降低内存峰值
- EditorView 硬编码颜色统一为设计系统
- ProcessingView 取消导航竞态修复
- 反馈诊断包添加知情同意提示

P2 代码质量与合规:
- EditorView/WallpaperGuideView 硬编码间距圆角统一为设计令牌
- PrivacyPolicyView 设计系统颜色统一
- HomeView 重复 onChange 合并
- PHAuthorizationStatus 改为英文技术术语
- Analytics 日志 assetId 脱敏
- 隐私政策补充 localIdentifier 存储说明
- 清理孤立的 subscription 翻译 key
- 脚本硬编码绝对路径改为相对路径
- DesignSystem SoftSlider 类型不匹配编译错误修复

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-07 20:04:41 +08:00
empty
e08cfc981e feat: finalize website i18n and language dropdown fixes for App Store submission 2026-01-11 13:29:22 +08:00
empty
677c1ef98d feat: complete website internationalization and fix app store links dropdown 2026-01-11 02:35:54 +08:00
empty
4dd24aefc8 chore: 版本号升级到 1.0.1 (Build 2)
版本变更:
- MARKETING_VERSION: 1.0 → 1.0.1
- CURRENT_PROJECT_VERSION: 1 → 2

本次版本包含的修复:
- 全面修复 Views 目录国际化遗漏 (66个新增键值)
- 画面比例显示名称国际化 (5个新增键值)
- WallpaperGuideView 完整国际化 (28个新增键值)
- 支持8种语言: zh-Hans, zh-Hant, en, es, ar, fr, ja, ko

构建验证:BUILD SUCCEEDED

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 17:40:55 +08:00
empty
92fa937463 fix: 画面比例显示名称国际化
修复内容:
- RecentWorksManager: aspectRatioDisplayName 使用本地化键值
- 新增5个画面比例本地化键值:
  - aspectRatio.original (原比例)
  - aspectRatio.lockScreen (锁屏)
  - aspectRatio.fullScreen (全屏)
  - aspectRatio.classic (4:3)
  - aspectRatio.square (1:1)
- 支持8种语言翻译

影响范围:
- 首页"最近"作品卡片显示的比例名称
- 设置页面诊断信息中的比例显示

构建验证:BUILD SUCCEEDED

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 17:27:03 +08:00
empty
f505448a1c fix: 全面修复Views目录国际化遗漏
修复内容:
- EditorView: 30+个硬编码字符串替换为本地化键值
  - 导航标题、封面帧提示、视频时长、关键帧时刻
  - AI超分辨率完整说明(下载提示、分辨率提升、处理时间、本地处理)
  - 兼容模式详细参数(分辨率、帧率、编码、色彩)
  - 视频诊断建议(HDR、高分辨率、高帧率)
- ProcessingView: 17个阶段描述本地化
  - 导航标题、取消按钮
  - 9个处理阶段的标题和描述
- ResultView: 6个按钮和描述本地化
  - 导航标题、保存描述、验证徽章、操作按钮
- OnboardingView: 4个引导页完整国际化
  - 每页标题和描述、导航按钮
- 新增66个localization keys,支持8种语言
  (zh-Hans, zh-Hant, en, es, ar, fr, ja, ko)

构建验证:BUILD SUCCEEDED

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 17:13:35 +08:00
empty
58cbbf9a44 fix: WallpaperGuideView完整国际化修复
问题:WallpaperGuideView界面切换到日语后仍显示大量中文内容

修复内容:
- 添加28个新的本地化key,覆盖所有界面文本
- 替换导航标题、步骤说明、常见问题等所有硬编码中文字符串
- 新增localization keys:
  * wallpaper.title(导航标题)
  * wallpaper.ios17Required(iOS版本提示)
  * wallpaper.openPhotosApp / findSavedPhoto(快捷操作)
  * wallpaper.steps(步骤区标题)
  * wallpaper.step1-5.title/description(5个设置步骤)
  * wallpaper.step4iOS16.title/description(iOS 16特殊说明)
  * wallpaper.faq(常见问题标题)
  * wallpaper.faq1-5.question/answer(5个FAQ条目)

所有字符串均提供8种语言翻译(zh-Hans, zh-Hant, en, es, ar, fr, ja, ko)

构建验证:BUILD SUCCEEDED

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 16:54:40 +08:00
empty
2768791ae4 fix: 版本发布前国际化完善和代码质量修复
P0修复(阻塞发布):
- 补充13个硬编码字符串的8种语言翻译
- 更新App Store评分链接为真实App ID (6756587477)
- 移除URL强制解包,改用安全的可选绑定

P1修复(质量保证):
- 本地化Info.plist权限说明(8种语言)
- 统一developmentRegion为zh-Hans
- 清理11处生产环境print语句,使用条件编译

P3修复(代码质量):
- 清理4个冗余本地化key
- 添加实用工具脚本(add_missing_strings.py, clean_redundant_keys.py)
- 补充App Store元数据国际化文档

所有阻塞发布问题已修复,满足App Store审核要求。
Release构建验证通过(BUILD SUCCEEDED)。

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 16:38:23 +08:00
empty
30bcdc1b2f fix: 更新隐私政策和使用条款中的联系邮箱
将邮箱地址从 support@let5see.xyz 更新为 let5sne@gmail.com

影响范围:
- privacy.contact.email (8种语言)
- terms.contact.email (8种语言)

总计: 16 个本地化字符串

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 14:54:38 +08:00
empty
1c4725cff7 feat: 隐私政策和使用条款完整多语言翻译
为隐私政策和使用条款的所有 87 个字符串添加完整的 5 种语言翻译:

📝 隐私政策 (47 个键):
- 概述、本地模式、云端模式
- 权限说明、数据收集、数据存储
- 第三方服务、用户权利、联系方式

📝 使用条款 (40 个键):
- 接受条款、服务说明
- 订阅与内购(支付、续订、取消、退款)
- 使用限制(合法、个人、禁止滥用)
- 云端服务、免责声明
- 知识产权、条款变更、联系方式

 翻译质量:
- 所有 5 种语言 (es/ar/fr/ja/ko) 达到 100% 翻译
- 法律术语准确翻译
- 保持各语言的专业性和可读性

🌍 语言覆盖:
- 🇪🇸 西班牙语 (Español)
- 🇸🇦 阿拉伯语 (العربية)
- 🇫🇷 法语 (Français)
- 🇯🇵 日语 (日本語)
- 🇰🇷 韩语 (한국어)

总计: 87 键 × 5 语言 = 435 个专业翻译

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 14:49:26 +08:00
empty
565c92795a feat: 添加语言切换即时生效功能
用户体验改进:
- 选择新语言后立即弹出确认对话框
- 提供"立即重启"和"取消"两个选项
- 点击"立即重启"后自动应用语言设置并重启应用
- 点击"取消"则保持当前语言不变

技术实现:
- 添加 showingLanguageChangeAlert 状态管理对话框
- 添加 pendingLanguage 临时存储用户选择
- 修改 Picker 的 set 闭包,选择新语言时触发对话框
- 确认后调用 exit(0) 优雅退出应用

新增本地化字符串:
- settings.languageChangeAlertTitle (8种语言)
- settings.languageChangeAlertMessage (8种语言)
- settings.restartNow (8种语言)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 14:42:25 +08:00
empty
5475e00016 feat: LanguageManager 添加 5 种新语言选项
在设置页面的语言下拉菜单中添加:
- Español (西班牙语)
- العربية (阿拉伯语)
- Français (法语)
- 日本語 (日语)
- 한국어 (韩语)

用户现在可以在应用内直接切换到这些语言。

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 14:37:46 +08:00
empty
33fbc5f4b2 docs: 添加国际化实施总结和工具脚本
包含:
- 国际化实施总结文档
- 翻译工具脚本 (quick_i18n.py)
- 手动翻译库 (manual_translations.json)
- 测试指南和后续优化建议
2026-01-10 14:30:09 +08:00
empty
b3b3c588c3 feat: 添加 5 种主流语言国际化支持 (es/ar/fr/ja/ko)
根据 App Store Connect 下载数据,为应用添加多语言支持:
-  高优先级: 西班牙语 (es)、阿拉伯语 (ar)
-  中优先级: 法语 (fr)、日语 (ja)、韩语 (ko)

变更:
- Localizable.xcstrings: 为 185 个字符串添加 5 种语言翻译
  * 30 个核心 UI 字符串使用高质量手动翻译
  * 其余字符串使用英文占位(待后续优化)
- PrivacyPolicyView.swift: 将硬编码文本替换为本地化字符串
- project.pbxproj: 在 knownRegions 中添加新语言支持

覆盖地区:
- 阿根廷、墨西哥、西班牙 (西班牙语)
- 阿尔及利亚、突尼斯、中东 (阿拉伯语)
- 法国、加拿大 (法语)
- 日本 (日语)
- 韩国 (韩语)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 14:29:05 +08:00
empty
683cebd5fa refactor: 删除未使用的 MakerNotes Patcher 死代码
删除文件:
- HEICMakerNotePatcher.swift (591 行)
- MakerNotesPatcher.swift (83 行)

原因:
1. 锁屏壁纸兼容性的根因是 MOV 的 still-image-time(必须为 0),
   而非 HEIC 的 MakerNotes 结构
2. 简化版 ContentIdentifier 方案经竞品验证,对 iOS 17+ 有效
3. 复杂的二进制 MakerNote 注入从未被需要

同时在 LivePhotoCore.swift 添加策略说明注释

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 23:16:37 +08:00
empty
e041cacd7d fix: UI 设计系统优化 - 无障碍、深色模式、对比度
- DesignSystem: 深色模式阴影适配,textMuted 对比度修复
- DesignSystem: SoftIconButton/SoftSlider/SoftProgressRing 添加 accessibilityLabel
- EditorView: AspectRatioButton 添加无障碍支持,清理硬编码颜色
- WallpaperGuideView: 清理硬编码颜色 (Color.secondary → Color.softElevated)
- Localizable: 修复 home.worksCount 插值 key 格式

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 23:15:41 +08:00
empty
143c471714 chore: 更新 CLAUDE.md 语言配置
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 22:24:19 +08:00
empty
d6357c7b32 docs: 添加项目 README
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 22:24:17 +08:00
empty
64e962b6a4 feat: AI 模型支持 On-Demand Resources 按需下载
- 新增 ODRManager 管理模型资源下载
- EditorView 添加下载进度 UI
- Package.swift 移除内嵌模型资源
- 减小应用包体积约 64MB

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 22:23:59 +08:00
empty
6e60bea509 feat: SettingsView 完善国际化支持
- 所有文本改用 String(localized:)
- 添加应用内语言切换 Picker
- 支持简体中文、繁体中文、英文

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 22:23:43 +08:00
empty
bcf0dd71a7 chore: 忽略 .serena 工具目录 2026-01-03 22:23:26 +08:00
empty
6d8a3a85a6 feat: 完善 HomeView 国际化支持
- 新增 LanguageManager 支持应用内语言切换
- 新增 Localizable.xcstrings 包含 78 个翻译键
- 修复 HomeView 硬编码文本,改用 String(localized:)
- 支持简体中文、繁体中文、英文三种语言

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 22:19:02 +08:00
empty
bf3f9d9eb2 docs: 更新 TASK.md 任务状态和决策备忘
- M4 更新:TiledImageProcessor 描述为"真正的分块处理"
- M5 新增:AI 增强质量优化(已完成)、高级合成功能规划
- 决策备忘已完成:HDR 策略、编码兜底策略、高级合成功能延后

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 21:05:17 +08:00
empty
3f503c1050 feat: 实现真正的分块处理优化 AI 增强质量
- TiledImageProcessor 重写:将大图拆分为 512×512 重叠 tiles
- 64px 重叠区域 + 线性权重混合,消除拼接接缝
- AIEnhancer 自动选择处理器:大图用 TiledImageProcessor,小图用 WholeImageProcessor
- 信息损失从 ~86% 降至 0%(1080×1920 图像不再压缩到 288×512)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 21:04:22 +08:00
empty
3d1677bdb1 docs: 新增执行安全规范,防止命令挂起阻塞会话 2025-12-16 10:58:34 +08:00
empty
cc6e137994 docs: 文档生命周期管理规范化
CLAUDE.md:
- 新增「文档管理」章节,明确文档分类和更新策略
- 核心原则:不创建需要手工同步的文档

删除过时文档:
- PROJECT_STRUCTURE.md(代码即结构)
- docs_index.md(直接浏览目录)

归档历史设计文档:
- PRD/TECHSPEC/IXSPEC 移入 docs/archive/

统一应用名称:
- 所有文档中 "Live Photo Maker" → "Live Photo Studio"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 10:55:18 +08:00
empty
d97152b5df docs: 优化禁止事项表述 2025-12-16 10:42:42 +08:00
empty
36530b8511 docs: 完善 CLAUDE.md 开发规范
新增:
- Git 提交类型 (feat/fix/refactor/chore/docs)
- 分支策略 (直接 main vs 新建分支)
- 提交前检查清单
- 禁止事项清单
- 代码规范细则

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 10:39:58 +08:00
empty
c37445b90f refactor: 用 CLAUDE.md 替代 skill 文件
skill 机制适用于跨项目复用的专家知识,
对于单一职责项目,始终生效的 CLAUDE.md 更合适。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 10:32:25 +08:00
empty
5aba93e967 feat: M2-M4 完成,添加 AI 增强、设计系统、App Store 准备
新增功能:
- AI 超分辨率模块 (Real-ESRGAN Core ML)
- Soft UI 设计系统 (DesignSystem.swift)
- 设置页、隐私政策页、引导页
- 最近作品管理器

App Store 准备:
- 完善截图 (iPhone 6.7"/6.5", iPad 12.9")
- App Store 元数据文档
- 修复应用图标 alpha 通道
- 更新显示名称为 Live Photo Studio

工程配置:
- 配置 Git LFS 跟踪 mlmodel 文件
- 添加 Claude skill 开发指南
- 更新 .gitignore 规则

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 10:24:31 +08:00
empty
64cdb82459 feat(M1): 完成比例模板、裁剪手势和取消策略
主要改动:
- EditorView: 添加5种比例模板选择(原比例/锁屏/全屏/4:3/1:1)
- EditorView: 实现裁剪预览(半透明遮罩+裁剪框)和缩放拖拽手势
- LivePhotoCore: ExportParams 新增 CropRect 和 AspectRatioTemplate
- LivePhotoCore: scaleVideoToTargetDuration 支持裁剪和比例输出
- AppState: 添加任务取消机制(cancelProcessing)
- ProcessingView: 添加取消按钮,支持取消状态显示
- CacheManager: 添加 removeWorkDir 静默清理方法
- Analytics: 添加 buildLivePhotoCancel 事件

M1 编辑能力全部完成:
 比例模板:锁屏/全屏/4:3/1:1/原比例
 裁剪手势:缩放+拖拽
 取消策略:终止任务+清理中间文件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 20:51:08 +08:00
empty
a8b334ef39 feat(M1): 完成 MVP 核心功能,添加埋点和应用图标
主要改动:
- 移除调试导出功能(exportToDocuments 及相关 UI)
- EditorView 添加封面帧预览和关键帧时间选择
- 新增 Analytics.swift 基础埋点模块(使用 os.Logger)
- 创建 Live Photo 风格应用图标(SVG → PNG)
- 优化 LivePhotoCore:简化代码结构,修复宽高比问题
- 添加单元测试资源文件 metadata.mov
- 更新 TASK.md 进度追踪

M1 MVP 闭环已完成:
 5个核心页面(Home/Editor/Processing/Result/WallpaperGuide)
 时长裁剪 + 封面帧选择
 完整生成管线 + 相册保存 + 系统验证
 壁纸设置引导(iOS 16/17+ 差异化文案)
 基础埋点事件追踪

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 20:34:20 +08:00
empty
299415a530 feat: 初始化 Live Photo 项目结构
- 添加 PRD、技术规范、交互规范文档 (V0.2)
- 创建 Swift Package 和 Xcode 项目
- 实现 LivePhotoCore 基础模块
- 添加 HEIC MakerNote 元数据写入功能
- 创建项目结构文档和任务清单
- 添加 .gitignore 忽略规则
2025-12-14 16:21:20 +08:00