diff --git a/RELEASE.md b/RELEASE.md index 5e9a596..994a488 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,3 +1,131 @@ +# v1.1.8 + +## 🚀 主要功能 + +### ⚡ Polymarket Activity WebSocket 双重监听方案 + +- **新增 PolymarketActivityWsService**:通过 Activity WebSocket 实时监听 Leader 交易 + - 延迟 < 100ms,适合快速跟单场景 + - 订阅全局 activity 交易流,客户端过滤 Leader 地址 + - 支持动态添加/移除 Leader 监听 + - 地址筛选忽略大小写,提高匹配准确性 + +- **双重监听机制**: + - Activity WebSocket(低延迟,< 100ms):作为主要监听方式 + - On-Chain WebSocket(高可靠性,~2-3s):作为兜底监听方式 + - 自动去重,避免重复处理同一笔交易 + +- **协议支持**: + - 支持 `connection_id` 字段 + - 优先使用消息中的 `outcomeIndex` 字段,fallback 到从 `outcome` 解析 + +- **参考文档**: + - [双重监听方案文档](docs/zh/copy-trading-dual-monitoring-plan.md) + - [Activity WebSocket API 文档](docs/zh/polymarket-activity-websocket-api.md) + +### 🔧 支持同一用户创建多个相同 Leader 的跟单配置 + +- **移除唯一约束**:允许同一用户创建多个跟单同一个 Leader 的配置 +- **应用场景**:支持不同参数(比例、过滤条件等)的多配置跟单 +- **数据库迁移**:`V23__remove_unique_constraint_from_copy_trading.sql` + +### 🎯 市场截止时间筛选功能 + +- **新增市场截止时间过滤**:支持设置跟单配置的最大市场截止时间 +- **自动过滤过期市场**:系统会自动跳过超过设定截止时间的市场 +- **数据库字段**:`max_market_end_date`(时间戳,单位:秒) +- **数据库迁移**:`V22__add_max_market_end_date_to_copy_trading.sql` + +### 🔍 关键字过滤功能 + +- **新增关键字过滤**:支持在黑名单或白名单模式下过滤市场标题关键字 +- **过滤模式**: + - `DISABLED`:禁用关键字过滤 + - `BLACKLIST`:黑名单模式(包含关键字的市场会被过滤) + - `WHITELIST`:白名单模式(只允许包含关键字的市场) +- **多关键字支持**:支持多个关键字,以 JSON 数组格式存储 +- **数据库字段**:`keyword_filter_mode` 和 `keywords`(JSON 数组) +- **数据库迁移**:`V20__add_keyword_filter.sql` + +### 📊 订单列表功能重构 + +- **按市场分组显示**:订单列表按市场分组,便于查看和管理 +- **市场信息展示**: + - 显示市场标题和 slug + - 支持跳转到 Polymarket 市场页面 + - 显示市场基本信息(标题、slug、截止时间等) +- **订单 ID 复制功能**:一键复制订单 ID,方便查询和调试 +- **UI/UX 优化**: + - 优化订单列表展示样式 + - 改进移动端适配 + +### 📈 市场信息管理和缓存优化 + +- **新增 MarketService**:统一管理市场信息查询和缓存 + - 使用 LRU 缓存提高查询性能 + - 支持从 Gamma API 和 CLOB API 查询市场信息 + - 自动缓存市场信息,减少 API 调用 +- **新增 Market 实体和表**:持久化存储市场信息 + - 存储市场标题、slug、eventSlug、endDate 等基本信息 + - 支持通过 marketId 快速查询市场信息 +- **数据库迁移**: + - `V19__create_markets_table.sql`:创建市场信息表 + - `V21__add_event_slug_to_markets.sql`:添加 eventSlug 字段 +- **市场信息轮询服务**:定期更新市场信息,保持数据新鲜度 + +## 🐛 Bug 修复 + +### 前端 TypeScript 类型错误修复 + +- **修复 InputNumber parser 类型错误**:`parser` 函数应返回 `number` 而不是 `string` +- **修复文件**: + - `src/pages/CopyTradingOrders/AddModal.tsx` + - `src/pages/CopyTradingOrders/EditModal.tsx` + +## 📝 文档更新 + +- **新增双重监听方案文档**:详细说明 Activity WebSocket 和 On-Chain WebSocket 的双重监听机制 +- **新增 Activity WebSocket API 文档**:详细的 API 格式和消息结构说明 +- **更新开发规范**:JSON 解析规范和 Data Class 规范 + +## 📊 统计信息 + +- **61 个文件被修改** +- **+5125 行新增代码** +- **-1942 行删除代码** +- **净增加 3183 行代码** + +## 🔄 主要提交 + +``` +d376a82 feat: 添加市场信息管理和订单ID复制功能 +2af2c0e feat: 订单列表按市场分组并支持跳转到Polymarket +9ed5190 feat: 添加关键字过滤功能并优化市场 slug 处理 +0327eaf feat: 添加市场截止时间筛选功能 +a16b6fc feat: 支持同一用户创建多个相同 leader 的跟单配置 +19508dc feat: 实现 Polymarket Activity WebSocket 双重监听方案 +``` + +## 🎯 升级建议 + +1. **数据库迁移**:确保执行所有数据库迁移脚本(V19-V23) +2. **配置更新**:新版本的 `application.properties` 中添加了 Activity WebSocket URL 配置 +3. **环境变量**:如果使用 Docker 部署,建议更新 `docker-compose.yml` 中的配置 + +## 📦 Docker 镜像 + +Docker 镜像会自动构建并推送到 Docker Hub: +- `wrbug/polyhermes:v1.1.8` +- `wrbug/polyhermes:latest`(如果这是最新版本) + +## 🔗 相关链接 + +- [GitHub Release](https://github.com/WrBug/PolyHermes/releases/tag/v1.1.8) +- [双重监听方案文档](docs/zh/copy-trading-dual-monitoring-plan.md) +- [Activity WebSocket API 文档](docs/zh/polymarket-activity-websocket-api.md) + +--- + # v1.1.7 ## 🚀 主要功能