mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-16 17:47:06 +08:00
75 lines
1.8 KiB
Markdown
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
|