kurihada
|
00680b8ed3
|
feat(ui): 将权限请求改为内联显示在聊天流中
- 添加 PermissionMessagePart 类型
- 创建 PermissionRequestInline 内联组件
- 修改 useChat 将权限请求作为 Part 处理
- 移除模态对话框,不再阻断 IDE 操作
|
2025-12-17 22:03:00 +08:00 |
|
kurihada
|
fea5442d53
|
feat(ui): 添加文件 Diff 查看功能
当 AI 执行 write_file 或 edit_file 工具时,在工具结果中显示 View Diff 按钮,
点击后在 IDE 面板中显示文件修改前后的对比视图。
主要改动:
- core: edit_file/write_file 工具返回 fileDiff 元数据
- ui: 新增 DiffEditor 组件用于显示文件差异
- ui: ChatMessage 添加 View Diff 按钮
- ui: IDE 组件支持 Diff 视图切换
- ui: useChat hook 处理 fileDiff 回调
|
2025-12-17 21:11:44 +08:00 |
|
kurihada
|
3320a2a5ba
|
feat(ui): 添加编辑器与对话框联动功能
- 新增 ActiveFileInfo 类型定义
- IDE 组件支持 onActiveFileChange 回调通知活动文件变化
- ChatInput 显示当前活动文件并支持自动附加到消息
- 用户可切换自动附加开关,设置持久化到 localStorage
- 排除 / 和 : 命令避免与斜杠命令和系统命令冲突
|
2025-12-17 19:59:13 +08:00 |
|
kurihada
|
48a11ff077
|
feat: 添加 :new 系统命令创建新会话
- Core: 新增 :new/:n 命令返回 new_session action
- Server: 处理 new_session action 创建新会话
- UI: useChat 添加 onSessionSwitch 回调
- Web/Desktop: ChatPage 和 App 实现会话切换逻辑
|
2025-12-17 19:36:47 +08:00 |
|
kurihada
|
4fc6b61134
|
feat(ui): 添加编辑器和文件浏览器状态持久化
- FileExplorer: 保存展开的目录路径到 localStorage
- IDE: 保存打开的标签页和活动标签,刷新后自动恢复
- App: 调整 IDE 面板默认宽度为 70%
|
2025-12-17 18:18:06 +08:00 |
|
kurihada
|
c892069ea1
|
feat(ui): 优化 Chat 页面 Header 布局
- 移除左上角 "Chat" 标题
- Token 使用情况移至左侧
- 压缩按钮添加文字标签,更直观
- 工具栏按钮保持在右侧
|
2025-12-17 17:59:40 +08:00 |
|
kurihada
|
ddbd56a0ac
|
feat(ui): 添加工具栏溢出菜单优化响应式布局
- 新增 DropdownMenu 基础组件(基于 Radix UI)
- 新增 ToolbarOverflowMenu 组件(齿轮图标设置菜单)
- 将 Header 次要按钮收入溢出菜单
- 保留 Diagnostics 和 Sessions 按钮始终可见
- 溢出菜单放置在最右侧
|
2025-12-17 17:52:20 +08:00 |
|
kurihada
|
babe65719b
|
feat(ui): 优化 Header 和状态栏布局
- ContextUsage: 紧凑模式下始终显示压缩按钮
- StatusBar: 连接状态移至中间位置,显示绿点动画和文字
- StatusBar: 添加内部连接状态检测(通过 health API)
- Chat: 移除 Header 中的连接状态指示器
|
2025-12-17 17:40:27 +08:00 |
|
kurihada
|
fc75fcfc90
|
feat(ui): 添加可拖拽的面板分割线
- 新增 Resizer 组件,支持拖拽调整面板宽度
- IDE 和聊天区域宽度可通过拖拽分割线调整
- 宽度范围限制在 30%-80%,防止面板过小或过大
- 调整后的宽度保存到 localStorage,下次打开时保持
|
2025-12-17 17:08:08 +08:00 |
|
kurihada
|
a3ddc39771
|
feat(ui): 添加底部状态栏和优化代码编辑器空状态
- 新增 StatusBar 组件,显示 Git 分支、诊断信息和连接状态
- 添加 Git API 端点 (GET /api/files/git) 获取分支和 dirty 状态
- 优化 CodeEditor 空状态,添加图标和引导提示
- 修复 Chat 页面高度问题 (h-screen -> h-full)
|
2025-12-17 17:04:38 +08:00 |
|
kurihada
|
250d2cb4b5
|
feat(ui): 添加 IDE 组件(文件浏览器 + 代码编辑器)
- 新增 CodeEditor 组件,基于 CodeMirror 实现多标签代码编辑
- 新增 FileExplorer 组件,支持文件树展开/折叠和文件选择
- 新增 IDE 组件,整合文件浏览器和代码编辑器
- 新增 SessionPanel 组件,用于会话管理
- 添加文件写入 API(PUT /api/files/write)
- 优化布局:IDE 始终显示,移除文件切换按钮
- 工作目录路径显示在文件浏览器标题栏,支持悬浮显示完整路径
|
2025-12-17 16:55:22 +08:00 |
|
kurihada
|
1019ba7c9c
|
feat(ui): 实现 LSP UI 集成
- 添加 LSP 相关类型定义 (LSPServer, FileDiagnostic, DiagnosticsResponse)
- 添加 LSP API 函数 (listLSPServers, installLSPServer, startLSPServer 等)
- 创建 LSPPanel 组件: 语言服务器管理面板
- 创建 DiagnosticsPanel 组件: 诊断详情面板 (含搜索过滤)
- 创建 DiagnosticsIndicator 组件: 状态栏指示器
- 集成到 Web 模块 (App.tsx, Chat.tsx)
|
2025-12-17 11:17:00 +08:00 |
|
kurihada
|
3b170738ee
|
feat(ui): 实现 ask_user_question 工具的前端支持
- 添加 AskUserQuestion 组件,支持单选/多选和自定义输入
- 添加 Question 相关类型定义 (QuestionOption, Question, QuestionMessagePart)
- 在 useChat 中处理 ask_user_question 工具完成事件,转换为问题 UI
- 添加 answerQuestion 回调用于提交用户回答
- 更新 ChatMessage 组件支持渲染问题类型的消息部分
|
2025-12-16 23:14:25 +08:00 |
|
kurihada
|
08d481483c
|
feat(ui): 添加子 Agent 进度显示功能
当 build agent 调用 guide/explore 等子 agent 时,
用户可以在 web 页面实时看到子 agent 的执行进度
实现方案:
- Core: 使用 EventEmitter 模式发射子 agent 事件
- Server: 订阅事件并转发到 WebSocket
- UI: 处理事件并渲染 SubagentProgress 组件
新增文件:
- packages/core/src/agent/events.ts
- packages/ui/src/components/SubagentProgress.tsx
修改文件:
- core: executor.ts, manager.ts, types.ts, task.ts
- server: adapter.ts, types.ts
- ui: useChat.ts, types.ts
- web: Chat.tsx
|
2025-12-16 19:38:36 +08:00 |
|
kurihada
|
e698ec2a64
|
feat(ui): display agent name in message header
|
2025-12-16 10:43:02 +08:00 |
|
kurihada
|
92619df026
|
feat(web): 移除 Settings 按钮,在 Header 直接显示工作目录
- 移除 ConfigPanel 及其入口按钮
- 在 Chat 页面 Header 左侧显示当前工作目录
- 初始化时并行获取会话列表和工作目录
|
2025-12-15 23:17:27 +08:00 |
|
kurihada
|
ec3c7bccf9
|
feat(ui): 实现 Agent 模式切换和 Auto Edit 功能
- 添加 AgentModeSelector 组件,支持 Build/Plan 模式切换
- Build 模式下显示 Auto Edit 开关,自动授权文件写入/编辑
- 扩展 useChat hook 添加会话级别的 agentMode/autoApprove 状态
- 服务端支持解析和应用 Agent 模式配置
- 权限处理器实现 auto-approve 检查(仅 write/edit,不含 delete)
|
2025-12-15 19:42:51 +08:00 |
|
kurihada
|
3fd8fd98b8
|
feat(ui): 优化流式输出工具调用渲染
- 添加 tool_start/tool_end WebSocket 事件支持
- 流式消息复用 ChatMessage 组件渲染工具调用卡片
- 修复 AI SDK v5 格式兼容问题(input/output 字段)
- 修复会话恢复时 tool-result 格式错误
- 放宽 ToolState schema 中 input 字段类型为 unknown
|
2025-12-15 17:35:39 +08:00 |
|
kurihada
|
5b7b0ff1e4
|
feat(ui): 实现深色/浅色主题切换功能
- 添加 CSS 变量定义浅色和深色主题色板
- 扩展 Tailwind 配置支持语义化颜色 (surface-*, fg-*, line-*, code)
- 创建 useTheme hook 管理主题状态和持久化
- 创建 ThemeToggle 组件支持三种模式 (light/dark/system)
- 迁移所有组件从硬编码 gray-* 到语义化颜色
- 支持系统主题偏好检测 (prefers-color-scheme)
- 添加主题初始化脚本防止闪烁 (FOUC)
|
2025-12-15 15:47:32 +08:00 |
|
kurihada
|
bbce1de60c
|
fix(ui): 优化 WebSocket 连接和 PWA meta 标签
- WebSocket onopen 检查 isClosingRef,组件卸载后自动关闭连接
- 更新 PWA meta 标签为 mobile-web-app-capable
|
2025-12-15 10:29:49 +08:00 |
|
kurihada
|
842cf1a3e8
|
fix(ui): 优化会话初始化逻辑
- 首次启动时自动创建会话
- 用户删除所有会话后不再自动创建,显示空状态
- 使用 localStorage 记录是否曾有会话
|
2025-12-15 10:05:17 +08:00 |
|
kurihada
|
07a039001d
|
feat(ui): 添加配置错误 toast 提示
当 Provider API Key 未配置时,显示 toast 提示并提供
"去配置"按钮,点击可直接打开 Providers 配置面板
|
2025-12-14 22:35:02 +08:00 |
|
kurihada
|
70a9a154a4
|
feat(context): 添加上下文压缩 API 和 UI 组件
Server API:
- 扩展 Agent Adapter 接口添加压缩相关方法
- 新增 context.ts 路由 (GET /sessions/:id/context, POST /sessions/:id/compress)
- 扩展 config.ts 添加摘要模型配置接口 (GET/PUT /config/summary)
UI 组件:
- 新增 ContextUsage 组件显示上下文使用情况
- 扩展 ConfigPanel 添加摘要模型配置区域
- 添加 API 客户端方法和类型定义
Web 集成:
- 在 Chat 页面头部集成 ContextUsage 紧凑模式显示
|
2025-12-14 20:33:51 +08:00 |
|
kurihada
|
26e8646518
|
feat(ui): 集成 Provider 管理到 web 和 desktop 应用
- 新增 ProviderEditor 组件用于编辑提供商配置
- ProvidersPanel 添加编辑按钮集成 ProviderEditor
- ChatPage 添加 onOpenProviders 工具栏按钮
- web/desktop App.tsx 集成 ProvidersPanel 面板
|
2025-12-13 02:01:09 +08:00 |
|
kurihada
|
1d69fd876d
|
feat(permission): 实现 WebSocket 权限确认机制
重构权限系统,将终端 UI 代码从 core 模块移除,实现基于 WebSocket 的权限确认流程:
Core 模块清理:
- 删除 permission/prompt.ts 和 file-prompt.ts(终端交互)
- 删除 diff.ts 中的 chalk 渲染函数
- 删除 config.ts 中的 inquirer 交互
- 移除 chalk 依赖
Server 权限处理:
- 新增 permission/handler.ts,实现 WebSocket 权限请求/响应
- 更新 agent/adapter.ts 设置权限回调
- 更新 ws.ts 处理 permission_response 消息
Web 权限组件:
- 新增 PermissionDialog 组件,显示权限请求详情和 Diff
- 更新 useChat hook 管理权限状态
- 更新 Chat 页面集成权限弹窗
|
2025-12-13 01:09:35 +08:00 |
|
kurihada
|
cb554c65b4
|
feat(checkpoint): 添加 Checkpoint 可视化管理功能
Core 层增强:
- 添加 safety.ts: 7点安全检查机制
- 添加 session-tracker.ts: 会话级检查点跟踪
- 添加 lock.ts: 并发控制文件锁
- 添加 lfs.ts: Git LFS 大文件支持
- 添加 path-validator.ts: 路径验证
- 添加 commit-message.ts: 智能提交消息生成
- 增强 manager.ts: 支持三种恢复模式、unrevert 撤销回滚
Server 层:
- 添加 checkpoints.ts: 16个 REST API 端点
- GET/POST /checkpoints: 列表/创建检查点
- GET/DELETE /checkpoints/🆔 获取/删除检查点
- GET /checkpoints/:id/diff: 获取差异
- POST /checkpoints/:id/restore: 恢复到检查点
- POST /checkpoints/unrevert: 撤销回滚
- GET /checkpoints/:id/safety-check: 安全检查
UI 层:
- 添加 CheckpointPanel.tsx: 检查点列表面板
- 添加 CheckpointDiffViewer.tsx: 差异查看器
- 添加 RestoreDialog.tsx: 恢复确认对话框
- 添加 16 个 API 客户端函数
- 添加完整的 TypeScript 类型定义
Web/Desktop 集成:
- 添加 History 按钮到工具栏
- 集成 CheckpointPanel 组件
|
2025-12-12 22:52:27 +08:00 |
|
kurihada
|
a225e66ad7
|
feat(agents): 添加 Agent 预设管理功能
- 创建 Server Agents API 路由 (CRUD + presets + defaults)
- 添加 UI Agent 类型定义和 API 客户端函数
- 实现 AgentsPanel 组件 (预设/自定义 Agent 列表)
- 实现 AgentEditor 组件 (创建/编辑 Agent)
- 实现 AgentDefaultsEditor 组件 (全局默认配置)
- 集成 AgentsPanel 到 Web 和 Desktop 应用
|
2025-12-12 21:23:01 +08:00 |
|
kurihada
|
9365e07df1
|
feat(hooks): 添加 Hooks 配置管理功能
- 新增 Server Hooks API 路由 (CRUD + 测试执行)
- 新增 HooksPanel 组件用于管理所有钩子类型
- 新增 HookEditor 组件用于编辑单个钩子规则
- 支持 file_edited/file_created/file_deleted/session_completed 四种钩子
- 集成到 web 和 desktop 应用
|
2025-12-12 21:02:06 +08:00 |
|
kurihada
|
bad7bfcc36
|
feat(mcp): 添加 MCP 服务器管理功能
- 新增 Server MCP API 路由 (/api/mcp/*)
- GET /servers - 获取所有服务器状态
- POST /servers/:name/connect|disconnect|enable|disable
- GET /tools - 获取所有 MCP 工具
- GET /config - 获取 MCP 配置
- 新增 UI MCPPanel 组件
- 显示服务器列表和状态指示灯
- 支持连接/断开/启用/禁用操作
- 展开查看服务器配置和工具列表
- 响应式设计支持移动端
- 集成到 Web 和 Desktop
- 添加 Plug 图标按钮到工具栏
- 点击打开 MCP 管理面板
|
2025-12-12 20:41:49 +08:00 |
|
kurihada
|
5a482f78ff
|
feat(ui): 集成命令管理面板到 web 和 desktop
- 新增 CommandPanel 组件用于命令列表/搜索/CRUD
- 新增 CommandEditor 组件用于命令编辑/创建
- web/desktop 工具栏添加 Terminal 图标按钮
- 点击按钮打开命令管理面板
|
2025-12-12 20:15:24 +08:00 |
|
kurihada
|
65a23f1e71
|
feat: 添加会话标题自动生成功能
- 后端:首次 AI 回复后自动从用户消息提取标题
- 后端:通过 WebSocket 推送 session_updated 事件
- 前端:useChat hook 处理标题更新事件
- 前端:Sidebar 组件实时更新会话标题显示
|
2025-12-12 17:45:17 +08:00 |
|
kurihada
|
cbbe9c7af1
|
feat(ui): 集成 shadcn/ui 原语、Framer Motion 动画和 Sonner Toast
- 添加 shadcn/ui 风格原语组件 (Button, Input, Dialog, Select, Slider, Switch, Tooltip)
- 集成 Framer Motion 动画库,添加动画预设
- 集成 Sonner Toast 通知系统
- 改造 ChatMessage 添加淡入动画和复制按钮
- 改造 Sidebar 添加动画、空状态引导和骨架屏
- 改造 ConfigPanel 使用新原语组件
- 优化 Chat 页面空状态和连接状态指示器
- 添加 tailwindcss-animate 插件
|
2025-12-12 17:20:41 +08:00 |
|
kurihada
|
67c6918b28
|
refactor(ui): 将工具栏按钮移入 Chat Header
- 移除 App.tsx 中 absolute 定位的悬浮按钮
- 将设置和文件浏览器按钮移入 Chat Header
- 通过 props 传递按钮状态和回调函数
- 修复 tsconfig.json 的 include 配置错误
|
2025-12-12 16:34:06 +08:00 |
|
kurihada
|
68ab6a2016
|
feat(ui): 创建共享 UI 组件包
将 web 和 desktop 的重复代码抽取到 @ai-assistant/ui 包:
- 添加可配置的 API 客户端 (configureApiClient)
- 迁移共享组件: ChatMessage, ChatInput, Sidebar, FileBrowser, ConfigPanel
- 迁移共享 hook: useChat
- 添加 responsive prop 支持响应式布局
- 更新 web/desktop 依赖并删除重复代码
|
2025-12-12 15:52:53 +08:00 |
|
kurihada
|
563224fa73
|
docs: 添加中文文档
|
2025-12-12 15:31:38 +08:00 |
|
kurihada
|
fc5a644726
|
fix(web): 修复 WebSocket 切换 session 时的错误
- 添加 isClosingRef 标记主动关闭,避免触发错误回调
- 在 effect 开始时重置 isClosingRef 支持 StrictMode
- 增强 Vite 代理错误处理,静默 EPIPE/ECONNRESET 错误
|
2025-12-12 15:29:46 +08:00 |
|
kurihada
|
b17649930b
|
docs: 更新项目文档
|
2025-12-12 14:28:34 +08:00 |
|
kurihada
|
2fe1c55997
|
fix(web): 修复 useChat 无限请求问题
- 用 useRef 存储回调函数,避免依赖变化导致无限循环
- 添加 onSessionNotFound 回调,会话不存在时自动创建新会话
- 限制 WebSocket 重连次数为 5 次
- 添加 web:dev 快捷脚本
|
2025-12-12 14:27:54 +08:00 |
|
kurihada
|
20765efe62
|
feat(web): 添加响应式布局和 PWA 支持
- 实现移动端响应式适配:抽屉式侧边栏、触摸优化、Safe Area 支持
- 添加 PWA 支持:vite-plugin-pwa、manifest、Service Worker 缓存
- 优化移动端输入体验:防缩放、最小触摸目标、键盘适配
|
2025-12-12 13:56:52 +08:00 |
|
kurihada
|
b5d3b7df57
|
feat: 添加配置面板组件
- 新增 ConfigPanel 组件,支持模型选择、参数调整
- 添加配置 API (getConfig/updateConfig)
- 在 App.tsx 中集成配置按钮和面板
|
2025-12-12 12:14:39 +08:00 |
|
kurihada
|
6438ecf2a6
|
feat: 实现文件浏览器功能
- 添加 /api/files 路由支持目录浏览和文件读取
- 支持 list、read、stat、tree 四个端点
- 安全路径检查防止目录遍历攻击
- 创建 FileBrowser React 组件
- 支持目录导航、文件预览、隐藏文件切换
- 在 Web UI 中添加可切换的文件浏览面板
|
2025-12-12 11:55:11 +08:00 |
|
kurihada
|
da1773b950
|
feat: 实现 TUI 组件系统
- 添加 blessed 终端 UI 库
- 创建 ChatView 组件:支持消息列表和流式输出
- 创建 SessionList 组件:会话管理和快捷键
- 创建 StatusBar 组件:连接状态显示
- 创建 TUIApp 主应用整合所有组件
- 更新 attach 命令支持 --tui/--no-tui 选项
- 添加 CLAUDE.md 项目规范文件
- 修复 Web 前端 CSS prose 类缺失问题
|
2025-12-12 11:47:24 +08:00 |
|
kurihada
|
168996a475
|
feat: 完善 Server 层并添加 CLI 和 Web 前端
Server 层增强:
- 添加 Agent 适配层,支持动态加载 core 模块
- 实现 Token 认证机制,支持本地/远程模式
- WebSocket 集成 Agent 实时对话
CLI 模块 (packages/cli):
- serve 命令启动 HTTP Server
- attach 命令连接远程 Server
- API Client 封装
Web 前端 (packages/web):
- React 18 + Vite + Tailwind CSS
- 会话管理侧边栏
- WebSocket 实时聊天界面
- 流式消息显示
|
2025-12-12 11:22:25 +08:00 |
|