120 Commits

Author SHA1 Message Date
wangdl
491c3e7ef0 fix: M-CHAT audit 修复 7 个缺陷
- A1/A2(P0): listSessions 响应格式 + ChatEntryContext Hashable
- A3: forceCreate 支持,新对话按钮创建新会话
- A4: loadSession 更新 entryContext (scope 标签)
- A6: 死代码清理 (itemIds + AIMessageCitation)
- A8: sessions sheet scope 过滤
- A10: deleteSession 错误处理

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 17:58:45 +08:00
wangdl
2610bcf7f9 feat: M-CHAT iOS ChatScope 入口 + AI View 对接
## ChatEntryContext 模型
- ChatScopeType enum (knowledgeBase/folder/material/knowledgeItem/global)
- ChatEntryContext struct + ChatScopeSnapshot
- ChatSession 更新 (新增 13 个 scope 字段)
- CreateSessionRequest/UpdateChatSessionRequest

## Route + Service
- Route.aiChat 从 knowledgeBaseId 改为 ChatEntryContext
- RagChatService.createSession 接入 open-or-create API
- listSessions 支持 scope 过滤
- 新增 updateSession (PATCH)

## 6 个入口全部接入
- 知识库详情 → knowledge_base scope
- 资料详情 → material scope
- 资料阅读页 → material scope
- 知识点详情 → knowledge_item scope
- 全局入口 → global scope

## AI Chat View
- open-or-create: load() 直接调 POST /sessions
- 顶部 scope 指示器 (scopeLabel + scopeIcon)
- 新对话按钮在当前 scope 下工作

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 17:41:27 +08:00
wangdl
4ebb70c036 feat: 图标线型化 + 首页重设计 + 知识库卡片优化 + 知识点列表重构
- 所有 SF Symbol .fill 图标替换为线性版本
- 自定义加载动画全部替换为原生 ProgressView/refreshable
- StudyHomeView 重设计:优先级驱动主行动卡片
- ZLibraryCard 重新设计:封面图自适应、信息布局优化
- LibraryDetailPage:顶部KB信息区、···菜单、排序、长按操作
- 知识点列表:文件类型图标、学习时长、分割线样式
- 弥散渐变顶部背景
- 新增 icon-folder、icon-xmark SVG

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 20:07:15 +08:00
wangdl
52756d3bb0 feat(ios): 全局替换所有 systemName 为 Tabler SVG 图标
- 30+ 种 systemName 全部换为自定义 SVG
- 新增 list/clock/refresh/pencil 4 个 Tabler 图标
- 底部导航栏已使用自定义 SVG(无需改动)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 13:53:43 +08:00
wangdl
4889f6c832 feat(ios): 批量替换为 Tabler 图标(GitHub 直取)
- 所有已替换图标统一使用 Tabler outline 风格
- 描边 stroke-width=2, 24×24 viewBox
- 来源: raw.githubusercontent.com/tabler/tabler-icons/main/icons/outline/
- 新增: flame/calendar/sparkles/brain/books/warning/lightbulb/file/pin/mic/question/storage

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 13:50:30 +08:00
wangdl
39fb455f18 feat(ios): 设置图标替换为 Tabler 风格
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 13:45:04 +08:00
wangdl
70b9ee1250 fix(ios): 加号/垃圾桶图标尺寸放大 + 加号颜色统一
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 13:32:10 +08:00
wangdl
92f191c294 fix(ios): ContentView 缺少 import Combine
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 11:00:27 +08:00
wangdl
f6df01d9ca feat(ios): TabBar 显示/隐藏增加入场出场动画
- TabBarState ObservableObject 管理可见性
- ContentView 用 .toolbar(hidden)+animation 驱动动画
- 子页面 hideTabBarWithAnimation() 替代静态 toolbar hidden
- 0.28s easeInOut 淡入淡出

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:57:39 +08:00
wangdl
7f252b48f0 fix(ios): TabBar 隐藏改回直接 .toolbar(.hidden, for: .tabBar)
- 移除 AnimatedTabBarHide 环境值动画系统
- 所有子页面统一使用 .toolbar(.hidden, for: .tabBar)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:52:32 +08:00
wangdl
5faff2f5ca fix(ios): 临时移除问题图标,排查 asset import 错误
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:46:30 +08:00
wangdl
1de940657c fix(ios): 方法图标 viewBox 恢复 100×100
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:43:32 +08:00
wangdl
8f5b0ce9f1 fix(ios): 学习方法行参数顺序修正
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:42:25 +08:00
wangdl
51f51692ef fix(ios): 全局图标尺寸标准化 — 导航22/行内20/箭头14
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:41:41 +08:00
wangdl
18b0d1f4b2 feat(ios): 学习方法偏好图标替换 2026-05-30 10:39:31 +08:00
wangdl
0ba5401c82 feat(ios): 恢复纯色 template 渲染 + 新云图标替换 iCloud 同步
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:37:00 +08:00
wangdl
d1a03ff72e fix(ios): 所有图标关闭 template 渲染,保留黑+灰原色
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:34:38 +08:00
wangdl
509ff8847b feat(ios): 复习提醒开关切换铃铛图标(开=响铃/关=静音)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:33:04 +08:00
wangdl
1260c3cc92 fix(ios): AppIcon logo 缩放到标准 1024×1024
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:30:01 +08:00
wangdl
1ccdb6e4a7 fix(ios): AppIcon Contents.json 简化为 iOS-only 1024x1024
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:25:35 +08:00
wangdl
1aaf7f35ac feat(ios): App 图标替换为知习 Logo
- 从 startup-plan/图片资源/logo.png 复制到 AppIcon.appiconset
- 1254×1254,Xcode 自动生成所需尺寸

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:24:20 +08:00
wangdl
cfd5e07d40 feat(ios): App 显示名称改为「知习」
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:22:39 +08:00
wangdl
f99a9209d4 fix(ios): 用户协议和隐私政策图标互换
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:20:59 +08:00
wangdl
5ac6db8c71 fix(ios): 隐私政策和学习目标图标互换
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:20:03 +08:00
wangdl
9cefe25363 fix(ios): 帮助与反馈和用户协议图标互换
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:19:23 +08:00
wangdl
18d9049a96 fix(ios): 语言和隐私政策图标互换
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:18:39 +08:00
wangdl
439ea531d1 fix(ios): 5个设置图标内容旋转到正确名称
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:17:38 +08:00
wangdl
efa48a6dd5 fix(ios): SettingsView 括号修复 + isCustom 参数位置修正
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:12:35 +08:00
wangdl
3c3c586e9f feat(ios): 学习目标/隐私/用户协议/语言/帮助 5个图标替换 + 删除自动备份
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:06:26 +08:00
wangdl
3317602cdd fix(ios): 删除云图标,改用上传图标;设置页图标统一黑色
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:59:41 +08:00
wangdl
812a621251 fix(ios): 云图标双路径统一黑色修复 evenodd 镂空
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:56:20 +08:00
wangdl
c06c09b56a fix(ios): 云图标还原原始路径,外层黑色+内层灰色
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:55:00 +08:00
wangdl
794cd4cdd9 fix(ios): ZXSettingToggleRow 支持自定义图标 + iCloud cloud icon
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:52:45 +08:00
wangdl
ecc2ad5aa8 fix(ios): 云图标重新设计 — 黑+灰双色统一风格
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:51:00 +08:00
wangdl
78fde7cc09 feat(ios): iCloud 同步图标替换
- icon-cloud 替换 SettingsView 中的 iCloud
- 注意:云的路径粗细与其他图标不统一,需要后续优化

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:47:43 +08:00
wangdl
62714558db feat(ios): 退出/相机/垃圾桶/打勾 4 个图标替换
- icon-logout: 退出登录
- icon-camera: 拍照上传
- icon-trash: 删除
- icon-check: 确认打勾
- 全局替换 systemName: trash/camera.fill/rectangle.portrait/checkmark

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:42:57 +08:00
wangdl
9f4e3815d4 feat(ios): 播放/暂停/下载/上传/左右箭头 6 个图标全部替换
- icon-play / icon-pause / icon-download / icon-upload
- icon-chevron-left / icon-chevron-right
- 全局替换 systemName: chevron/play 引用

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:38:15 +08:00
wangdl
a09853ffa9 fix(ios): 全局去掉图标彩色背景块,图标直接显色
- ZXSettingRow / ZXSettingToggleRow 移除 background+clipShape
- ProfileView 通知/设置图标去掉毛玻璃背景
- 全局清理 .background(xxxBG(0.xx)).clipShape() 图案

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:33:59 +08:00
wangdl
cb5e49de12 feat(ios): + 号图标替换为自定义 SVG
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:29:25 +08:00
wangdl
0b2aafe045 feat(ios): 浅色/深色切换图标 + ZXSettingRow 支持自定义图标
- 新增 icon-sun(太阳)/ icon-moon(月亮)双色图标
- ZXSettingRow 新增 isCustom 参数支持 Asset 图片
- SettingsView 外观行根据当前模式切换图标

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:27:28 +08:00
wangdl
5c1cb556b9 feat(ios): 设置/消息/搜索图标替换为自定义 SVG
- ProfileView: 铃铛→icon-notifications, 齿轮→icon-settings
- LibraryHomeView: 放大镜→icon-search
- ZhiXiIcon 枚举补全所有图标

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:24:24 +08:00
wangdl
791b863a0e fix(ios): 修正三个 Tab 图标对应关系
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:19:41 +08:00
wangdl
371f00772a feat(ios): 底部导航栏 4 个 Tab 全部替换为自定义双色图标
- 学习: tab-learn(书本图标,黑+灰 → 蓝+浅蓝)
- 知识库: tab-library(节点图标)
- 分析: tab-analysis(人群图标)
- 我的: tab-profile(层叠卡片图标)
- 每个图标 2 个 imageset(默认 + 激活双色)
- shared-assets/icons/ 作为跨平台 SVG 真理源

注意:TabView 系统图标尺寸不可自定义,若需放大需自建 TabBar 组件

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:17:30 +08:00
wangdl
9ce69f3ddb feat(ios): 学习 Tab 图标双色方案(默认黑+灰 / 激活蓝+浅蓝)
- tab-learn.svg: 默认态(黑色主路径 + 灰色次路径)
- tab-learn-active.svg: 激活态(#3D7FFB + #9DA7FD 品牌色)
- ContentView 根据 selectedTab 自动切换图标

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:14:47 +08:00
wangdl
e254db0ba4 fix(ios): togglePin 改用 APIClient.request 替代不存在的 .post
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:07:23 +08:00
wangdl
d1b3ac160a fix(ios): QuizGenerateRequest Codable 替代 [String: Any]
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:06:36 +08:00
wangdl
9dfc1e1954 fix(ios): AIMessage 调用补全 citations 参数
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:05:50 +08:00
wangdl
98d6d0dc7b fix(ios): ProfileViewModel @Published 多变量拆分为独立行
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:04:37 +08:00
wangdl
7193dca877 fix(ios): AnalysisHomeView 括号结构修复
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:03:27 +08:00
wangdl
4d900dfec6 feat(ios): 自定义图标体系 + 学习 Tab 图标替换
- 新增 shared-assets/icons/tab-learn.svg(SVG源文件)
- 新增 Assets.xcassets/Icons/tab-learn.imageset(Template Image)
- 新增 ZhiXiIcon 统一图标枚举
- ContentView 学习 Tab 从 systemImage: flame 改为自定义图标

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:00:57 +08:00