Skip to content

Feature/apps - #10

Open
cjbi wants to merge 144 commits into
mainfrom
feature/apps
Open

cjbi wants to merge 144 commits into
mainfrom
feature/apps

Conversation

@cjbi

@cjbi cjbi commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

No description provided.

cjbi added 30 commits September 28, 2026 15:53
- 添加了零代码功能模块的包信息文件
- 移除了 DESIGN.md 文件
- 重构 LeftSidebar 组件中的菜单展开逻辑,优化性能和用户体验
- 在菜单编辑对话框中添加对分组菜单的支持,实现三级菜单结构
- 更新菜单编辑对话框 UI,增加分组和子菜单操作界面
- 修改顶部标题显示为 Flex 管理后台
- 扩展对话框组件支持高度自定义
- 在 mock 数据中添加分组菜单结构和类型定义
- 实现子菜单拖拽排序功能
- 优化菜单编辑表单验证和保存逻辑
- 在flexmodel-server新增AppResource/AppService及相应DTO实现应用管理后端CRUD
- 应用与项目一对一映射:应用ID等于项目ID,展示配置存储在项目metadata的app节点
- 在flexmodel-apps-ui新增auth.ts服务封装登录接口,实现真实凭据校验与会话管理
- 登录页集成后端认证接口,支持记住登录与来源页面跳转
- 主路由添加RequireAuth守卫,未登录访问业务页面自动跳转登录页
- TopHeaderShell组件展示后端返回用户信息并提供退出登录清理会话功能
- AdminUsers页面重构为部门树形结构展示,支持搜索分页与部门筛选功能
- 更新开发环境配置,调整RabbitMQ和SQLite数据库连接设置
- 添加应用管理相关的前端路由保护与会话状态同步机制
- 新增 src/services/apps.ts 封装 GET/POST/PUT/DELETE /api/apps 接口
- AppManagement 页面改为异步加载应用列表,展示加载与失败状态
- AppManagement 创建/更新/删除调用真实接口,成功后刷新列表
- AppSettings 页面异步加载应用详情,保存后同步后端返回值
- AppManagement/AppSettings 补充提交、删除过程中的状态展示与错误处理
- 验证:npm run build 通过,tsc -b + vite build 构建成功
- 新增应用菜单相关DTO类包括AppMenuOrderRequest、AppMenuRecord、
  AppMenuResponse、AppMenuSaveRequest等数据传输对象
- 实现AppMenuResource REST API接口提供菜单的增删改查和排序功能
- 开发AppMenuService业务服务处理菜单的存储、验证、父子关系管理
- 在AppService中为应用元数据添加menus节点初始化空列表
- 添加完整的单元测试覆盖菜单CRUD操作和验证规则
- 更新feature_list.json中的依赖配置数组格式以提高可读性
- 将菜单类型从MENU统一改为ITEM,后端校验、响应及前端请求路由判断同步调整
- 移除GROUP必须位于根级的限制,支持根级分组与嵌套分组结构匹配UI交互
- 内置页面关联打通:BUILT_IN目标选项改为工作台、文件、审批中心,移除动态、通讯录、通知
- 实现菜单跨分组拖拽功能:ITEM可在分组内外跨层级拖拽并更新父级
- 前端应用菜单弹窗接入真实接口,空菜单打开弹窗时不再显示mock数据
- 菜单编辑弹窗支持分组嵌套结构,关联项选择器改为加载后端targets数据
- 实现应用内菜单数据会话缓存并合并并发请求,提升页面加载性能
- 修复无menuId时的默认选中逻辑,访问/apps/{appId}自动重定向到第一个ITEM页面
- 修复空顶部菜单回落问题,无子项时保留空态页面不再跳转到其他菜单
- 在 AppResponse 中新增 owner 字段并从项目 ownerId 获取值
- 更新 feature_list.json 记录应用列表与详情 owner 字段断言
- 修改 AppManagement 组件显示所有者信息替代业务对象计数
- 调整网格布局为大屏一行四列展示
- 添加应用主色调样式配置支持 indigo/blue/green/amber/rose/black
- 在 apps.ts 服务中添加 owner 字段类型定义和格式化功能
- 扩展测试用例验证 owner 字段存在性
- 应用管理列表在大屏下改为一行四列;应用卡片移除"业务对象 n 个",改为展示"所有者:owner"
- 应用接口响应新增 owner 字段,取项目 ownerId
- 应用接口返回的 createdAt / updatedAt 在前端统一格式化为 yyyy-MM-dd HH:mm:ss
- 应用管理卡片按应用自身的 primaryColor 渲染图标底色、文字色和悬停边框
- 应用管理和应用设置不再展示 ISO 时间与纳秒精度
- 相关测试验证构建通过和功能正常
- 将应用设置中的"业务对象"入口重命名为"表单管理"
- 将菜单关联项下拉列表中的"实体"标签改为"表单"
- 更新管理后台中"业务对象"相关文案为"表单"
- 修改删除应用提示中的"业务对象"为"表单"
- 将审批筛选中的"业务对象"占位符改为"表单"
- 更新菜单绑定提示中的"业务对象"为"表单"
- 修正记录页面中的"业务对象"显示为"表单"
- 调整功能描述注释中的术语统一为"表单"
- 更新进度文档中的相关术语变更说明
- 在 AdminContent 中将业务对象卡片链接指向新的表单配置页面
- 新增 BusinessObjectSettings 页面承载表单配置功能的页面骨架
- 在 main.tsx 中添加业务对象配置相关的路由配置
- 为 AppMenuManager 添加拖拽时的层级指示分割线功能
- 更新 feature_list.json 和 progress.md 记录相关功能完成情况
- 新增 AppFormResource 提供完整的 REST API 接口
- 实现 AppFormService 业务逻辑处理
- 添加各类 DTO 记录用于表单和字段的数据传输
- 将菜单关联的目标类型从实体改为应用表单
- 实现表单字段类型的验证和转换逻辑
- 支持多种字段类型包括文本、数字、日期、引用等
- 添加表单和字段的增删改查功能
- 新增 AppFormItemPropertiesRecord 和 AppFormLayoutRecord 数据传输对象
- 添加 AppFormLayoutRequest 用于保存表单布局请求
- 在 AppFormResponse 中增加 layout 字段返回布局信息
- 实现 saveLayout REST API 端点用于保存表单设计布局
- 添加 AppRecordResource 和 AppRecordService 提供表单记录 CRUD 操作
- 实现表单字段删除时同步清理相关索引和布局配置
- 更新前端 FormDesign 组件支持从服务端加载和保存布局
- 添加布局保存按钮禁用和错误提示功能
- 实现表单字段删除时同步更新本地布局状态
- 将表单字段DTO中的system字段重命名为builtin
- 添加JsonAlias注解保持对旧system字段的兼容读取
- 更新AppFormService和AppRecordService中字段检查逻辑
- 修改错误提示信息从"系统字段"为"内置字段"
- 更新测试代码中字段检查路径
- 修正排序JSON格式为{field, order}结构
- 移除未使用的Direction和Query导入
- 使用Math.clamp简化分页大小标准化逻辑
- 新增AppRecordResourceTest集成测试类,覆盖记录的增删改查功能
- 在AdminLayout中调整表单设计和字段管理菜单顺序
- 将AppMenuPage中的表单绑定页面替换为RecordList组件
- 实现AppRecordView页面,支持记录详情查看和编辑功能
- 重构FormDesign和FormSettings中系统字段标识为内置字段(builtin)
- 完善RecordList页面,实现记录列表展示、搜索、排序和批量操作功能
- 更新appForms服务接口,将system字段改为builtin字段命名
- 将AppFormRecord、AppFormResponse和AppFormUpdateRequest中的nameField重命名为displayField
- 添加@JsonAlias("nameField")注解以保持对旧数据和请求的向后兼容
- 更新AppFormService中的相关字段处理逻辑
- 在表单更新时验证displayField存在且不能选择内置字段
- 删除当前主显字段时同步清空displayField和searchField
- 更新测试用例以验证新的字段命名和功能
- 修改前端组件以使用新的displayField字段命名
- 移除记录详情顶部表单副标题,避免关闭按钮与操作按钮重叠
- 恢复分栏折叠交互功能,支持展开和收起分栏内容
- 将详情字段改为单个卡片容器承载,统一布局结构
- 分栏标题去掉横向分割线,使用加粗文字和主题色竖向强调条
- 将折叠图标 ChevronDown 移动到分栏文字右侧显示
- 为抽屉关闭按钮预留右侧空间,改善界面布局
- 在AppFormLayoutRecord和AppFormLayoutRequest中添加subforms字段
- 新增AppFormSubformRecord用于子表单配置
- 实现子表单引用字段的验证和约束检查
- 添加子表单相关的CRUD操作限制和清理逻辑
- 扩展记录服务以支持主子表关系的上下文查询
- 在表单设计界面添加子表单的可视化组件
- 更新记录详情页面以显示子表单记录列表
- 添加完整的单元测试验证子表单功能
- 移除子表单引用字段类型和referenceForm校验,支持任意业务字段作为关联字段
- 添加子表单选择后重新获取最新表单详情的功能,确保引用字段候选列表准确
- 更新前端表单设计界面的关联字段候选逻辑,显示子表单全部非内置字段
- 修改记录详情页面的子表单标题显示,仅保留表单名称移除副标题
- 新增相关测试用例验证TEXT字段作为关联字段的功能
- 更新表单列表接口返回完整的referenceForm信息用于前端候选字段计算
- 删除 AppFormItemPropertiesRecord 和 AppFormSubformRecord,新增 AppFormItemRecord 统一布局节点
- AppFormLayoutRecord 从四份平行 map 简化为单一有序 items 列表
- AppFormRecord 移除 entityName,新增 layout 字段,name 同时作为实体名
- 去除 $DIVIDER$ 和 $SUBFORM$ 哨兵前缀,用 type 字段区分节点类型
- 宽度从数字百分比改为语义化枚举 QUARTER/THIRD/HALF 等
- AppFormService 布局存储从独立 formLayouts map 收敛到 AppFormRecord 内
- 收紧表单名称正则,仅允许小写字母开头
- 新增表单布局校验规则文档和 MCP AppTools 技术方案文档
cjbi added 30 commits October 31, 2026 18:24
- 新建 AppRepository 接口及 AppFmRepository 实现,操作 f_app 表
- 将 iconName、primaryColor、navigation、provisioning 从 project metadata 迁移至 App 实体字段
- 将各 Repository 中 project_id 字段统一重命名为 app_id
- 重构 AppService 使用 AppRepository 替代 metadata 读写逻辑
- 重构 AppNavRecordStore 将导航持久化到 f_app.navigation 列
- 重构 AppPackageImport 使用 App 实体管理 provisioning 状态
- 重构 AppPackageService 从 App 实体读取图标和主色
- AppResponse.from 新增 appUpdatedAt 参数以反映应用级更新时间
- 将 WorkbenchRepository 重命名为 AppWorkbenchRepository
- 新增 AppCreateDialog 统一创建弹窗,首项输入名称再以卡片选择空白应用或从模板创建
- 移除新建下拉菜单与独立 AppTemplateGalleryDialog,模板画廊内联至创建弹窗
- AppPackageImportDialog 新增 initialName 入参,模板模式步骤条精简为导入预览→完成
- 修复 requiresNameRestore 条件反向导致骨架 name 字段无谓触发恢复的问题
- SqlSchemaService.modifyField 仅在列定义实际变化时执行 DDL,避免纯元数据变更触发 ALTER
- 新增 SqlDialect.supportsModifyColumn(),SQLiteSqlDialect 返回 false 跳过 DDL 并 WARN
- 同步更新 docs/plans/app-templates.md 交互说明与 progress.md 记录
- 更新 e2e 测试覆盖统一弹窗创建、空白应用含图标描述主色、空目录隐藏模板方式
- 将应用核心类迁移至 dev.flexmodel.apps.app 子包
- 将应用包导入导出类迁移至 dev.flexmodel.apps.apppackage 子包
- 将数据授权类迁移至 dev.flexmodel.apps.dataauthorization 子包
- 将表单相关类迁移至 dev.flexmodel.apps.form 子包
- 将 DTO 类按所属子模块拆分至对应 dto 子包
- 将记录相关类迁移至 dev.flexmodel.apps.record 子包
- 将工作台类迁移至 dev.flexmodel.apps.workbench 子包
- 将导航类迁移至 dev.flexmodel.apps.navigation 子包
- 更新所有受影响的 import 引用路径
- 将 AppService 中 IMPORT_BYPASS 等方法提升为 public 访问级别
- 审批模块 Resource 层从 Map 改为类型化 record DTO
- 新增审批相关 DTO record(Detail, Item, Page, Counts 等)
- 包路径 apps.app 提升至 apps,简化导入层级
- AppPackageTaskRepository 重命名为 AppPackageTaskStore
- AppNavRecordStore 重命名为 AppNavigationRepository
- 移除 AppTemplateCatalog 直接依赖,模板实例化改为流式输入
- 新增表单多类型视图技术方案文档
- 视图记录新增 type、sort、displayFields、config 字段,支持 TABLE、KANBAN、CALENDAR、GALLERY、DETAIL、HIERARCHY、GANTT 七种类型
- 新增 AppViewConfig 和 AppViewSort 类型定义各视图专属配置与排序规则
- 服务端 normalizeViews 重构为按类型分发验证,覆盖分组字段、日期字段、自引用层级等约束
- AppPackageValidator 增强包导入校验,逐项验证类型、排序、显示字段及专属配置合法性
- 移除默认视图概念,改为始终打开第一个视图
- SQL 条件渲染新增 null 值处理,EQ/NE 转换为 IS NULL/IS NOT NULL,比较运算符返回永假条件
- 新增 SqlConditionRendererTest 覆盖 null 比较、命名占位符和 IN 列表中 null 元素场景
- 更新设计文档与 DTO 注释,统一术语为"视图配置"
- 日历视图增加上一/下一周期、今天、日期跳转与当前周期标题
- 日历视图未排期记录支持分页继续加载与窄屏抽屉展示
- 日历视图适配夜间主题、显示今日指示线与每日事件上限
- 详情视图支持跨页上一条/下一条导航与页码感知
- 详情视图增加窄屏列表/详情分步浏览与返回按钮
- 各视图统一加载骨架、细进度条与错误重试状态组件
- 新增系统表单 AppScoped 路由访问集成测试用例
- 在AppTransferExcel类中引入AppTransfer的静态成员导入
- 简化对AppTransfer常量或方法的引用方式
- FieldPicker 的 PopoverContent z-index 提升至 1100,避免被设置抽屉遮挡
- AttachmentField 导出 useAttachmentImageSource 复用鉴权 blob 加载逻辑
- GalleryView 改用鉴权请求加载封面,支持加载中与失败占位状态
- 新增表单显示控制技术方案文档并在 README 中追加索引
- .gitignore 添加 /.tmp/ 目录
- 新增 AppFormFieldControls/AppFormFieldControlRecord DTO,支持按
  字段名配置 hidden/required/readonly 控制,每项包含 scenes 与可选
  condition(复用记录查询 filter DSL)
- AppFormLayoutRecord/AppFormLayoutRequest 增加 controls 字段
- AppFormService 新增 normalizeControls 校验逻辑:场景非空且合法、
  禁止空条件对象、内置字段忽略控制、保存时清除 item 级旧静态属性
- MCP 工具 save_app_form_layout 新增可选 controlsJson 参数,省略时
  保留当前控制并按新布局裁剪,传空对象清空全部控制
- 更新 get_app_form 工具描述,返回 layout.controls 信息
- 新增 AppToolsTest 覆盖 controls 解析、空对象清空、非对象拒绝
- AppPackageZipTest 增加 controls 打包往返断言
- 同步更新 app-tools-mcp.md 与 field-properties.md 文档
- 新增 @disposes 方法在容器销毁(含热重启)时调用 scheduler.shutdown 关闭调度器
- 避免旧的 QuartzSchedulerThread 残留并通过已关闭的 ArC 容器访问 CDI Bean
- 补充 MCP 工具描述中 BUILTIN 页面导航绑定的说明
- 完善 destinationId 参数描述,明确支持的 BUILTIN 页面类型
- 导航目的地新增 workbenchId 字段,支持关联到具体工作台
- 应用包导入时重写工作台目的地映射,修复导航与工作台引用关系
- 新增视图能力目录接口 findViewCapabilities,供 AI 生成视图页签参考
- 新增 AppViewCapabilityResponse 等 DTO,描述视图类型契约与限制
- 内置字段解析统一为 builtinFieldRecords,校验与导入均复用该目录
- 工作台指标新增 decimalPlaces 配置项,支持小数位数控制
- 工作台图表维度值支持选项文本映射与布尔字段中文显示
- 应用包 MAX_FORMS 上限从 20 提升至 50
- 审批导入共享已启用集合,避免子流程重复启用导致版本冲突
- MCP 工具描述更新,反映视图页签与布局控件返回字段变化
- 导航目的地新增 workbenchId 字段,支持关联到具体工作台
- 应用包导入时重写工作台目的地映射,修复导航与工作台引用关系
- 新增视图能力目录接口 findViewCapabilities,供 AI 生成视图页签参考
- 新增 AppViewCapabilityResponse 等 DTO,描述视图类型契约与限制
- 内置字段解析统一为 builtinFieldRecords,校验与导入均复用该目录
- 工作台指标新增 decimalPlaces 配置项,支持小数位数控制
- 工作台图表维度值支持选项文本映射与布尔字段中文显示
- 应用包 MAX_FORMS 上限从 20 提升至 50
- 审批导入共享已启用集合,避免子流程重复启用导致版本冲突
- MCP 工具描述更新,反映视图页签与布局控件返回字段变化
- 新增 GitHub Actions CI 任务构建并推送 Apps UI Docker 镜像
- 在两个 docker-compose 部署方案中新增 flexmodel-apps-ui 服务
- 完善 nginx.conf,添加 API 反向代理与 SSE 通知流配置
- 补充 .dockerignore 忽略测试产物和构建缓存文件
- 新增 QMS 质量管理系统应用模板并精简各模板描述
- 导入对话框进度块开始时自动滚动到可视区域
- 在 .gitmodules 中新增 flexmodel-apps-ui 子模块配置
- 子模块路径设置为 flexmodel-apps-ui
- 远程仓库指向 git@github.com:flexmodel-dev/flexmodel-apps-ui.git
- 添加 FolderPermissions 类实现目录可见范围控制
- 支持基于项目 metadata 存储目录权限策略
- 实现路径规范化与合法性校验
- 支持按用户、角色、组织类型配置目录访问成员
- 提供目录权限的保存、编辑、重定位操作
- 集成目录快照与成员解析逻辑判断访问权限
- 父目录权限限制始终生效,子目录继承父级约束
- 添加编辑失败时的回滚机制保证数据一致性
- 移除 org.apache.poi:poi-ooxml 6.0.0 依赖
- 添加 io.quarkiverse.poi:quarkus-poi 2.2.2 依赖
- 适配 Quarkus 框架的 POI 处理方式
- 将 f_app 模型从文件中间位置移至文件开头,调整模型定义顺序
- 为 f_app 模型新增 created_at 字段的降序索引 IDX_idx_created_at
- 将 f_app 模型从文件中间位置移至文件开头,调整模型定义顺序
- 为 f_app 模型新增 created_at 字段的降序索引 IDX_idx_created_at
- 新增 ScalarType.TEXT 与 TextField,映射 JDBC LONGVARCHAR,支持 MySQL longtext、PostgreSQL text 等
- FML 解析器与 ASTNodeConverter 支持 Text 类型的解析与回写序列化
- SqlContext/MongoContext 注册 Text 类型处理器,JdbcModelRegistry 反向映射 LONGVARCHAR→TextField
- Jackson TypedFieldMixIn 注册 Text 子类型,支持 JSON 序列化/反序列化往返
- GraphQL schema 生成将 Text 映射为 String,比较表达式复用 StringComparisonExp
- codegen JavaType 将 TEXT 映射为 Java String
- SqlSchemaService 增加校验:Text 字段不允许创建索引和唯一约束,提前拒绝并给出明确提示
- AppFormService/SystemFormService 将 NTEXT/FILE/IMAGE/AVATAR 字段类型从 StringField(4000) 改为 TextField,解决 MySQL 宽表 65535 行长度限制问题
- 前端字段类型下拉新增 Text 选项,FieldInput 使用 TextArea,FML 编辑器补全与高亮支持
- 新增 MySQLSqlDialectTest 验证 longtext DDL 生成与行内字节预算,ASTNodeConverterTest 验证解析与回写
- 文档更新类型表与 MCP 建模工具说明
- 新增 AppFormRepository 接口与 AppFormFmRepository 实现,按 app_id 直查
- platform.fml 新增 f_app_form 模型(id、app_id、name、content),f_app 移除 forms JSON 列改为关联
- AppFormService 全链路去掉 Project 参数,读写改经 Repository 按 appId 操作
- persistFormRecords 改为整表替换语义(deleteByAppId + 逐行 mergeInto)
- AppService.createApp 移除 setForms 初始化
- ProjectPlatformDataCleaner 增加 AppForm 模型清理
- 新增 AppPackageImportTest 端到端测试,验证模板导入后表单、引用字段、布局与视图的正确性
- 新增 AppFormImportBatchTest 单元测试,覆盖一次建表含引用字段与一次写配置的核心逻辑
- 验证相互引用的表单可在同一包内正确创建
- 验证布局与视图在单次写入中正确应用
- 验证引用不存在的表单时抛出 ValidationException
- 添加 SQLite 写锁竞争时的重试与跳过机制
- 固定 zstd-jni 版本至 1.5.7-6(JNI 实现,无 FFM)
- 在 dependencyManagement 中添加 zstd-jni 版本约束
- 解决 GraalVM 无法 intrinsify linkToNative 导致的 AnalysisError
- 添加详细注释说明问题根因及后续移除条件
- FilterConditionEditor 中所有原生 <select> 替换为 shadcn/ui
  Select 组件(SelectTrigger/SelectValue/SelectContent/SelectItem/
  SelectGroup/SelectLabel)
- FormDataPermissions 中所有原生 <input type="checkbox"> 替换为
  shadcn/ui Checkbox 组件
- checkbox 组件补充 disabled 状态样式(cursor-not-allowed、opacity-50)
- 值类型名称由「自定义」统一改为「固定值」
- 抽屉宽度由 720px 调整为 920px 适配新组件布局
- 删除列禁用态由 disabled checkbox 改为显示「—」文本
- e2e 测试断言同步更新为检查文本内容
- 创建 AI 模块 DTO 定义:机器人、消息、会话、流式事件等数据模型
- 实现统一会话 REST API,支持会话创建、SSE 流式对话与删除
- 实现应用机器人 CRUD 接口,支持机器人配置管理与权限校验
- 基于 LangChain4j 声明式 AI Service 实现模型流式调用编排
- 实现会话记忆加载,按 conversationKey 从数据库装载历史消息
- 实现 @应用名 提及解析与多应用上下文切换机制
- 实现动态系统提示组装,包含应用表单结构与字段上下文
- 实现消息持久化与并发安全的会话落库逻辑
- 应用包导入时支持 AI 对话导航自动补建默认机器人
- 新增 AiStreamingModelProducer 开启 returnThinking 解析推理增量
- AiDtos 增加 MessagePart 和 AppChange 记录,扩展 StreamEvent 字段
- AppAiService 增加请求级推理块累积与关闭逻辑
- 新增 AiToolChanges 从工具调用结果提取变更范围并下发 change 事件
- 补充推理展示技术方案文档及 AI 写操作页面同步文档
- 覆盖创建应用时使用实际结果 ID 的场景
- 验证表单和工作台变更使用实际目标而非会话上下文
- 测试只读调用、失败调用和无效调用不产生变更记录
- 验证部分批量记录仍为已提交记录生成变更
- 新增 react-markdown 用于 Markdown 内容渲染
- 新增 remark-gfm 支持 GitHub 风格 Markdown 语法
- 引入相关类型定义和底层依赖包
- 部分类型包从 devDependencies 提升为生产依赖
- 按 shadcn/ui 风格重写 Apps 登录页,采用双栏布局与主题色 SVG 业务插画
- 添加分层悬浮、流动连线、进度变化和入场动效,支持 prefers-reduced-motion
- 移除未接入的旧版注册、第三方登录、语言和二维码入口,取消预填演示账号
- 增加密码显示切换、表单必填校验、提交防重复及深色模式切换
- AiStreamingModelProducer 新增 max-tokens、max-completion-tokens、reasoning-effort 可选配置,未配置时不发送对应字段
- AppManagement 所有者与更新时间改用 Tooltip 组件,仅在实际截断时显示完整文本,移除原生 title
- 移除后端 change 事件协议及 AppChange DTO,StreamEvent 不再携带变更范围
- 删除 AiToolChanges 工具映射及其专属测试
- AppAiService 从 transformToMultiAndConcatenate 回退为简单 transform,仅发送 tool 事件
- 前端改为本轮收到 tool 后统一调用 clearAppDataCache 并递增 refreshVersion 重建业务页面
- 重写 ai-refresh.md 为全局刷新方案,移除资源分类与缓存订阅描述
- 更新 ai-reasoning-display.md 及 feature_list.json 对齐新方案
- 重写 E2E 测试验证多个工具仅触发一次刷新且保留 AI 侧栏与消息草稿
- 新增 max-tokens 与 reasoning-effort 模型配置限制
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant