kuaifan
|
cb6c50b071
|
fix(ai-assistant): 修复弹窗和下拉菜单被其他弹窗遮挡的问题
- 使用 window.modalTransferIndex + 1000 作为动态 z-index
- 添加定时刷新机制:弹窗可见时 5 秒刷新,不可见时 20 秒刷新
- modal.vue 通过 zIndex prop 接收并应用 z-index
- float-button.vue 通过 $parent.topZIndex 获取 z-index
- Dropdown 和 Select 使用 ViewUI 新增的 z-index prop
|
2026-01-19 01:13:18 +00:00 |
|
kuaifan
|
2cb67fafe7
|
feat(ai-assistant): 支持任务弹窗和对话弹窗的场景检测
- 在 page-context.js 的 getPageContext 和 getSceneKey 函数中优先检测弹窗状态
- 当 taskId > 0 时使用 single-task 上下文
- 当 dialogModalShow && dialogId > 0 时使用 single-dialog 上下文
- 在 welcome-prompts.js 中添加弹窗场景检测逻辑
- 提取 formatPrompts 辅助函数减少代码重复
- 在 index.vue 的 welcomePromptsKey 中监听 taskId 和 dialogModalShow 变化
|
2026-01-18 23:52:26 +00:00 |
|
kuaifan
|
8eaba6f364
|
fix(ai-assistant): 优化流式响应期间的 loading 状态显示
- 修改 loading 显示条件,streaming 状态时继续显示 loading icon
- SSEClient 添加可选的 onFailed 回调,处理连接失败情况
- 修复 done 事件处理,确保状态正确转为 completed
- 解决工具调用期间 loading 动画过早消失的问题
|
2026-01-18 14:44:03 +00:00 |
|
kuaifan
|
59ad79fa58
|
feat(ai-assistant): 支持上下键切换历史输入
- 按 ↑ 键切换到上一条历史输入(光标在第一行时生效)
- 按 ↓ 键切换到下一条历史输入(光标在最后一行时生效)
- 历史记录使用 IndexedDB 持久化存储,最多保存 50 条
- 重复输入会移动到末尾而非重复添加
- 弹窗关闭时自动重置导航状态
|
2026-01-18 13:20:13 +00:00 |
|
kuaifan
|
c65f0276bd
|
feat(ai-assistant): 支持编辑历史问题并重新发送
- 鼠标悬停历史问题时显示编辑图标
- 点击编辑后在原位置显示内联编辑器
- 支持 Enter 发送、Shift+Enter 换行、Esc 取消
- 发送后删除该问题及之后的对话历史,重新发送编辑后的问题
- 正确处理中文输入法组合状态,避免误触发提交
|
2026-01-18 12:56:16 +00:00 |
|
kuaifan
|
0ac4b546ba
|
feat(ai-assistant): 实现 AI 前端操作能力
新增三个 MCP 工具的前端支持:
- get_page_context: 基于 ARIA 角色收集页面元素,支持分页和区域筛选
- execute_action: 执行导航操作(打开任务/对话、切换项目/页面)
- execute_element_action: 元素级操作(click/type/select/focus/scroll/hover)
新增文件:
- operation-client.js: WebSocket 客户端,处理与 MCP Server 的通信
- page-context-collector.js: 页面上下文收集器,ref 系统和 cursor:pointer 扫描
- action-executor.js: 操作执行器,支持智能解析如 open_task_123
- operation-module.js: 模块编排,整合上述模块
修改文件:
- float-button.vue: 集成 operation-module,AI 助手打开时启用
- index.vue: 发射关闭事件供 float-button 监听
|
2026-01-18 01:35:13 +00:00 |
|
kuaifan
|
347465fc4d
|
feat(ai-assistant): 按场景隔离会话存储
- 将 sessionStore 从对象改为数组,每个场景独立存储
- sessionCacheKey 改为 sessionCacheKeyPrefix,拼接场景 key 动态生成
- initSession 改为异步方法,切换场景时按需加载对应数据
- 使用防抖更新 displayWelcomePrompts,避免场景切换时闪屏
- 修复输入框文字颜色样式
|
2026-01-17 02:24:31 +00:00 |
|
kuaifan
|
b7213f8c47
|
feat(ai-assistant): 添加全屏切换功能
- 添加全屏按钮,支持点击或双击标题栏切换全屏
- 全屏时禁用拖动和调整大小
- 全屏状态下占满视口(保留 12px 边距)
- 关闭窗口时自动退出全屏状态
|
2026-01-16 10:26:57 +00:00 |
|
kuaifan
|
a3caf5ebdf
|
feat(ai-assistant): 支持拖动边缘调整聊天窗口大小
- 添加 8 个方向的调整大小控制点(四边 + 四角)
- 支持从任意边缘或角落拖动调整窗口尺寸
- 尺寸自动保存到 IndexedDB,下次打开时恢复
- 窗口大小限制:最小 380×400,最大 800×900
- 视口尺寸变化时自动调整窗口大小和位置
|
2026-01-16 10:24:41 +00:00 |
|
kuaifan
|
87dd07ef23
|
feat(ai-assistant): 基于场景标识管理会话恢复
- 新增 getSceneKey 函数,根据路由和实体生成唯一场景标识
- 会话初始化改为按 sceneKey 匹配历史记录,相同场景恢复会话
- 统一全局 AI 助手打开方式,manage.vue 通过事件触发 float-button
- resumeSession 超时时间统一为 86400 秒(1天)
|
2026-01-16 08:49:25 +00:00 |
|
kuaifan
|
4ebbb387ee
|
no message
|
2026-01-16 03:08:25 +08:00 |
|
kuaifan
|
9234fe3ed1
|
feat(ai-assistant): 添加欢迎界面快捷提示功能和交互优化
主要变更:
- 新增场景化快捷提示,根据页面类型显示相关操作建议
- 重新设计欢迎界面 UI,支持图标和可点击的提示卡片
- 修复浮动按钮点击判断逻辑(移动距离<5px 且 按下时间<200ms)
- 优化加载状态显示,移除冗余文案
- 支持 base64 编码格式的文件链接
|
2026-01-16 02:31:13 +08:00 |
|
kuaifan
|
f4f9ee1d3d
|
fix(ai-assistant): 修复深色模式反转样式和交互优化
- 将 no-dark-content 类从容器移动到 SVG 元素,修复深色模式样式问题
- 添加深色模式反转时的悬浮按钮和聊天窗口样式适配
- 支持 Escape 键关闭聊天模式窗口
- 移除多余空白行
|
2026-01-16 01:07:54 +08:00 |
|
kuaifan
|
bc460f0da8
|
fix(ai-assistant): 修复 SSE 流式响应 done 事件错误处理
- 解析 done 事件的 payload 检查是否携带错误信息
- 移除错误提示中对 response.error 的直接展示
|
2026-01-15 16:18:53 +00:00 |
|
kuaifan
|
70ad8c394a
|
feat(ai-assistant): 添加聊天窗口模式和页面上下文感知
- 新增 chat 显示模式,支持可拖拽的悬浮聊天窗口
- 新增 page-context.js,根据当前路由提供针对性系统提示词
- 优化浮动按钮:添加淡入淡出动画、修复右键菜单拖动问题、更新配色
- 重构 Modal 为独立组件,支持 modal/chat 双模式切换
- 恢复会话时自动滚动到底部
|
2026-01-15 15:06:38 +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 |
|