21 Commits

Author SHA1 Message Date
xiangning
54dc3fc26e refactor(rag): 重构AI对话和工作流集成实现
- 移除IWorkflowTriggerService接口及其实现,改用Mediator模式直接发送命令
- 更新AiBotHandler移除workflowTrigger依赖,使用新命令模式触发工作流
- 修改ApproveTaskEndpoint和RejectTaskEndpoint返回bool类型并使用Send.OkAsync
- 更新appsettings.json中AI助手的默认指令配置
- 在BuildFlowHostModule.cs中移除旧的工作流触发服务注册
- 添加SSE流式响应路径前缀配置以支持RAG聊天流
- 重构ChatAgentService使用HTTP客户端工厂和运行时配置解析
- 实现AiChatOutputSanitizer用于清洗AI输出中的模板内容
- 更新EmbeddingService使用运行时配置解析器动态创建客户端
- 调整RAG查询处理器中的系统提示指令内容
- 添加构建流按钮操作的单元测试验证发布和禁用功能
- 扩展即时消息集成测试覆盖文件消息元数据处理场景
- 更新平台权限种子数据添加按钮发布和禁用权限
- 实现AI模型运行时配置解析器支持动态模型切换
2026-07-04 21:29:37 +08:00
xiangning
d6dc6be51d feat(rag): 扩展分块模式支持更多文档处理策略
- 将分块模式取值范围从 0-2 扩展到 0-5,新增 Separator、ByPage 和 Token 模式
- 更新知识库创建和更新请求验证器以支持新的分块模式范围
- 修改文档上传端点的分块策略覆盖逻辑以兼容新模式
- 更新相关错误消息提示以反映完整的分块模式选项
- 在菜单端点中添加渲染类型和运行时视图模式字段支持
- 修改菜单更新请求参数 ID 类型从 Guid 调整为 long 类型
2026-07-04 19:49:37 +08:00
xiangning
2181f7dd49 feat(platform): 完善平台功能与权限管理
- 在菜单系统中新增 RenderType、FormDefinitionId 和 RuntimeViewMode 字段
- 实现自定义表单菜单类型的组件映射和验证逻辑
- 为分片上传相关端点添加 file:upload 权限控制
- 为桶和文件夹操作添加 bucket:write 和 file:write 权限控制
- 为文件共享功能添加 file-share:write 权限控制
- 为文件读取操作添加 file:read 权限控制
- 扩展 AI 模型提供商枚举,支持更多模型供应商
- 在 AI 模型创建和更新时添加枚举值验证
- 重构工作流按钮权限检查逻辑,使用统一的权限码查询方式
- 为 JSON 格式文档添加提取器支持
- 增强表单数据派生服务,支持自定义表单关联解析
- 为表单数据添加按表单定义 ID 的索引优化
- 添加聊天消息搜索和上下文获取的集成测试
- 修正删除菜单端点的 ID 类型从 Guid 改为 long
2026-07-04 19:38:43 +08:00
xiangning
1aeaf7b1a6 feat(platform): 实现菜单管理功能并完善权限控制
- 将菜单实体的 ID 类型从 Guid 改为 long,并配置为自增主键
- 添加菜单创建、删除、树形结构构建等完整的 CRUD 操作支持
- 为文件上传相关端点添加 file:upload 权限验证
- 为文件操作端点添加 file:read 和 file:write 权限控制
- 为通知功能添加 notification:read 权限限制
- 实现 BuildFlow 按钮执行的权限检查机制
- 在 IM 模块中集成 Redis 未读计数器优化性能
- 更新用户主页路径从 /workspace 到 /dashboard/workspace
- 添加 SignalR Hub 授权和 WebSocket 连接安全保护
- 新增平台测试项目并完善按钮权限测试用例
2026-07-04 17:21:07 +08:00
xiangning
a4a575cc4f feat(workflow): 添加更新流程实例变量功能
- 新增 UpdateWorkflowInstanceVariablesCommand 命令处理变量更新逻辑
- 实现 UpdateWorkflowInstanceVariablesCommandHandler 验证并保存变量到数据库
- 添加 UpdateWorkflowInstanceVariablesEndpoint 提供 REST API 接口
- 创建 UpdateWorkflowInstanceVariablesRequest 定义请求数据结构
- 实现 JSON 格式验证确保变量数据有效性
- 支持人工干预修正流程运行时数据的场景需求
2026-07-03 17:27:11 +08:00
xiangning
7e8623730b style(namespace): 统一命名空间大小写格式
- 将 file 目录下的命名空间从 BuildFlow.Host.Endpoints.file 统一为 BuildFlow.Host.Endpoints.File
- 将 im 目录下的命名空间从 BuildFlow.Host.Endpoints.im 统一为 BuildFlow.Host.Endpoints.IM
- 将 rag 目录下的命名空间从 BuildFlow.Host.Endpoints.rag 统一为 BuildFlow.Host.Endpoints.Rag
- 将 workflow 目录下的命名空间从 BuildFlow.Host.Endpoints.workflow 统一为 BuildFlow.Host.Endpoints.Workflow
- 将 platform 目录下的命名空间从 BuildFlow.Host.Endpoints.rag 统一为 BuildFlow.Host.Endpoints.Platform
- 修复了多个端点类的命名空间大小写不一致的问题
2026-07-03 17:13:17 +08:00
xiangning
2548c3ed91 refactor(endpoints): 统一命名空间大小写规范
- 将 file 相关端点命名空间从小写改为首字母大写
- 将 im 相关端点命名空间从小写改为首字母大写
- 将 workflow 相关端点命名空间从小写改为首字母大写
- 将 rag 相关端点命名空间从小写改为首字母大写
- 将 platform 相关端点命名空间从小写改为首字母大写
- 保持代码功能不变,仅调整命名空间命名风格一致性
2026-07-03 17:12:48 +08:00
xiangning
81fbf63504 feat(workflow): 集成平台消息中心实现工作流通知推送
- 移除文件端点的权限控制以支持无权限访问
- 添加 IPlatformNotificationPublisher 接口定义跨模块通知发布能力
- 实现 WorkflowNotificationPublisher 将工作流通知转发到平台消息中心
- 在 NotificationService 中集成平台通知发布功能
- 添加 NoOpPlatformNotificationPublisher 用于单元测试
- 配置服务注册将工作流通知连接到平台消息系统
- 支持按用户ID批量发布工作流通知到平台通知表
- 复用平台的 fanout 落库和 SignalR 铃铛推送机制
- 实现容错机制确保通知失败不影响工作流主链路
2026-07-03 16:33:46 +08:00
xiangning
f932781040 feat(rag): 集成 Microsoft Extensions AI 框架并重构对话代理服务
- 引入 Microsoft.Extensions.AI.Abstractions 依赖包
- 重构 ChatAgentService 实现,支持多轮对话历史
- 更新 IAIChatAgent 接口,统一使用 ChatMessage 消息格式
- 优化流式输出处理逻辑,提升性能表现

feat(im): 增强即时通讯会话功能支持置顶备注免打扰

- 扩展会话 DTO,新增 IsPinned、IsMuted、OtherUserRemark 属性
- 扩展 ConversationParticipant 实体,新增置顶和备注相关字段
- 实现会话置顶功能,支持按置顶时间和最后消息时间排序
- 添加会话备注功能,私聊场景支持自定义备注名称
- 完善免打扰功能,支持用户级别静音设置

feat(file): 实现文件预览服务支持多种鉴权方式

- 新增文件预览端点,支持流式返回文件内容
- 实现三种鉴权方式:授权头、JWT令牌、内部签名
- 集成 KKFileView 预览服务,支持 Office 文档在线预览
- 优化文件访问安全控制,避免直接暴露 S3 链接

feat(rag): 增强 RAG 会话管理支持知识库关联

- 扩展会话创建功能,支持关联知识库
- 新增会话更新功能,支持重命名和切换知识库
- 优化会话 DTO 结构,支持知识库 ID 关联
- 实现知识库检索增强对话功能

feat(workflow): 废弃旧工作流定义接口迁移到图形化存储

- 标记旧的节点边操作端点为废弃状态
- 实现工作流定义图形化存储迁移
- 统一使用 JSON 格式作为单一事实源
- 优化工作流定义查询性能表现

chore(deps): 更新项目依赖包版本解决版本冲突问题

- 添加 Microsoft.Extensions.AI.Abstractions 依赖
- 显式声明 OpenAI 2.11.0 版本解决 CS1705 冲突
- 更新相关依赖包至兼容版本

fix(host): 修复文件预览响应包装中间件配置问题

- 添加文件预览接口到响应绕过前缀列表
- 避免文件流被 JSON 包装和内存缓冲影响性能
- 优化文件下载和预览的中间件处理逻辑

chore(im): 修复 IM 设计时数据库上下文工厂路径问题

- 优化 ImDbContextDesignTimeFactory 路径查找逻辑
- 修复数据库迁移时连接字符串获取问题
- 更新实体映射命名空间引用
2026-07-03 15:58:58 +08:00
xiangning
8f85a2d3c8 refactor(file): 移除bucket参数并使用默认桶解析器
- 移除AbortMultipartCommand中的BucketName参数
- 移除CompleteMultipartCommand中的BucketName参数
- 移除DeleteFileCommand中的BucketName参数
- 移除DownloadFileQuery中的BucketName参数
- 移除GetFileContentQuery中的BucketName参数
- 移除GetFilePreviewQuery中的BucketName参数
- 移除GetOfficePreviewQuery中的BucketName参数
- 移除InitMultipartCommand中的BucketName参数
- 在各处理器中注入IBucketResolver并获取默认桶
- 更新所有相关端点和请求模型移除bucket参数
- 修改测试代码适配参数变更
- 添加IM离线消息到平台通知中心的跨模块集成实现
2026-07-03 13:32:08 +08:00
xiangning
67dce6b1f4 feat(security): 为端点添加权限控制并优化AI模型配置管理
- 为多个端点添加权限控制,包括文件操作、工作流任务、群组管理和表单相关功能
- 重构ChatAgentService以支持从数据库读取AI模型配置,并提供回退到应用设置的功能
- 在DatabaseInitializer中添加ai_models表的建表脚本,确保表结构存在
- 更新Directory.Build.props以抑制EF1002和NU1605警告
- 为FileDbContext添加Settings实体集合和文件设置实体
- 优化FileDbContextDesignTimeFactory的配置文件查找逻辑,支持多种目录结构
- 修复EF迁移快照中的命名空间引用错误
- 为多个工作流和IM相关端点添加相应的权限验证
2026-07-03 12:49:39 +08:00
xiangning
e6b65b6f8f feat(file): 添加根级文件查询功能
- 新增 GetRootFilesEndpoint 端点,支持 GET /api/files/root 请求
- 添加 GetRootFilesQuery 查询对象用于获取根级文件
- 实现 GetRootFilesQueryHandler 处理器,查询 FolderId 为 null 的文件
- 统一根目录与子文件夹的数据源,均使用数据库而非 S3 列表
- 修复集成测试中的 MongoDB 访问方式,改用 MongoDB.Entities 静态 DB.Default
- 更新权限配置,使 Admin 角色拥有全部权限而非仅部分权限
2026-07-03 12:14:36 +08:00
xiangning
d0650e200a feat(platform): 添加权限分组树查询功能
- 新增 GetPermissionTreeEndpoint 提供 /permission/tree 接口
- 实现 GetPermissionTreeQuery 查询权限分组树数据
- 创建 GetPermissionTreeQueryHandler 处理器进行数据聚合
- 添加 PermissionGroupNodeDto 数据传输对象定义
- 按 Group 字段聚合权限数据,空值归入"未分组"
- 需要 permission:read 权限访问此功能
2026-07-03 09:28:42 +08:00
xiangning
105c7e3348 fix: rag-coding-api 规范合规修复
- 48 个 Handler 的 CancellationToken cancellationToken → ct
- 拆分 4 个一文件多类型:
  - BaseEntity.cs 拆出 BaseEntityT.cs
  - IWorkflowTriggerService.cs 拆出 WorkflowTriggerResult.cs + WorkflowDefinitionSummary.cs
  - SeedData.cs 拆出 SeedPermission.cs + SeedUser.cs
- 补全 36 处缺 /// summary 注释(file Endpoints + 各模块 Module 类)
- build 0/0
2026-07-03 09:21:08 +08:00
xiangning
ff895628e5 refactor: 拆分 platform 模块(Auth/Users/Roles/Permissions/Menus/Notifications 从 rag 独立)
- 新建 modules/platform 三层模块(Domain/Application/Infrastructure)
- 搬入 8 个实体(User/Role/Permission/UserRole/RolePermission/RefreshToken/Menu/Notification)
- 新建 PlatformDbContext(连 platform 库)+ 8 个 EF 配置 + SeedData
- 搬入 92 个 Application CQRS 文件 + 57 个 Host Endpoints
- RagDbContext 瘦身:只留 RAG 专属表(KnowledgeBase/Document/ChatMessage/Conversation)
- Handler 注入改为 PlatformDbContext
- appsettings 新增 DatabaseNames:Platform
- BuildFlowHostModule 注册 PlatformDbContext + DependsOn PlatformApplicationModule
- Conversation 实体去掉 User 导航(跨模块不直接引用实体)
- rag SeedData 清空(平台种子归 platform)
- 暂移除测 platform 功能的 Rag.Tests(后续建 platform 测试项目)
- build 0/0
2026-07-02 18:22:17 +08:00
xiangning
386280a4c4 chore: 完善 .gitignore + 清理 IDE/构建产物
- .gitignore 补充 .idea/.vscode/.vs/ 等 IDE 目录
- 从 git 移除已误提交的 .idea/ 目录
- 移除 bin/obj 缓存
2026-07-02 17:58:52 +08:00
xiangning
52383d83f3 style: 目录统一 PascalCase 驼峰
- build-flow.host → BuildFlow.Host(子目录也驼峰:Configuration/Endpoints/Hubs/Services)
- build-flow.shared → BuildFlow.Shared
- build-flow.slnx → BuildFlow.slnx
- 同步所有 slnx/ProjectReference/run-dev.sh/架构测试 路径
- 删 macOS 大小写残留重复目录(旧 BuildFlow.Host/BuildFlow.Shared 空壳)
- build 0/0
2026-07-02 17:52:39 +08:00
xiangning
6f8ff793c5 refactor: 目录名统一小写(BuildFlow.Host→build-flow.host,BuildFlow.Shared→build-flow.shared)
- src/BuildFlow.Host → src/build-flow.host
- src/shared/BuildFlow.Shared → src/shared/build-flow.shared
- 同步改 slnx/ProjectReference/run-dev.sh 路径
- csproj 文件名 + AssemblyName/RootNamespace 保持 PascalCase(.NET 规范)
- build 0/0
2026-07-02 17:41:57 +08:00
xiangning
95b6f17a3d style(file): 移除代码文件中的多余空行
- 移除 AbortMultipartCommand.cs 中的空行
- 移除 AbortMultipartCommandValidator.cs 中的空行
- 移除 AbortMultipartEndpoint.cs 中的空行
- 移除 AbortMultipartRequest.cs 中的空行
- 移除 CheckFileQueryValidator.cs 中的空行
- 移除 CompletedPart.cs 中的空行
- 移除 CompleteMultipartCommand.cs 中的空行
- 移除 CompleteMultipartCommandValidator.cs 中的空行
- 移除 CompleteMultipartEndpoint.cs 中的空行
- 移除 CompleteMultipartRequest.cs 中的空行
- 移除 CompleteMultipartResult.cs 中的空行
- 移除 CreateBucketCommand.cs 中的空行
- 移除 CreateBucketCommandHandler.cs 中的空行
- 移除 CreateBucketCommandValidator.cs 中的空行
- 移除 CreateBucketEndpoint.cs 中的空行
- 移除 CreateBucketRequest.cs 中的空行
- 移除 CreateFolderCommand.cs 中的空行
- 移除 CreateFolderCommandHandler.cs 中的空行
- 移除 CreateFolderCommandValidator.cs 中的空行
- 移除 CreateFolderEndpoint.cs 中的空行
- 移除 CreateFolderRequest.cs 中的空行
- 移除 CreateShareCommand.cs 中的空行
- 移除 CreateShareCommandHandler.cs 中的空行
- 移除 CreateShareCommandValidator.cs 中的空行
- 移除 CreateShareEndpoint.cs 中的空行
- 移除 CreateShareRequest.cs 中的空行
- 移除 DeleteBucketCommand.cs 中的空行
- 移除 DeleteBucketCommandHandler.cs 中的空行
- 移除 DeleteBucketCommandValidator.cs 中的空行
- 移除 DeleteBucketEndpoint.cs 中的空行
- 移除 DeleteBucketRequest.cs 中的空行
- 移除 DeleteFileCommand.cs 中的空行
- 移除 DeleteFileCommandHandler.cs 中的空行
- 移除 DeleteFileCommandValidator.cs 中的空行
- 移除 DeleteFileEndpoint.cs 中的空行
- 移除 DeleteFileRequest.cs 中的空行
- 移除 DeleteFolderCommand.cs 中的空行
- 移除 DeleteFolderCommandHandler.cs 中的空行
- 移除 DeleteFolderEndpoint.cs 中的空行
- 移除 DeleteFolderRequest.cs 中的空行
- 移除 DeleteShareCommand.cs 中的空行
- 移除 DeleteShareCommandHandler.cs 中的空行
- 移除 DeleteShareCommandValidator.cs 中的空行
- 移除 DeleteShareEndpoint.cs 中的空行
- 移除 DeleteShareRequest.cs 中的空行
- 移除 DownloadFileEndpoint.cs 中的空行
- 移除 DownloadFileQuery.cs 中的空行
- 移除 DownloadFileQueryHandler.cs 中的空行
- 移除 DownloadFileQueryValidator.cs 中的空行
- 移除 DownloadFileRequest.cs 中的空行
2026-07-02 15:36:06 +08:00
xiangning
17b7e9996e chore(dependencies): 移除未使用的 using 语句
- 从多个文件中移除未使用的 System.Linq.Dynamic.Core 引用
- 从多个文件中移除未使用的 Microsoft.EntityFrameworkCore 引用
- 从 IM 模块中移除未使用的 MongoDB.Driver.Linq 引用
- 清理 Handler 文件中的冗余命名空间引用
- 优化代码结构减少不必要的依赖引入
- 提高代码整洁性和编译效率
2026-07-02 14:53:56 +08:00
xiangning
d738166261 feat: BuildFlow 后端初始化(.NET 10 模块化单体) 2026-07-02 10:54:23 +08:00