From 1644fe64745b0ca1581cd8d1ec979563b406210b Mon Sep 17 00:00:00 2001 From: OG T Date: Mon, 6 Apr 2026 14:39:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(api):=20auto=5Frepair=5Fservice=20?= =?UTF-8?q?=E6=95=B4=E5=90=88=20repair=5Fby=5Furi=20(Sprint=203=20T6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- apps/api/src/services/auto_repair_service.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/apps/api/src/services/auto_repair_service.py b/apps/api/src/services/auto_repair_service.py index 2c45b4e1..119a9815 100644 --- a/apps/api/src/services/auto_repair_service.py +++ b/apps/api/src/services/auto_repair_service.py @@ -497,19 +497,16 @@ class AutoRepairService: logger.warning("action_executor_not_available") return "SKIPPED (executor not available)" - # 2026-04-05 Claude Code: SSH_COMMAND — 主機層修復 (Sprint 3 Host Auto-Repair) + # 2026-04-06 Claude Code: Sprint 3 — repair_by_uri (URI scheme 路由) if step.action_type == ActionType.SSH_COMMAND: from src.services.host_repair_agent import HostRepairAgent agent = HostRepairAgent() - # step.command 格式: "/" 例如 "docker-110/sentry" - try: - layer, component = step.command.split("/", 1) - except ValueError: - return f"FAILED: invalid ssh_command format '{step.command}' (expected layer/component)" - result = await agent.repair(layer=layer, component=component) + approved = not getattr(step, "requires_approval", False) + result = await agent.repair_by_uri(step.command, approved=approved) if result.success: return f"SUCCESS: {result.output}" - return f"FAILED: {result.error}" + else: + return f"FAILED: {result.error}" return "UNKNOWN_ACTION_TYPE"