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"