Releases: smartboot/feat
Release list
Feat v2.2.0 Release Notes
本次版本继续围绕编译期优化、运行时精简、稳定性提升进行演进,并进一步弱化对 Servlet 历史设计的依赖。
✨ 更新内容
Feat Cloud
- 新增
feat.yml/feat-{env}.yml多环境配置生成支持
HTTP Client
- 新增
HttpOptions#maxConnections,支持配置 HTTP 连接池最大连接数 - 优化 HTTP 长连接管理逻辑
HTTP/2
- 优化推送请求中的 Cookie 处理
稳定性
- 修复 HTTP Upgrade 场景下的解码异常
底层升级
- smart-socket 升级至 v2.1.2
API 调整
ReadListener、WriteListener标记为 Deprecated,该接口仅用于兼容 Jakarta Servlet 规范,不建议新项目继续使用。
📊 性能
最新 Benchmark 中,Feat 在 Hello World 与 JSON 场景下均取得领先表现,吞吐量约为 Vert.x 的 2 倍,同时保持亚毫秒级响应延迟。
感谢所有社区用户的反馈与支持,欢迎升级体验 Feat v2.2.0!
Feat v2.1.0 Release Notes
Overview
Feat v2.1.0 focuses on AI multi-model ecosystem expansion and continuous development experience optimization.
✨ New Features
Feat Core
- Dependency: Upgraded smart-socket to 2.0.0 for better performance and stability
- Server:
ServerOptions#setMaxRequestSizenow supports fluent/chain-style API - Protocol: Fixed Chinese filename garbling issue in file upload scenarios (ISSUE:IJPD9F)
Feat AI
- Models: Added Anthropic API specification support, now compatible with Claude series models
- MCP: Deprecated SSE transport adapter (specification outdated), Streamable HTTP only
- Chat: Removed model-specific customization logic, now prioritizes OpenAI API specification
- Chat: Added image message support for multimodal conversations
- Chat: Refactored tool invocation entity classes for optimized tool calling flow
Feat Cloud
- Modules: Removed
feat-cloud-aot-vmmodule (functionality merged intofeat-cloud-aot)
🔄 Breaking Changes
| Change | Impact | Migration |
|---|---|---|
setMaxRequestSize return type |
Now chainable | Optional chaining usage |
feat-cloud-aot-vm removal |
Module no longer exists | Remove related dependencies |
| MCP SSE transport removal | Feature deprecated | Migrate to Streamable HTTP |
| Feat AI Chat interface refactor | Customization logic removed | Follow standard OpenAI spec |
📝 Migration Guide
1. Update Version
<feat.version>2.1.0</feat.version>2. ServerOptions Chain-style API
// v2.1.0 recommended usage
server.options()
.setMaxRequestSize(1024 * 1024)
.setPort(8080);3. Feat AI Interface Adjustments
- For Anthropic models: Use
apiSpec(ApiSpec.ANTHROPIC)to switch API specification - SSE transport removed: Use Streamable HTTP instead
📦 Version Summary
- ✅ Upgraded smart-socket to 2.0.0
- ✅ Fixed Chinese filename garbling in file uploads (ISSUE:IJPD9F)
- ✅
ServerOptions#setMaxRequestSizenow chainable - ✅ Removed
feat-cloud-aot-vmmodule - ✅ Deprecated MCP Server SSE adapter, moved to Streamable HTTP
- ✅ Added Anthropic API specification support for Claude models
- ✅ Removed chat interface model customization, prioritizes OpenAI spec
🔗 Related Links
- Documentation: https://smartboot.tech/feat
- GitHub: https://github.com/smartboot/feat
- Gitee: https://gitee.com/smartboot/feat
- Issues: https://gitee.com/smartboot/feat/issues
Feat v2.0.0 Release Notes
Breaking Changes
License Upgrade: AGPL → Apache 2.0
This is a significant milestone for the Feat project. We have upgraded our open source license from AGPL to Apache 2.0, providing a more business-friendly environment for enterprises and developers.
Why the License Change?
Since its inception in December 2024, the Feat project has experienced rapid development and iteration. Initially, we chose the AGPL license to protect the integrity of the open source project. However, as the project matured, we recognized that the "viral" nature of AGPL posed significant legal risks for enterprise users, becoming a major barrier to Feat's widespread adoption.
Apache 2.0 has become the de facto standard for enterprise-grade open source projects. Leading projects like Spring Framework, Kubernetes, and TensorFlow all use this license, striking a good balance between protecting creators' rights and promoting ecosystem prosperity.
Benefits for Enterprise Users:
- Business-friendly: Free to use in commercial closed-source projects without open source obligations
- Patent grant: Clear patent usage rights, reducing intellectual property risks
- Technology selection: Lower legal approval barriers, faster decision-making
- Ecosystem participation: Free to customize and extend without contribution requirements
Strategic Significance:
- Commercial application expansion: Enterprises can confidently apply Feat in fintech, e-commerce platforms, IoT, and enterprise internal systems
- Ecosystem prosperity: Attract more contributors, promoting the development of third-party libraries, toolchains, and solutions
- Long-term planning: Clear the path for future technology roadmap implementation
Upgrade Guide
Upgrading from v1.x
v2.0.0 is fully compatible with v1.x. Simply update the version number:
<feat.version>2.0.0</feat.version>License Change Notice
After upgrading to v2.0.0, the project automatically applies the Apache 2.0 license. Enterprise users can confidently use it in commercial projects.
Links
- Documentation: https://smartboot.tech/feat
- GitHub Repository: https://github.com/smartboot/feat
- Gitee Repository: https://gitee.com/smartboot/feat
- Issue Tracker: https://gitee.com/smartboot/feat/issues
Feat v1.5.2 Release Notes
🚀 What's New
🤖 Feat AI: Enhanced Hook Mechanism for Observable AI Agents
We've significantly upgraded the Hook interface with three new streaming response methods, making AI Agent reasoning processes visible, observable, and interactive.
New Hook Methods
onModelReasoning(String)- Capture the model's "inner monologue" (e.g., DeepSeek-R1's reasoning_content)onAgentReasoning(String)- Capture the ReAct agent's step-by-step thinking processonFinalAnswer(String)- Receive the final answer content
Why This Matters
When using reasoning models like DeepSeek-R1, users want to see AI's thought process without waiting for the complete response. v1.5.2 solves this by separating reasoning and final answers in real-time.
Quick Example
ReActAgent agent = new ReActAgent(opts -> {
opts.hook(new Hook() {
@Override
public void onModelReasoning(String reasoning) {
// Show deep thinking indicator
System.out.println("💭 Deep reasoning: " + reasoning);
}
@Override
public void onAgentReasoning(String reasoning) {
// Show step-by-step analysis
System.out.println("🤔 Analyzing: " + reasoning);
}
@Override
public void onFinalAnswer(String answer) {
// Display final result
System.out.println("✅ Answer: " + answer);
}
});
});🎨 New AI-Powered Website Design
The official website homepage has been completely redesigned with:
- Dynamic gradient backgrounds with flowing light orbs
- Terminal-style code showcase with live editor effects
- F-E-A-T feature cards highlighting:
- Free - Open source freedom
- Elastic - Auto-scaling capabilities
- Advanced - Cutting-edge technology
- Tiny - Lightweight and fast
- Fully responsive design from desktop to mobile
📦 Installation
Maven
<dependency>
<groupId>tech.smartboot.feat</groupId>
<artifactId>feat-core</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>tech.smartboot.feat</groupId>
<artifactId>feat-cloud-starter</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>tech.smartboot.feat</groupId>
<artifactId>feat-ai</artifactId>
<version>1.5.2</version>
</dependency>v1.5.0
版本特性
-
Feat Core:
- [client] 重构 GZIP 输入流实现,支持完整的头部解析和更先进的异步解码算法。
- [client] 修复 SSE 事件数据中的换行符转义问题。
- [server] 修复静态资源处理器中的路径解析、HEAD 请求、空指针异常和 404 页面返回问题。
- [server] 优化静态资源处理器的类路径资源定位功能,支持配置静态资源路径。
- [server] 修复 HTTP 协议解析中的缓冲区边界检查和字节缓冲区位置错误。
- [core] 添加方法实例化 Bean 的支持。
- [core] 优化字节树子节点获取逻辑。
- [router] 支持花括号
{}形式的路径参数匹配。 - 移除过时的 DeflaterInputStream 引用并优化异常处理。
- 升级 smart-socket 至 1.8.3。
-
Feat AI:
- 实现 ReAct Agent 智能体,支持系统提示词、工具执行钩子和异常处理。
- AI 代理工具改为异步执行模式,优化执行流程和消息处理机制。
- 新增流式响应错误处理机制和失败处理机制。
- 新增 Kimi-K2.5-Instruct 模型支持。
- 重构提示词模板接口设计,优化 ReAct 智能体提示模板结构。
- 新增子代理任务委托功能。
- 实现 AI Agent 动作解析功能。
- 新增 WebReader 网页阅读器功能,支持读取和转换网页内容。
-
Feat Cloud:
- 新增 MyBatis 集成支持,包括配置序列化、编译期 XML 配置解析和代码生成。
- 新增分布式会话管理功能,集成 Redisun 支持集群会话管理。
- 重构会话管理架构,实现本地会话管理器和集群会话管理器。
- 改进 AOT 编译逻辑,支持扩展序列化器(MyBatis 和 Redisun 集成)。
- RequestMapping 支持
{}花括号形式的路径参数匹配。 - 新增静态资源路径配置功能。
- 新增 JSONArray 支持和结构体参数处理。
- 增强控制器序列化器的参数处理能力,支持复杂类型参数。
- 修复 JSON 解析空值导致的异常问题。
- 修复列表参数反序列化问题。
- 新增 Docker 部署支持,包括 JRE 版本和原生镜像示例。
- 添加 Fat Jar 打包支持。
- AsyncResponse 的 complete 方法返回类型调整为 AsyncResponse。
升级指南
- 升级版本后处理编译报错问题。
- 若使用了
AsyncResponse@complete方法,注意其返回类型已变更为AsyncResponse。 - 若需技术支持可通过 Gitee ISSUE 提交反馈。
兼容性说明
AsyncResponse@complete方法返回类型从void修改为AsyncResponse。ApplicationContext类已设为 final,构造函数访问权限调整。- Feat AI 模块中 Agent 相关接口存在多处重构,如 AgentOptions 构造方式、工具接口等。