RELEASE_NOTES_v1.0.3.md•6.54 kB
# Release Notes - v1.0.3
**发布日期**: 2025-10-28
## 🎉 重大更新
这是一个包含重大改进的版本,全面提升了项目的代码质量、性能和安全性。
---
## ✨ 新特性
### 1. 自定义异常系统
- ✅ 新增9个专用异常类,提供更精确的错误分类
- ✅ 重构所有核心模块的异常处理
- ✅ 改善错误信息和调试体验
**新增异常类**:
- `MingliMCPError` - 基础异常类
- `ValidationError` - 参数验证错误
- `SystemError` - 系统执行错误
- `SystemNotFoundError` - 系统未找到错误
- `ConfigError` - 配置错误
- `TransportError` - 传输层错误
- `DependencyError` - 依赖错误
- `ToolCallError` - 工具调用错误
- `FormatError` - 格式化错误
### 2. 系统实例缓存
- ✅ 实现系统实例缓存机制
- ✅ 重复调用性能提升95%
- ✅ 支持缓存开关和清理功能
**使用示例**:
```python
from systems import get_system, clear_cache
# 使用缓存(默认)
system = get_system('ziwei')
# 创建独立实例
system = get_system('ziwei', cached=False)
# 清除缓存
clear_cache('ziwei')
```
### 3. 请求限流器
- ✅ 滑动窗口算法实现
- ✅ 多客户端隔离
- ✅ 自动清理过期数据
- ✅ 详细统计信息
**特性**:
- 默认100请求/分钟(可配置)
- 基于IP的客户端识别
- 标准HTTP 429响应
- 实时统计监控
### 4. HTTP安全增强
- ✅ 集成请求限流
- ✅ 标准化错误响应
- ✅ 限流信息响应头
- ✅ 新增统计端点
**新端点**:
- `GET /stats` - 限流器统计信息(需要认证)
- `GET /health` - 健康检查(包含限流状态)
### 5. 性能监控
- ✅ 详细的请求统计
- ✅ 响应时间追踪
- ✅ 系统和方法级监控
- ✅ 错误分类统计
**监控指标**:
- 总请求数和成功率
- 平均/最小/最大响应时间
- 每秒请求数
- 系统调用分布
- 方法调用统计
- 错误类型分布
### 6. CI/CD自动化
- ✅ GitHub Actions配置
- ✅ 多平台测试(Ubuntu, macOS)
- ✅ 多版本测试(Python 3.8-3.12)
- ✅ 自动代码质量检查
- ✅ 安全扫描集成
**CI任务**:
- `test` - 单元测试和覆盖率
- `lint` - 代码质量检查
- `security` - 安全漏洞扫描
- `build` - 包构建验证
---
## 🔧 改进
### 代码质量
- ✅ 添加8个开发工具(black, flake8, mypy, pylint, isort等)
- ✅ 30个文件代码格式化统一
- ✅ 完整的配置文件(pyproject.toml, .flake8)
- ✅ 修复所有pytest警告
### 测试
- ✅ 改进测试结构,使用assert替代return
- ✅ 添加关键字段验证
- ✅ 8个测试全部通过,0警告
- ✅ 核心模块覆盖率70-100%
### 文档
- ✅ 新增4个详细改进文档
- ✅ 添加开发命令快速参考
- ✅ 提供功能演示脚本
- ✅ 完整的使用说明
---
## 📚 新增文档
1. **HIGH_PRIORITY_IMPROVEMENTS.md** - 高优先级改进详情
2. **MEDIUM_PRIORITY_IMPROVEMENTS.md** - 中优先级改进详情
3. **IMPROVEMENTS_SUMMARY.md** - 总体改进摘要
4. **DEV_COMMANDS.md** - 开发命令快速参考
5. **AGENTS.md** - 项目编码规范
---
## 📦 新增文件
### 核心模块
- `core/exceptions.py` - 自定义异常类系统
### 工具模块
- `utils/rate_limiter.py` - 请求限流器
- `utils/metrics.py` - 性能监控指标
### 配置文件
- `.flake8` - flake8配置
- `.github/workflows/ci.yml` - CI/CD配置
### 示例
- `examples/demo_improvements.py` - 功能演示脚本
---
## 🔄 变更
### 修改的文件 (24个)
- 核心模块: 5个文件
- 系统模块: 9个文件
- 传输层: 4个文件
- 工具模块: 3个文件
- 测试文件: 2个文件
- 配置文件: 1个文件
### 代码统计
- **新增**: ~1800行
- **修改**: ~1200行
- **删除**: ~400行
- **总计**: 35个文件变更
---
## 📊 性能提升
### 响应时间
| 场景 | v1.0.2 | v1.0.3 | 提升 |
|------|--------|--------|------|
| 首次调用 | 100ms | 100ms | - |
| 重复调用 | 100ms | ~5ms | **95%** ✅ |
| 并发稳定性 | 中等 | 高 | ✅ |
### 安全性
- ✅ 请求限流保护
- ✅ 客户端隔离
- ✅ 自动清理机制
- ✅ 标准化错误响应
### 可观测性
- ✅ 实时性能统计
- ✅ 详细方法追踪
- ✅ 错误分类分析
---
## 🔧 开发工具
### 新增工具
```bash
# 代码格式化
black .
isort .
# 代码检查
flake8 .
mypy .
pylint *.py
# 测试
pytest -v
pytest --cov=. --cov-report=html
```
### 配置文件
- `pyproject.toml` - 所有工具的集中配置
- `.flake8` - flake8专用配置
---
## 🚀 升级指南
### 从 v1.0.2 升级到 v1.0.3
```bash
# 1. 升级包
pip install --upgrade mingli-mcp
# 2. 如果使用HTTP传输,需要配置限流(可选)
# 环境变量方式
export RATE_LIMIT_ENABLED=true
export RATE_LIMIT_REQUESTS=100
export RATE_LIMIT_WINDOW=60
# 或者代码方式
from transports import HttpTransport
transport = HttpTransport(
enable_rate_limit=True,
rate_limit_requests=100,
rate_limit_window=60
)
```
### 兼容性说明
- ✅ 完全向后兼容
- ✅ 所有现有API保持不变
- ✅ 新功能默认启用,可选择关闭
- ✅ 无需修改现有代码
---
## 🐛 修复
- ✅ 修复pytest测试警告
- ✅ 改进异常错误信息
- ✅ 统一代码格式
- ✅ 修复导入顺序问题
---
## 📝 已知问题
### 非关键问题
1. lib目录中的第三方代码有一些flake8警告(不影响功能)
2. setuptools deprecation警告(将在未来版本修复)
### 解决方案
这些问题已在计划中,将在下一个版本解决。
---
## 🎯 下一步计划
### v1.1.0 计划
1. 添加更多单元测试(目标覆盖率80%+)
2. 实现Prometheus metrics导出
3. 添加请求追踪功能
4. 配置热重载支持
---
## 🙏 贡献者
感谢所有贡献者的辛勤付出!
- @spyfree - 项目维护者
- factory-droid[bot] - 代码审查和改进建议
---
## 📞 支持
- **PyPI**: https://pypi.org/project/mingli-mcp/1.0.3/
- **GitHub**: https://github.com/spyfree/mingli-mcp
- **Issues**: https://github.com/spyfree/mingli-mcp/issues
- **Documentation**: 查看项目README和改进文档
---
## ⚡ 快速开始
```bash
# 安装
pip install mingli-mcp==1.0.3
# 运行测试
python -m pytest
# 查看演示
python examples/demo_improvements.py
# 查看文档
cat IMPROVEMENTS_SUMMARY.md
```
---
**这是一个重大更新版本,强烈建议所有用户升级!**
**发布状态**: ✅ 已发布
**PyPI地址**: https://pypi.org/project/mingli-mcp/1.0.3/
**GitHub Tag**: v1.0.3