kuaifan
|
bc460f0da8
|
fix(ai-assistant): 修复 SSE 流式响应 done 事件错误处理
- 解析 done 事件的 payload 检查是否携带错误信息
- 移除错误提示中对 response.error 的直接展示
|
2026-01-15 16:18:53 +00:00 |
|
kuaifan
|
ad66811f49
|
refactor(ai-assistant): 重构页面上下文配置,支持更多页面类型
- 简化上下文提示词,移除能力范围描述
- 新增多个独立页面上下文支持:单任务、单对话、单文件、工作汇报等
- 传递路由参数给上下文函数,以获取实体 ID
- 移除不必要的 title 属性
|
2026-01-15 16:18:42 +00:00 |
|
kuaifan
|
70ad8c394a
|
feat(ai-assistant): 添加聊天窗口模式和页面上下文感知
- 新增 chat 显示模式,支持可拖拽的悬浮聊天窗口
- 新增 page-context.js,根据当前路由提供针对性系统提示词
- 优化浮动按钮:添加淡入淡出动画、修复右键菜单拖动问题、更新配色
- 重构 Modal 为独立组件,支持 modal/chat 双模式切换
- 恢复会话时自动滚动到底部
|
2026-01-15 15:06:38 +00:00 |
|
kuaifan
|
32ffecb905
|
feat(ai-assistant): 为各场景添加自定义标题并优化浮动按钮显示
- 为项目创建、任务创建、消息编写、汇报编辑、汇报分析场景的 AI 助手添加专属标题
- 在模态框显示时自动隐藏浮动按钮,避免 UI 重叠
|
2026-01-15 10:48:56 +00:00 |
|
kuaifan
|
b794ba7a6b
|
refactor(ui): 优化客户端下载入口位置
- 将仪表盘页面的客户端下载链接移至右上角用户菜单
- 登录页保留右下角客户端下载链接
- 新增 clientDownloadUrl 全局状态,统一管理下载地址
- AI 浮动按钮在登录页不显示
|
2026-01-15 09:09:58 +00:00 |
|
kuaifan
|
07360a8d2c
|
feat(manticore): 添加同步失败自动重试机制
- 新增 ManticoreSyncFailure 模型记录同步失败的条目
- 添加 RetryManticoreSync 命令实现失败重试逻辑
- ManticoreBase 增加 runWithRetry 包装器,连接断开时自动重连
- 统一 deleteVector 方法,减少重复代码
- 修复 quoteValue 传入非字符串的类型问题
|
2026-01-15 08:28:55 +00:00 |
|
kuaifan
|
fb7731ddcd
|
feat(ai-assistant): 添加全局浮动按钮入口
- 新增 float-button.vue 组件,支持拖拽定位和位置持久化
- 将 AIAssistant.vue 重构为目录结构(index.vue + float-button.vue)
- 浮动按钮位置基于四角存储,窗口缩放时保持相对位置
- 点击浮动按钮打开 AI 助手对话框
|
2026-01-15 08:18:34 +00:00 |
|
kuaifan
|
13a25e3011
|
fix(manticore): 修复向量表插入时的 SQL 语法错误
- 新增 executeRaw() 方法直接执行 SQL,避免 prepared statement 解析问题
- 新增 quoteValue() 方法安全转义 SQL 值
- 新增通用 upsertVector() 方法统一处理所有向量表插入
- 简化 upsertMsgVector/TaskVector/FileVector/ProjectVector/UserVector 为单行调用
- 统一 NUMERIC_FIELDS 常量,消除代码重复
- 更新 batchUpdateVectors() 使用统一常量
|
2026-01-15 00:47:33 +00:00 |
|
kuaifan
|
055cf53738
|
build
v1.6.10
|
2026-01-14 22:31:27 +08:00 |
|
kuaifan
|
cb414b48f6
|
refactor: 优化窗口关闭拦截机制,采用声明式注册
- 将 onBeforeUnload 从 utils.js 移至 web-tab-manager.js
- 新增声明式拦截注册机制,前端通过 registerCloseInterceptor 声明需要拦截
- 仅对已声明拦截的页面执行 JS 检查,未声明的直接关闭
- 添加 5 秒超时保护,防止网页卡死导致无法关闭窗口
- 修复 command+w 快捷键关闭整个窗口而非当前 tab 的问题
|
2026-01-14 22:29:36 +08:00 |
|
kuaifan
|
1c27719ac4
|
no message
|
2026-01-14 20:15:48 +08:00 |
|
kuaifan
|
ec33327408
|
fix: 修复文件夹上传时数据库死锁问题
使用 Redis 分布式锁对同一用户往相同父目录的上传请求进行排队,
避免并发上传导致的 MySQL 死锁错误 (SQLSTATE[40001])
|
2026-01-14 11:44:47 +00:00 |
|
kuaifan
|
c2c27a684b
|
feat: 复制/周期任务时复制子任务并重置状态
- 复制任务时同时复制子任务,子任务状态重置为未完成
- 周期任务生成时,子任务状态重置为未完成并映射到 start 工作流
- 新增 getProjectFlowItems 方法获取项目工作流状态
- 新增 formatFlowItemName 方法格式化工作流状态名称
- 新增 copySubTasks 方法复制子任务到新父任务
- 新增 moveSubTasks 方法移动子任务,重构 moveTask 复用代码
|
2026-01-14 11:31:28 +00:00 |
|
kuaifan
|
224703a6d0
|
feat: 支持输入法组合状态,优化输入框键盘事件处理
|
2026-01-14 10:11:28 +00:00 |
|
kuaifan
|
dd20711c04
|
refactor: 移除冗余日志记录,优化代码可读性
|
2026-01-14 09:41:06 +00:00 |
|
kuaifan
|
3a2b7b1400
|
feat: 新增 AI 提示词占位符与用户上下文注入
- 新增 PromptPlaceholder 模块,负责构建用户上下文和条件性提示块
- 用户上下文包含:基础信息、部门、同事印象、场景角色、任务列表
- 前端使用 {{SYSTEM_OPTIONAL_PROMPTS}} 占位符,后端统一替换为实际内容
- 重构 BotReceiveMsgTask 和 ai.js,复用 PromptPlaceholder 逻辑
- 任务列表支持智能排序:逾期优先 → 最近活跃 → 负责人优先
|
2026-01-14 09:33:20 +00:00 |
|
kuaifan
|
792989a504
|
refactor: 统一 webTab 事件分发逻辑
新增 dispatchToTabBar() 函数,封装 window 模式检查逻辑:
- window 模式无标签栏,跳过 executeJavaScript 调用
- 避免 did-stop-loading 监听器累积导致 MaxListenersExceededWarning
- 统一 14 处调用点,提升代码一致性和可维护性
|
2026-01-14 13:41:28 +08:00 |
|
kuaifan
|
c0183e62fb
|
style: 统一 webTab 主题配色风格
- 深色模式:背景 #202124,活跃Tab #323639,文字 #D6D6D7
- 浅色模式:背景 #F1F3F4,活跃Tab #FFFFFF,文字 #5F6368
- 同步更新 WebView 默认背景色和加载页背景色
- 更新 earth 图标选中态颜色适配新主题
- 删除未使用的 link 图标资源
- 语言切换时重建预加载池
|
2026-01-14 11:50:15 +08:00 |
|
kuaifan
|
ce5bb5f187
|
refactor: 统一 webTab 背景色设置逻辑
- 移除 createWebTabView 中冗余的深色/浅色主题背景色判断分支
- 统一使用 utils.getDefaultBackgroundColor() 获取默认背景色
- 移除 did-stop-loading 事件中不必要的背景色重置逻辑
|
2026-01-14 10:14:31 +08:00 |
|
kuaifan
|
a34b0c88d5
|
refactor: 优化 webTab 管理和状态同步
- 封装 safeCloseWebTab 方法,复用标签关闭时的未保存数据检查逻辑
- 添加 recreatePreloadPool,支持主题切换后重建预加载池
- broadcastCommand 扩展到 webTab views,确保子窗口收到同步消息
- 修复 synchTheme 和 saveDialogDraft 的跨窗口参数传递
- IDBDel 返回 Promise 并正确 await
|
2026-01-14 10:11:41 +08:00 |
|
kuaifan
|
9c7ec58bb6
|
no message
|
2026-01-14 09:14:35 +08:00 |
|
kuaifan
|
067a736b57
|
fix: 恢复窗口/标签关闭时的未保存数据检查
恢复 onBeforeUnload 功能,防止关闭窗口或标签时丢失未保存的数据:
- 快捷键关闭:检查当前激活标签的 onBeforeUnload
- 点击窗口关闭按钮:依次检查所有标签,遇到拦截时激活对应标签
- 点击 tab 关闭按钮:检查对应标签的 onBeforeUnload
- 重构 close 事件处理,使用 early return 简化代码结构
|
2026-01-13 14:49:59 +00:00 |
|
kuaifan
|
f8f08c9d0d
|
no message
|
2026-01-13 14:48:05 +00:00 |
|
kuaifan
|
4f2d382fd6
|
fix: 移除 Markdown 消息中的工具使用标签
|
2026-01-13 12:57:54 +00:00 |
|
kuaifan
|
42e4ddbd17
|
fix: 修复权限级联同步缺口
修复 Manticore 搜索索引在特定场景下 allowed_users 权限未能正确同步的问题:
Observer.updated 补充:
- ProjectUserObserver: 处理项目成员移交时的权限级联
- ProjectTaskUserObserver: 处理任务成员移交时的权限更新
批量操作绕过 Observer 修复(delete → remove):
- FileUser: deleteFileAll/deleteFileUser 方法
- ProjectTask: 可见性设置时的批量删除
- ProjectController: 子任务升级和任务复制时的批量删除
文件批量更新封装:
- File 新增 updateChildFilesUserid() 方法,统一处理子文件 userid
更新及 Manticore 同步
|
2026-01-13 11:55:45 +00:00 |
|
kuaifan
|
3026cd698f
|
feat: 添加文本换行样式以改善审批详情的可读性
|
2026-01-13 10:54:13 +00:00 |
|
kuaifan
|
47c53a18fa
|
fix: 修复跨项目移动任务时子任务工作流状态未更新的问题
跨项目移动任务时,子任务的 flow_item_id 和 flow_item_name 没有被正确更新,
导致子任务在新项目中显示的工作流状态与新项目的工作流不匹配。
|
2026-01-13 10:50:42 +00:00 |
|
kuaifan
|
22926e19cd
|
refactor: 统一 dootask:// 链接处理与资源格式指南
- 将 dootask:// 协议链接处理逻辑从 AIAssistant 迁移到 DialogMarkdown 组件
- 新增 beforeNavigate prop 支持导航前回调(如关闭弹窗)
- 后端 BotReceiveMsgTask 添加条件性资源格式指南提示词
- 前端 ai.js 新增 SEARCH_AI_SYSTEM_PROMPT 和 DOOTASK_RESOURCE_FORMAT_GUIDE
- SearchBox 改用统一的 SEARCH_AI_SYSTEM_PROMPT 常量
- 重构 ai.js 代码组织,添加注释说明各常量用途
|
2026-01-13 10:31:31 +00:00 |
|
kuaifan
|
495b25e2b1
|
feat: 增强 MCP 配置助手,支持多种 AI 工具
- 新增 Tabs 组件展示多种 AI 工具的配置方式
- 支持 Claude Code、Cursor、VS Code、Windsurf、Claude Desktop、
Codex、Kiro、Trae、Antigravity、Opencode 等工具
- 丰富使用示例,按任务管理、项目查询、工作汇报、团队协作、
文件查找等分类展示
- 优化国际化支持,使用 t() 函数替代 $L() 实现中英双语
|
2026-01-13 08:56:20 +00:00 |
|
kuaifan
|
01908b7c48
|
no message
|
2026-01-13 03:56:56 +00:00 |
|
kuaifan
|
b138dc580d
|
refactor: 重构 MCP 工具并新增搜索功能
主要变更:
- 新增 search_dialogs 工具,支持按名称搜索群聊或联系人
- 新增 intelligent_search 统一搜索工具,支持任务/项目/文件/联系人/消息
- 重构 send_message 工具,支持 dialog_id 或 userid 两种方式
- 重构 get_message_list 工具,支持 dialog_id 或 userid
- 优化 get_project 并行获取项目详情和列信息
- 统一返回字段命名 (id -> task_id/project_id/file_id/report_id)
- 修正 HTTP 方法 (POST 用于 add/remove 操作)
- 精简工具描述文案
|
2026-01-13 02:23:14 +00:00 |
|
kuaifan
|
78b14f4aad
|
feat: 添加 dialog_only 参数支持仅搜索对话
在 dialog/search 接口中增加 dialog_only 可选参数,
启用后仅搜索会话和联系人,跳过消息内容搜索。
|
2026-01-12 15:03:04 +00:00 |
|
kuaifan
|
60387aa521
|
refactor: 优化注释
|
2026-01-12 09:09:24 +00:00 |
|
kuaifan
|
633826cb89
|
refactor: 迁移到 navigationHistory API
将已废弃的 webContents 导航方法迁移到新的 navigationHistory API:
- canGoBack() → navigationHistory.canGoBack()
- canGoForward() → navigationHistory.canGoForward()
- goBack() → navigationHistory.goBack()
- goForward() → navigationHistory.goForward()
|
2026-01-12 07:27:18 +00:00 |
|
kuaifan
|
cf6d180fc5
|
feat: 添加 webTab 预加载池机制
引入预加载池以优化 webTab 首屏加载性能:
- 应用启动后延迟创建预加载 view,避免影响主窗口
- 新建 tab 时优先复用已预加载的 view
- 取走后自动延迟补充,保持池容量
- 应用退出前清理预加载资源
|
2026-01-12 06:55:57 +00:00 |
|
kuaifan
|
0d85174250
|
feat: 添加 favicon 双层缓存机制
实现仿 Chrome 的 favicon 缓存系统:
- 第一层:域名缓存 - 导航开始时立即查询,快速显示 favicon
- 第二层:URL 缓存 - favicon URL 精确匹配
- 支持内存缓存 + 文件持久化,应用启动时自动清理 30 天过期缓存
|
2026-01-12 05:40:57 +00:00 |
|
kuaifan
|
925449c66a
|
refactor: 抽离 webTab 窗口管理为独立模块
将 electron.js 中 1000+ 行的 webTab 窗口管理逻辑抽离到
electron/lib/web-tab-manager.js,提升代码可维护性
|
2026-01-12 05:15:32 +00:00 |
|
kuaifan
|
cd58b418af
|
refactor: 新增 updateWindow 接口并移除废弃的预加载窗口调用
- 新增 updateWindow IPC handler,支持窗口/标签页内部导航时更新 URL 和名称
- 将前端 updateChildWindow 调用替换为 updateWindow
- 移除 reloadPreloadWindow 调用(预加载窗口已删除)
|
2026-01-12 01:44:34 +00:00 |
|
kuaifan
|
4cfc5e6024
|
refactor: 移除 userAgent 相关代码以简化窗口管理逻辑
|
2026-01-12 09:07:10 +08:00 |
|
kuaifan
|
7321ab06f0
|
refactor: 优化窗口尺寸和位置管理逻辑
|
2026-01-12 09:02:58 +08:00 |
|
kuaifan
|
790f5d4838
|
refactor: 统一 Electron 子窗口与标签页窗口管理
将原有独立子窗口 (childWindow) 和标签页窗口 (webTabWindow) 合并为统一的
窗口管理系统,通过 mode 参数区分窗口类型:
- mode='tab': 标签页模式(有导航栏,默认)
- mode='window': 独立窗口模式(无导航栏)
主要变更:
- 移除 createChildWindow、preCreateChildWindow 等独立窗口相关代码
- 扩展 createWebTabWindow 支持 mode 参数
- 简化前端 openWindow 调用,将 config 对象扁平化为顶层参数
- 更新所有调用点使用新的统一接口
|
2026-01-11 21:13:55 +00:00 |
|
kuaifan
|
731dbc5507
|
feat: 标签页新增更多菜单功能
- 新增更多菜单按钮替代原浏览器打开按钮
- 实现重新加载、复制链接地址、默认浏览器打开功能
- 实现将标签页移至新窗口功能
- 实现打印功能
- 菜单支持根据当前 URL 类型动态启用/禁用选项
- 添加相关国际化文案
|
2026-01-10 16:35:19 +00:00 |
|
kuaifan
|
3b1dce6d67
|
feat: 标签页新增更多菜单按钮
- 将原浏览器打开按钮替换为更多菜单按钮
- 添加 more.svg 图标并调整样式
- 实现 webTabShowMenu 通信接口及菜单框架
|
2026-01-10 15:47:43 +00:00 |
|
kuaifan
|
4929d44ce7
|
refactor: 优化标签页加载状态管理与 URL 加载逻辑
- 新增 loadContentUrl 方法统一处理完整 URL 和相对路径的加载
- 优化标签页加载状态,忽略 SPA 路由切换(isSameDocument),避免频繁闪烁
- 添加定时检查器确保加载状态正确停止
- windowClose/windowDestroy 支持识别 tab 页面发送者,仅关闭对应标签
- 子窗口重启过程中不再意外销毁窗口
- 微应用打开标签页时传递标题信息
- isLocalHost 对空 URL 和相对路径返回 true
|
2026-01-10 15:44:58 +00:00 |
|
kuaifan
|
ce42c2a660
|
refactor(frontend): 统一域名获取与比较逻辑
- 新增 mainDomain() 函数,简化 mainUrl 域名获取
- 新增 removeMainUrlPrefix() 函数,用于移除 URL 的服务器域名前缀
- getDomain() 返回值统一转为小写,确保域名比较不受大小写影响
- 将多处 getDomain(mainUrl()) 调用替换为 mainDomain(),提升代码可读性
|
2026-01-10 05:48:25 +00:00 |
|
kuaifan
|
16d5ffd4f9
|
refactor: 统一客户端窗口打开接口并支持标签页名称复用
- 合并 openChildWindow 和 openWebTabWindow 为统一的 openWindow 接口
- 新增 webTabNameMap 映射,支持按名称查找和复用已存在的标签页
- 标签页增加 name、titleFixed 元数据支持
- 窗口间转移标签时同步更新名称映射
- 重构前端 actions,统一使用 openWindow 方法,通过 mode 参数区分窗口/标签模式
- 更新所有调用点使用新的统一接口
|
2026-01-10 02:08:36 +00:00 |
|
kuaifan
|
fc74e0d952
|
feat: 标签页拖拽合并时支持插入到鼠标所在位置
- getAllWebTabWindowsInfo 增加返回 tabCount 用于计算标签位置
- attachToWindow 根据鼠标 screenX 和目标窗口标签信息计算插入位置
- 拖拽标签合并到其他窗口时插入到鼠标位置而非总在末尾
|
2026-01-09 15:17:21 +00:00 |
|
kuaifan
|
089f219280
|
feat: 标签页拖拽创建新窗口时窗口定位优化及 favicon 验证
- 优化拖拽标签创建新窗口时的位置计算,使用 setPosition 确保窗口出现在鼠标位置
- 重构 createWebTabWindowInstance 函数,仅在明确指定 x/y 时设置窗口坐标
- 新增 fetchFaviconAsBase64 工具函数,在主进程验证 favicon 并转为 base64
- favicon 验证后再保存和传递给前端,确保拖拽后 icon 状态与原窗口一致
- 简化前端 favicon 处理逻辑,移除重复的图片验证代码
|
2026-01-09 13:58:22 +00:00 |
|
kuaifan
|
9d62ec1ec1
|
feat: 添加标签页拖拽排序功能
- 引入 Sortable.js 库以支持标签页的拖拽排序
- 实现标签页的动态插入和顺序重排
- 更新样式以适应拖拽效果
- 增加 IPC 通信以同步标签页顺序变化
- 优化标签页创建和关闭逻辑,提升用户体验
|
2026-01-09 15:46:02 +08:00 |
|
kuaifan
|
5a4e51d1e0
|
no message
|
2026-01-08 14:18:45 +00:00 |
|