Files
awoooi/apps/api/tests
OG T 208c28ed09
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 14m38s
feat(Phase 5 Sprint 5.2): Callback dispatcher 接入真實 MCP registry
dispatch_action() 升級:
- 從 Sprint 5.0 stub 升級為真實 MCP 調用
- internal provider: URL builder + authorization 記錄(不走 MCP)
- 其他 provider: from src.plugins.mcp.registry import get_provider → execute
- asyncio.wait_for 包 timeout_sec(按 spec 設定,每按鈕不同)

Graceful degradation:
- Provider 未註冊 → returns success=False + 'provider_not_found' 錯誤
- MCP returned success=False → reply 含錯誤訊息
- asyncio.TimeoutError → reply 「超時 Xs」+ log

新增 _handle_internal_action():
- build_signoz_url → https://signoz.wooo.work/services/{service}
- build_flywheel_url → https://awoooi.wooo.work/flywheel
- record_authorization → 24h 同源靜默確認

測試覆蓋 (26/26):
- 3 新 internal action tests (open_signoz/open_flywheel/secops_authorize)
- 1 MCP failure graceful test
- 既有 22 個保留(更新 2 個 Sprint 5.0 stub 測試為 Sprint 5.2 graceful)

Sprint 5.2 DOD:
 10 查類按鈕 dispatch 路徑完整
 3 internal actions 實作
 Graceful failure (no crash)
 asyncio.wait_for timeout 保護
 實際 end-to-end 測試(需 prod MCP providers 都註冊)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-14 20:43:40 +08:00
..