fix(mcp): tag legacy provider calls with audit context
This commit is contained in:
@@ -1,3 +1,33 @@
|
||||
## 2026-05-06 | MCP legacy provider 路徑補上飛輪稽核脈絡
|
||||
|
||||
**背景**:AwoooP MCP Gateway 已有五閘門與 gateway audit,但 production 仍有多條 legacy caller 直接走 ProviderRegistry 或 provider wrapper。硬切 Gateway 會因 contract/grant 尚未覆蓋所有路徑而造成修復鏈中斷,因此本輪先做「不改語義的稽核包裝」。
|
||||
|
||||
**本次修補**:
|
||||
- 新增 `mcp_audit_context.py`,統一產生 `_mcp_audit` 脈絡,保留 `session_id`、`incident_id`、`flywheel_node`、`agent_role`、`gateway_path`。
|
||||
- `PreDecisionInvestigator` MCP 感官蒐集注入 `flywheel_node=sense`。
|
||||
- `PostExecutionVerifier` 執行後驗證注入 `flywheel_node=verify`。
|
||||
- `CallbackDispatcher` Telegram 操作按鈕注入 `flywheel_node=operate` 與 `operator_user_id`。
|
||||
- `MCPBridge` legacy bridge 注入 `gateway_path=legacy_mcp_bridge`。
|
||||
- `HeartbeatReportService` 的 K8s / Velero probe 改用 `AuditedMCPToolProvider`,讓系統報告也留下 govern 稽核軌跡。
|
||||
|
||||
**策略**:
|
||||
- 這不是最終 enforcement。它先讓所有 legacy production path 可觀測、可追蹤,下一步才依 AwoooP contract/grant 分 lane 切到 `McpGateway.call()`。
|
||||
|
||||
## 2026-05-06 | 111 Ollama 第三順位目前是網路不可達,不是 Router 跳過
|
||||
|
||||
**背景**:統帥指出 111 主機應該一直活著,但告警仍可能顯示 Gemini。重新用 live network path 驗證後,GCP-A / GCP-B 可從 K8s Pod 與本機存取,但 `192.168.0.111` 在多來源均不可達。
|
||||
|
||||
**現場證據**:
|
||||
- `awoooi-prod` Pod 連 `34.143.170.20:11434` 與 `34.21.145.224:11434` `/api/tags` 成功。
|
||||
- `awoooi-prod` Pod 連 `192.168.0.111:11434` timeout。
|
||||
- 本機連 `192.168.0.111:11434` timeout,SSH `192.168.0.111:22` timeout。
|
||||
- 110 / 120 / 121 / 188 對 `192.168.0.111` ping 100% loss,`nc 22` 回 `No route to host`,`curl 11434` 回 `No route to host` 或 timeout。
|
||||
- production log 顯示 provider order 仍是 `ollama_gcp_a → ollama_gcp_b → ollama_local → gemini`,且 GCP-A/GCP-B 都判定 healthy;`ollama_local` 被判為 offline 是網路事實,不是順序設定錯誤。
|
||||
|
||||
**判讀**:
|
||||
- 188 Ollama 已退場;`192.168.0.188:11434` 從 LAN / K8s 連線被拒絕,這是預期狀態。
|
||||
- 111 需要另行恢復 LAN reachability 或改走 mesh/proxy;在 111 不可達期間,第三順位無法提供備援,Gemini 仍只保留為 Ollama 全部失敗後的付費備援。
|
||||
|
||||
## 2026-05-06 | MCPToolResult 相容舊 provider 的 data alias
|
||||
|
||||
**背景**:AwoooP 整合風險 P0-D 指出部分 MCP provider 成功路徑仍使用 `MCPToolResult(data=...)`,但標準 dataclass 欄位是 `output` 且 `execution_id` 必填;Sentry / ArgoCD 等成功路徑可能因此在有效 API 回應後反而 crash。
|
||||
|
||||
Reference in New Issue
Block a user