{"release":{"tag":{"name":"v3.4.0","path":"/opensolon/solon/tags/v3.4.0","tree_path":"/opensolon/solon/tree/v3.4.0","message":"","commit":{"id":"c230029f5367380364d98277246c27e1a9f65077","short_id":"c230029","title":"UPDATE","title_markdown":"UPDATE","description":"","description_markdown":"","message":"UPDATE\n","message_markdown":"UPDATE","detail_path":"/opensolon/solon/commit/c230029f5367380364d98277246c27e1a9f65077","commits_path":"/opensolon/solon/commits/c230029f5367380364d98277246c27e1a9f65077","tree_path":"/opensolon/solon/tree/c230029f5367380364d98277246c27e1a9f65077","author":{"name":"西东","email":"noear@live.cn","username":"noear_admin","user_path":"/noear_admin","enterprise_user_path":null,"image_path":"https://foruda.gitee.com/avatar/1683858335519306352/15535_noear_admin_1683858335.png!avatar30","is_gitee_user":true,"is_enterprise_user":null,"widget_url":""},"committer":{"name":"西东","email":"noear@live.cn","username":"noear_admin","user_path":"/noear_admin","enterprise_user_path":null,"image_path":"https://foruda.gitee.com/avatar/1683858335519306352/15535_noear_admin_1683858335.png!avatar30","is_gitee_user":true,"is_enterprise_user":null,"widget_url":""},"authored_date":"2025-07-08T08:48:34+08:00","committed_date":"2025-07-08T08:48:34+08:00","signature":null,"build_state":null},"archive_path":"/opensolon/solon/repository/archive/v3.4.0","signature":null},"operating":{"edit":false,"download":true,"destroy":false,"enterprise_forbid_zip":false},"release":{"title":"Solon v3.4.0","path":"/opensolon/solon/releases/tag/v3.4.0","tag_path":"/opensolon/solon/tree/v3.4.0","project_id":5715659,"created_at":"2025-07-08T08:48:15+08:00","is_prerelease":false,"description":"### 兼容说明\r\n\r\n* solon-flow stateful 接口二次预览，相关接口有变动\r\n\r\n\r\n方法名称调整：\r\n\r\n| 旧方法                          | 新方法                      |   |\r\n|------------------------------|--------------------------|---|\r\n| `getActivityNodes`           | `getTasks`               |   |\r\n| `getActivityNode`            | `getTask`                |   |\r\n|                              |                          |   |\r\n| `postActivityStateIfWaiting` | `postOperationIfWaiting` |   |\r\n| `postActivityState`          | `postOperation`          |   |\r\n\r\n状态类型拆解后的对应关系（之前状态与操作混一起，不合理）\r\n\r\n| StateType(旧)         | StateType(新)          | Operation(新)     |\r\n|----------------------|-----------------------|------------------|\r\n| `UNKNOWN(0)`         | `UNKNOWN(0)`          | `UNKNOWN(0)`     |\r\n| `WAITING(1001)`      | `WAITING(1001)`       | `BACK(1001)`     |\r\n| `COMPLETED(1002)`    | `COMPLETED(1002)`     | `FORWARD(1002)`  |\r\n| `TERMINATED(1003)`   | `TERMINATED(1003)`    | `TERMINATED(1003)` |\r\n| `RETURNED(1004)`     |                       | `BACK(1001)`     |\r\n| `RESTART(1005)`      |                       | `RESTART(1004)`  |\r\n\r\n\r\n\r\n\r\n### 具体更新\r\n\r\n* 插件 solon-flow stateful 二次预览\r\n* 新增 solon-ai-repo-opensearch 插件\r\n* 新增 hibernate-jakarta-solon-plugin 插件\r\n* 新增 solon-web-webservices-jakarta 插件\r\n* 新增 solon 接口版本 version 支持\r\n* 优化 solon-test RunnerUtils 的缓存处理，原根据“启动类”改为根据”测试类“缓存\r\n* 优化 solon `@Inject` 注解目标范围增加 METHOD 支持\r\n* 优化 solon-expression StandardContext 添加 target = null 检测\r\n* 优化 solon-cloud DiscoveryUtils:tryLoadAgent 兼容性\r\n* 优化 solon-cloud Config pull 方法，确保不输出 null\r\n* 优化 mybatis-solon-plugin 插件配置的加载时机（mappers 之前）\r\n* 添加 solon-test SolonJUnit5Extension,SolonJUnit4ClassRunner afterAllDo 方法（如果是当前启动类，则停止 solonapp 实例）\r\n* 添加 solon-ai Options:toolsContext 方法\r\n* 添加 solon-flow stateful FlowStatefulService 接口，替换 StatefulFlowEngine（确保引擎的单一性）\r\n* 添加 solon-flow `FlowEngine:statefulService()` 方法\r\n* 添加 solon-flow `FlowEngine:getDriverAs()` 方法\r\n* 添加 hibernate-solon-plugin 对 PersistenceContext、PersistenceUnit 注解的支持\r\n* 添加 hibernate-solon-plugin 对 PersistenceContext、PersistenceUnit 注解的支持\r\n* 调整 solon 取消 --cfg 对体外文件的支持（如有需要通过 solon.config.load 加载）\r\n* 调整 solon-flow stateful 相关概念（提交活动状态，改为提交操作）\r\n* 调整 solon-flow stateful StateType 拆分为：StateType 和 Operation\r\n* 调整 solon-flow stateful StatefulFlowEngine:postActivityState 更名为 postOperation\r\n* 调整 solon-flow stateful StatefulFlowEngine:postActivityStateIfWaiting 更名为 postOperationIfWaiting\r\n* 调整 solon-flow stateful StatefulFlowEngine:getActivity 更名为 getTask\r\n* 调整 solon-flow stateful StatefulFlowEngine:getActivitys 更名为 getTasks\r\n* 调整 solon-flow stateful StatefulFlowEngine 更名为 FlowStatefulService（确保引擎的单一性）\r\n* 调整 solon-ai-core ToolCallResultJsonConverter 更名为 ToolCallResultConverterDefault 并添加序列化插件支持\r\n* 调整 solon-ai-mcp PromptMapping，ResourceMapping 取消 resultConverter 属性（没必要了）\r\n* 移除 mybatis-solon（与 mybatis-solon-plugin 重复）\r\n* 修复 solon cookieMap 名字未区分大小写的问题（调整为与其它框架一至）\r\n* 修复 solon-ai-core ChatModel:stream:doOnNext 可能无法获取 isFinished=true 情况\r\n* 修复 solon-ai-core ChatModel:stream:doOnNext 可能无法获取 isFinished=true 情况\r\n* 修复 solon-web-servlet SolonServletFilter 链的传递处理问题（未处理且200才传递，说明未变）\r\n* luffy 升为 1.9.5\r\n* liquor 升为 1.5.7\r\n* snack3 升为 3.2.135\r\n","author":{"name":"西东","username":"noear_admin","path":"/noear_admin","avatar_url":"https://foruda.gitee.com/avatar/1683858335519306352/15535_noear_admin_1683858335.png!avatar30"},"attach_files":[],"zip_download_url":"/opensolon/solon/releases/tag/v3.4.0.zip","tar_download_url":"/opensolon/solon/releases/tag/v3.4.0.tar.gz"}}}