Files
AstrBot/openspec/TASKS.md

75 lines
1.8 KiB
Markdown

# AstrBot 开发任务
## 当前最高优先级
### 1. 修复 anyio 违规 (P0)
**问题**: 代码使用 asyncio 但 openspec 要求使用 anyio
需要修改的文件:
- `astrbot/_internal/runtime/orchestrator.py`:
- `asyncio.sleep``anyio.sleep`
- `asyncio.CancelledError``anyio.CancelledError`
- `astrbot/_internal/protocols/mcp/client.py`:
- `asyncio.Lock``anyio.Lock`
- `astrbot/_internal/protocols/abp/client.py`:
- `asyncio.Future``anyio.Future`
### 2. 实现 ABP 协议完整功能 (P0)
ABP (AstrBot Protocol) 是最终目标
已完成:
- ABPClient 基础实现
- star 注册/注销
- call_star_tool 调用
待完成:
- ABP 服务端实现
- 完整的协议序列化
- 错误处理和重连机制
### 3. 测试覆盖提升 (P1)
当前测试: 81 passed, 3 failed (anyio 违规)
目标:
- 增加 _internal 模块测试覆盖率
- 修复 anyio 违规测试
- 添加协议集成测试
### 4. 类型标注完善 (P1)
执行: `uvx ty check astrbot/_internal/`
当前问题:
- 避免使用 Any
- 避免使用 cast
- 完善 return type annotations
---
## 进行中的任务
### 迁移现有功能到 _internal
状态: 部分完成
已迁移:
- MCP client → `astrbot/_internal/protocols/mcp/`
- ABP client → `astrbot/_internal/protocols/abp/`
- ACP client → `astrbot/_internal/protocols/acp/`
- LSP client → `astrbot/_internal/protocols/lsp/`
- Tools → `astrbot/_internal/tools/`
待迁移:
- 完整的 star 系统
- Gateway 服务端
- Orchestrator 核心
---
## 技术债务
1. **测试**: `tests/test_dashboard.py::test_auth_login` 失败
- 错误: `AttributeError: 'FuncCall' object has no attribute 'register_internal_tools'`
- 需要在 FuncCall 添加 register_internal_tools 方法或修复引用
2. **代码风格**: ruff ASYNC110 警告
- orchestrator run_loop 使用 asyncio.sleep 而非 anyio