gaoziman
|
5d301364fb
|
feat(类型): 添加智能摘要功能类型定义
- 定义摘要长度类型 (short/standard/detailed)
- 定义摘要风格类型 (bullet/narrative)
- 添加摘要状态、数据等接口定义
- 配置摘要长度和风格的默认选项
- 导出模块入口文件
|
2025-12-28 01:30:05 +08:00 |
|
gaoziman
|
c48d05885a
|
feat(集成): 集成快捷键系统到应用
- 在根布局添加 HotkeysProvider
- 重构 Sidebar 使用 useHotkeys 注册快捷键
- 移除原有的手动键盘事件监听
- 添加 N 键新建对话快捷键
- 添加 Cmd/Ctrl+K 和 Cmd/Ctrl+/ 搜索快捷键
|
2025-12-27 23:56:26 +08:00 |
|
gaoziman
|
f859ffe4cd
|
feat(组件): 添加快捷键帮助面板 UI
- 实现快捷键帮助弹窗界面
- 按分类(导航、编辑、通用)分组显示
- 支持 Mac/Windows 快捷键格式切换
- 预置常用快捷键说明
- 按 Esc 关闭面板
|
2025-12-27 23:56:19 +08:00 |
|
gaoziman
|
827a033d41
|
feat(快捷键): 实现 useHotkeys Hook
- 提供 useHotkeys 单个快捷键注册
- 提供 useHotkeysGroup 批量注册
- 提供 useHotkeysHelper 帮助面板控制
- 提供 useRegisteredHotkeys 获取已注册快捷键
- 支持依赖数组自动更新
|
2025-12-27 23:56:12 +08:00 |
|
gaoziman
|
14e3185664
|
feat(快捷键): 实现全局快捷键 Provider
- 实现全局键盘事件监听器
- 支持快捷键注册和注销机制
- 处理 IME 输入法状态检测
- 支持输入框内快捷键过滤
- 内置 ? 键显示帮助面板
- 内置 Esc 键关闭弹窗
|
2025-12-27 23:56:05 +08:00 |
|
gaoziman
|
9080c3af21
|
feat(类型): 添加快捷键系统类型定义
- 定义 ModifierKey、HotkeyScope、HotkeyCategory 类型
- 定义 HotkeyConfig 快捷键配置接口
- 定义 HotkeysContextType Context 类型
- 实现 formatHotkey 格式化显示函数
|
2025-12-27 23:55:55 +08:00 |
|
gaoziman
|
da65cedf28
|
feat(Markdown): 集成 Mermaid 图表和 KaTeX 公式渲染
- MarkdownRenderer 集成 MermaidBlock 组件
- 添加 remark-math 和 rehype-katex 插件支持数学公式
- 添加 isStreaming 参数传递优化流式渲染
- MessageBubble 传递流式状态给渲染器
|
2025-12-27 22:32:13 +08:00 |
|
gaoziman
|
ead84a1921
|
feat(组件): 新增 Mermaid 图表渲染组件
- 创建 MermaidBlock 组件支持流程图渲染
- 实现亮色/暗色双主题配色方案
- 支持主题切换时自动重新渲染
- 添加防抖处理优化流式输出体验
- 添加 Mermaid 背景色 CSS 变量
|
2025-12-27 22:31:52 +08:00 |
|
gaoziman
|
011f1d8742
|
feat(依赖): 添加 Mermaid 图表和 KaTeX 数学公式支持
- 添加 mermaid@11.12.2 用于流程图渲染
- 添加 katex@0.16.27 用于数学公式渲染
- 添加 remark-math 和 rehype-katex 插件
- 添加 @types/katex 类型定义
|
2025-12-27 22:31:31 +08:00 |
|
gaoziman
|
c5c16ee893
|
style(样式): 添加图片生成相关动画效果
- 新增 shimmer 闪光动画
- 添加 progress 进度条动画
- 定义图片生成加载状态样式
|
2025-12-27 15:02:34 +08:00 |
|
gaoziman
|
de0860a5aa
|
feat(页面): 聊天页面集成图片生成功能
- 传递 isGeneratingImage 状态到消息气泡
- 传递 generatedImages 数据到消息组件
- 支持历史消息中的生成图片显示
|
2025-12-27 15:02:26 +08:00 |
|
gaoziman
|
8b558fb780
|
feat(组件): 消息气泡支持 AI 生成图片展示
- 添加 generatedImages 和 isGeneratingImage 属性
- 实现图片生成加载动画
- 添加图片操作按钮(复制、重新生成、下载、放大)
- 生成图片独立显示,不包含在白色卡片内
- 优化空内容时的卡片条件渲染
|
2025-12-27 15:02:12 +08:00 |
|
gaoziman
|
6a70b236b6
|
feat(组件): 模型选择器支持 Gemini 图片模型
- 新增 Gemini 图片模型卡片配置
- 添加 gemini 模型类型检测逻辑
- 实现 Gemini 模型选择和高亮显示
- 添加模型类型切换提示信息
|
2025-12-27 15:02:04 +08:00 |
|
gaoziman
|
81e437d0b4
|
feat(Hook): useStreamChat 支持图片生成状态管理
- 新增 GeneratedImageData 类型定义
- 添加 isGeneratingImage 和 generatedImages 状态
- 处理流式返回的图片生成事件
- 支持图片生成完成后的状态更新
|
2025-12-27 15:01:57 +08:00 |
|
gaoziman
|
c72b4ce3e2
|
feat(API): 集成 Gemini 图片生成能力
- 添加 Gemini 模型类型检测和初始化
- 实现图片生成请求处理逻辑
- 支持流式返回生成的图片数据
- 将生成的图片保存到数据库
|
2025-12-27 15:01:49 +08:00 |
|
gaoziman
|
4c43fb4471
|
feat(数据库): 添加 AI 生成图片字段支持
- messages 表新增 generated_images 字段存储 Gemini 生成的图片
- 定义 GeneratedImageData 接口(mimeType, data, width, height)
- shared_conversations 表新增 selected_message_ids 字段
|
2025-12-27 15:01:42 +08:00 |
|
gaoziman
|
4efee3a06a
|
refactor(聊天头部): 简化 ChatHeaderInfo 组件
- 移除模型选择器功能及相关 UI
- 简化组件 props,只保留助手信息展示
- 清理未使用的导入和状态管理代码
|
2025-12-24 23:10:48 +08:00 |
|
gaoziman
|
0f8fd2ce1f
|
feat(聊天页面): 实现搜索结果跳转高亮
- 聊天页面支持通过 URL 参数定位消息
- MessageBubble 组件添加高亮状态支持
- 新增消息高亮动画样式,支持亮色/暗色主题
- 跳转后自动滚动到目标消息并高亮闪烁
- 3秒后自动清除高亮效果
|
2025-12-24 22:51:04 +08:00 |
|
gaoziman
|
57e8631e10
|
feat(侧边栏): 集成消息搜索入口
- 添加搜索入口按钮显示快捷键提示
- 支持全局快捷键 ⌘K / Ctrl+K 打开搜索
- 集成 SearchModal 搜索弹框组件
|
2025-12-24 22:50:45 +08:00 |
|
gaoziman
|
236b368537
|
feat(组件): 添加消息全局搜索弹框
- 新增 SearchModal 搜索模态框组件
- 新增 SearchResultItem 搜索结果项组件
- 支持键盘快捷键导航(上下箭头选择、回车打开)
- 实现关键词高亮显示和智能截取上下文
- 包含骨架屏加载、空状态、错误状态等完整交互
- 支持按角色筛选搜索结果
|
2025-12-24 22:50:28 +08:00 |
|
gaoziman
|
2b44aca254
|
feat(Hook): 添加消息搜索状态管理 Hook
- 新增 useSearch Hook 封装搜索逻辑
- 实现 300ms 防抖搜索避免频繁请求
- 支持角色筛选切换即时刷新
- 支持分页加载和结果缓存
- 提供完整的搜索状态管理
|
2025-12-24 22:50:09 +08:00 |
|
gaoziman
|
dcd757e584
|
feat(API): 添加消息全局搜索接口
- 新增 /api/messages/search 搜索 API
- 支持关键词模糊搜索消息内容
- 支持角色筛选(用户消息/AI回复/全部)
- 支持分页查询,返回结果总数
- 仅查询当前用户的未归档对话
|
2025-12-24 22:49:41 +08:00 |
|
gaoziman
|
56b7ffa68d
|
chore(依赖): 添加 qrcode.react 依赖
- 新增 qrcode.react@4.2.0 用于分享二维码生成
|
2025-12-24 16:00:16 +08:00 |
|
gaoziman
|
75eae870e0
|
fix(CodeBlock): 修复 HTML 预览判断逻辑
- 限制 HTML 预览仅支持 html/htm 类型
- 移除对 xml/svg 等 markup 类型的预览支持
|
2025-12-24 15:59:51 +08:00 |
|
gaoziman
|
56cd968219
|
feat(聊天页面): 集成对话分享功能
- 引入 ShareModal 组件
- 添加分享按钮点击事件处理
- 支持分享预览跳转
|
2025-12-24 15:59:27 +08:00 |
|
gaoziman
|
2acce36dbd
|
feat(页面): 添加对话分享展示页面
- 新增 /share/[code] 分享页面
- 支持 Markdown 渲染和代码高亮
- 集成导航组件便于浏览长对话
- 添加分享信息展示和错误处理
|
2025-12-24 15:59:02 +08:00 |
|
gaoziman
|
b0ecf51700
|
feat(组件): 添加对话分享功能组件
- ShareModal: 分享弹窗组件,支持内容控制和二维码
- MessageSelector: 消息选择器,支持按轮次选择分享内容
- ShareNavigator: 分享页面导航组件,支持目录和返回顶部
|
2025-12-24 15:58:37 +08:00 |
|
gaoziman
|
abc6cdbcfd
|
feat(API): 添加对话分享 API 路由
- 新增 /api/conversations/[id]/share 路由
- POST: 创建分享链接
- GET: 获取分享信息
- DELETE: 删除分享
- 新增 /api/share/[code] 路由获取分享内容
- 支持选择性消息分享和内容控制
|
2025-12-24 15:58:12 +08:00 |
|
gaoziman
|
ea438eea72
|
feat(数据库): 添加对话分享表和迁移文件
- 新增 sharedConversations 表用于存储分享信息
- 支持分享短链接码、内容控制选项、浏览统计
- 添加选择性消息分享功能(selectedMessageIds)
- 完善表关系定义和类型导出
|
2025-12-24 15:57:47 +08:00 |
|
gaoziman
|
6047af071c
|
feat(聊天页面): 集成对话导出功能
- 添加 html2canvas 和 jspdf 依赖用于 PDF 导出
- 在聊天页面头部集成 ExportDropdown 组件
- 替换原有的更多选项按钮为导出下拉菜单
|
2025-12-24 09:41:17 +08:00 |
|
gaoziman
|
0acbc74192
|
feat(导出功能): 添加导出下拉菜单组件
- 实现 ExportDropdown 组件
- 支持 Markdown/JSON/HTML/PDF 格式选择
- 添加导出进度和成功/失败状态提示
- 支持点击外部关闭菜单
|
2025-12-24 09:40:52 +08:00 |
|
gaoziman
|
2c292b0a8f
|
feat(导出功能): 添加对话导出 API 路由
- 实现 GET /api/conversations/[id]/export 接口
- 支持 markdown/json/html/pdf 四种导出格式
- 添加用户身份验证和权限检查
- PDF 格式返回数据供客户端生成
|
2025-12-24 09:40:28 +08:00 |
|
gaoziman
|
6c411438e0
|
feat(导出功能): 添加对话导出核心库
- 实现 ExportData 和 ExportOptions 类型定义
- 实现 Markdown 格式导出器
- 实现 JSON 格式导出器
- 实现 HTML 格式导出器(含完整样式)
- 实现 PDF 格式导出器(客户端生成)
- 提供统一的导出入口和工具函数
|
2025-12-24 09:40:03 +08:00 |
|
gaoziman
|
bd09e67988
|
fix(聊天页面): 思考模式开关仅在非Codex模型时显示
- 添加模型类型判断逻辑
- Codex 模型不支持思考模式,隐藏开关按钮
- 优化用户体验,避免无效操作
|
2025-12-24 00:09:05 +08:00 |
|
gaoziman
|
ec4f5f2dba
|
style(UI): 统一组件圆角样式
Modal:
- 圆角从 rounded-xl 调整为 rounded-md
ToolsDropdown:
- 按钮样式简化,移除条件样式
- 下拉菜单和列表项圆角统一为 rounded-md
|
2025-12-24 00:08:43 +08:00 |
|
gaoziman
|
16079af79d
|
feat(ChatInput): 集成快捷短语功能
- 添加快捷短语触发按钮和弹出层
- 实现短语内容插入到输入框功能
- 集成快捷短语管理模态框
- 添加点击外部和ESC键关闭弹出层
- 统一按钮圆角样式为 rounded-md
|
2025-12-24 00:08:17 +08:00 |
|
gaoziman
|
caf19f4c09
|
feat(快捷短语): 添加快捷短语UI组件
QuickPhraseItem:
- 快捷短语列表项组件
- 支持图标显示和内容预览
- 提供悬停时的编辑和删除操作
QuickPhrasesPopover:
- 快捷短语弹出层组件
- 包含触发按钮和数量徽章
- 支持快速插入、编辑和删除短语
QuickPhrasesModal:
- 快捷短语管理模态框
- 左侧列表右侧编辑的双栏布局
- 支持图标选择器和分类设置
|
2025-12-24 00:07:58 +08:00 |
|
gaoziman
|
4499f7befd
|
feat(快捷短语): 添加快捷短语核心功能模块
工具函数模块:
- 实现 localStorage 存储和加载功能
- 提供默认快捷短语模板(写作助手、代码解释、优化建议等)
- 添加数据验证和排序函数
Hook 模块:
- 实现增删改查功能
- 支持拖拽排序
- 自动同步到 localStorage
- 提供重置为默认值功能
|
2025-12-24 00:07:30 +08:00 |
|
gaoziman
|
92deb89e2a
|
feat(类型): 添加快捷短语 QuickPhrase 类型定义
- 定义快捷短语数据结构包含id、title、content、category等字段
- 支持自定义图标和排序
- 包含创建时间和更新时间戳
|
2025-12-24 00:07:06 +08:00 |
|
gaoziman
|
3265b66149
|
feat(工具组件): 扩展工具下拉菜单图标支持
- 新增FileText图标用于文档相关功能
- 新增Languages图标用于翻译相关功能
- 完善iconMap映射表
|
2025-12-23 21:12:07 +08:00 |
|
gaoziman
|
8392677cea
|
refactor(配置): 移除默认CCH服务地址配置
- 注册接口不再设置默认CCH URL,需用户自行配置
- 设置API默认值改为空字符串
- 更新设置页面placeholder为更通用的提示文本
- 增强用户配置的灵活性
|
2025-12-23 21:11:49 +08:00 |
|
gaoziman
|
b3d151c9f9
|
chore(安全): 强制环境变量配置并扩展路由保护
- auth.ts: JWT_SECRET必须通过环境变量配置
- crypto.ts: ENCRYPTION_KEY必须通过环境变量配置
- middleware.ts: 添加/assistants和/notes到受保护路由
- db.ts: 更新默认数据库名称
|
2025-12-23 14:33:37 +08:00 |
|
gaoziman
|
a7972f8768
|
feat(配置): 集成翻译工具到默认配置
- seed.ts: 添加翻译工具到种子数据
- 配置工具ID、名称、图标
- 定义输入参数schema
- 设为默认启用工具
- register/route.ts: 新用户默认启用翻译工具
|
2025-12-23 14:33:17 +08:00 |
|
gaoziman
|
d16f72c035
|
feat(工具): 添加有道智云翻译功能
- 新增 translate.ts: 实现有道翻译API调用
- 支持100+种语言互译
- 自动语言检测
- SHA256签名验证
- 完善的错误码处理
- executor.ts: 添加翻译工具执行器
- 支持源语言/目标语言参数
- 格式化翻译结果输出
- route.ts: 添加翻译工具定义
- Claude/OpenAI/Codex三种格式支持
|
2025-12-23 14:33:00 +08:00 |
|
gaoziman
|
98dacf273c
|
feat(API): 聊天接口支持文档解析和多模态输入
- 支持PDF文档使用Claude原生document类型
- 集成Office文档解析(Word/Excel)
- 支持图片+文档+文本混合输入
- 改进错误处理: 文档解析失败时通知用户
- 解析后的文档内容添加到AI上下文
|
2025-12-22 23:22:54 +08:00 |
|
gaoziman
|
c776fb95b7
|
feat(前端): 聊天钩子支持文档上传和解析
- 集成文档类型检测工具
- 支持PDF/Word/Excel文件上传
- PDF文档转Base64传给后端API
- Office文档(Word/Excel)传给后端解析
- 文本文件直接读取内容
- 添加文档大小验证
|
2025-12-22 23:22:39 +08:00 |
|
gaoziman
|
2344024e84
|
feat(依赖): 添加word-extractor库支持.doc文件解析
- 安装 word-extractor@1.0.4 依赖
- 新增 src/types/word-extractor.d.ts 类型声明
- WordExtractor 类
- Document 类及其方法类型
- 支持 Buffer 和文件路径两种输入方式
|
2025-12-22 23:22:26 +08:00 |
|
gaoziman
|
fa260137ac
|
feat(文档解析): 添加PDF/Word/Excel文档解析工具
- 新增 src/lib/document-parser.ts: 后端文档解析器
- 支持 Word 文档(.doc/.docx)解析
- 支持 Excel 文档(.xlsx)转Markdown表格
- PDF文档直接传递给Claude API原生处理
- 新增 src/utils/document-utils.ts: 前端文档工具
- 文档类型检测函数
- 文件大小验证
- Base64编码转换
|
2025-12-22 23:22:13 +08:00 |
|
gaoziman
|
be03aebb09
|
feat(页面): 聊天页面集成视频展示和链接预览
- MessageBubble.tsx 消息气泡组件:
- 新增 searchVideos 属性接收视频搜索结果
- 新增 onLinkClick 属性支持链接点击回调
- 在消息内容中渲染 SearchVideosGrid 组件
- 将 onLinkClick 传递给 MarkdownRenderer
- chat/[id]/page.tsx 聊天页面:
- 添加 LinkPreviewModal 链接预览弹窗状态管理
- 新增 handleLinkClick 处理链接点击打开预览
- MessageBubble 传递 searchVideos 和 onLinkClick
- 渲染 LinkPreviewModal 组件
|
2025-12-22 22:01:19 +08:00 |
|
gaoziman
|
e0b82b6257
|
feat(聊天): 集成视频搜索功能和优化Stream处理
- useStreamChat.ts Hook更新:
- 新增 SearchVideoData 类型定义
- StreamMessage 支持 tool_search_videos 事件类型
- ChatMessage 添加 searchVideos 属性
- 添加 saveMessageSearchVideos 函数保存视频到数据库
- pendingSearchVideosRef 临时存储等待messageId的视频
- 处理视频搜索事件更新UI状态
- chat/route.ts API更新:
- 创建 createSafeStreamWriter 安全写入器
- 解决客户端断开连接时的"Controller is already closed"错误
- 所有 controller.enqueue 替换为 safeWriter.write
- 添加 tool_search_videos 事件发送逻辑
- mita_search 工具描述更新支持视频搜索
- Claude/OpenAI/Codex格式工具定义添加video scope
|
2025-12-22 22:00:50 +08:00 |
|