mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-15 17:30:13 +08:00
- Add tests/integration/ directory with fixtures/ - Create echo_mcp_server.py for MCP testing - Create test_mcp_integration.py with basic tests - Fix bug in MCP client: use stdio_transport instead of _streams_context - Add examples/abp_demo.py demonstrating ABP protocol - Update openspec with integration tests change
3.2 KiB
3.2 KiB
AstrBot 开发任务
当前最高优先级
1. 实践验证 - 让架构真正工作 (P0)
状态: 进行中
架构必须经过实际验证,不能只是"代码通过测试"。以下是已验证和待验证项目:
✅ 已验证 (84 tests passed)
| 组件 | 验证方式 | 结果 |
|---|---|---|
| Orchestrator | test_bootstrap.py |
✓ 正常创建所有协议客户端 |
| ABP Client | test_bootstrap.py |
✓ Star 注册/注销/调用正常 |
| Gateway | test_bootstrap.py |
✓ 启动在 0.0.0.0:8765 |
| WebSocketManager | test_bootstrap.py |
✓ anyio.Lock 已修复 |
| MCP Client | test_architecture_compliance.py |
✓ 使用 anyio.Lock |
| 架构合规测试 | pytest | ✓ 11 passed |
⚠ 需要修复 (anyio 违规)
| 组件 | 问题 | 状态 |
|---|---|---|
lsp/client.py |
使用 asyncio.create_subprocess_exec |
待修复 |
lsp/client.py |
使用 asyncio.Future |
待修复 |
🔍 待验证
| 组件 | 验证方式 | 状态 |
|---|---|---|
| MCP Client | 连接本地 MCP 服务器并调用工具 | 待验证 |
| ACP Client | 连接 ACP 服务并通信 | 待验证 |
| LSP Client + python-lsp-server | 接入标准 LSP 服务器 | 待验证 |
| ty LSP | ty server 不支持标准 LSP 协议 | 不适用 |
2. ABP 协议示例开发 (P0)
目标: 开发一个可运行的 ABP 协议演示
计划:
- 创建
examples/abp_demo.py - 演示:
- 创建 Orchestrator
- 注册一个 mock star
- 通过 ABP client 调用 star 工具
- 验证结果
状态: 待开始
3. 将项目工具转为 MCP 服务器 (P1)
目标: 将 builtin_tools (cron_tools, kb_query, send_message) 暴露为 MCP 服务器
待验证:
- MCP client 能否连接到本地 MCP 服务器
- 工具调用是否正常工作
已完成任务
✅ anyio 违规修复 (完成)
orchestrator.py:asyncio.sleep→anyio.sleep,asyncio.CancelledError→anyio.get_cancelled_exc_class()mcp/client.py:asyncio.Lock→anyio.Lock,asyncio.Event→anyio.Eventlsp/client.py: import 排序修复gateway/server.py: 删除死代码asyncio.Task和import asynciogateway/ws_manager.py:asyncio.Lock→anyio.Lock
✅ 架构合规测试 (完成)
test_architecture_compliance.py: 11 个测试全部通过- 总计: 84 passed, 0 failed
✅ Bootstrap 集成测试 (完成)
test_bootstrap.py: 验证所有组件可正常创建和交互
技术债务
-
LSP Client 使用 asyncio
lsp/client.py使用asyncio.create_subprocess_exec和asyncio.Future- 需要重构为 anyio
- 影响: LSP 功能不可用
-
ty LSP 服务器不兼容
- ty server 启动但不支持标准
initialize请求 - 需要使用 python-lsp-server 进行测试
- ty server 启动但不支持标准
-
测试:
tests/test_dashboard.py::test_auth_login失败- 错误:
AttributeError: 'FuncCall' object has no attribute 'register_internal_tools' - 需要在 FuncCall 添加 register_internal_tools 方法或修复引用
- 错误:
端口说明
| 服务 | 端口 | 状态 |
|---|---|---|
| Gateway (FastAPI) | 8765 | ✓ 已验证可启动 |
| WebSocket | /ws | ✓ 已验证 |
| Dashboard | 6185 (推测) | 待验证 |