fix(Phase 3): Evolver force=True bypass flag + 清理未使用 import
- run_evolver(force=True):管理員手動端點可繞過 feature flag - 移除 typing.Any 未使用 import - 移除 _merge_similar 中冗餘的 calculate_jaccard_similarity import ADR-083 Phase 3 — 2026-04-15 ogt + Claude Sonnet 4.6(亞太) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -25,7 +25,6 @@ from __future__ import annotations
|
||||
import asyncio
|
||||
from dataclasses import dataclass, field
|
||||
from datetime import timedelta
|
||||
from typing import Any
|
||||
|
||||
import structlog
|
||||
|
||||
@@ -65,10 +64,13 @@ class EvolverReport:
|
||||
# Main Entry Point
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
async def run_evolver() -> EvolverReport:
|
||||
async def run_evolver(force: bool = False) -> EvolverReport:
|
||||
"""
|
||||
執行 Evolver Agent 全流程。
|
||||
|
||||
Args:
|
||||
force: True 時跳過 feature flag 檢查(供管理員手動觸發端點使用)
|
||||
|
||||
Returns:
|
||||
EvolverReport(包含所有操作結果)
|
||||
|
||||
@@ -77,7 +79,7 @@ async def run_evolver() -> EvolverReport:
|
||||
"""
|
||||
from src.core.feature_flags import aiops_flags
|
||||
|
||||
if not aiops_flags.AIOPS_P3_EVOLVER_ENABLED:
|
||||
if not force and not aiops_flags.AIOPS_P3_EVOLVER_ENABLED:
|
||||
logger.debug("evolver_skipped", reason="AIOPS_P3_EVOLVER_ENABLED=False")
|
||||
return EvolverReport()
|
||||
|
||||
@@ -209,7 +211,6 @@ async def _merge_similar(playbooks: list[Playbook], report: EvolverReport) -> No
|
||||
合併次數上限 MAX_MERGE_PER_RUN,避免單次操作影響太多。
|
||||
"""
|
||||
from src.services.playbook_service import get_playbook_service
|
||||
from src.utils.similarity import calculate_jaccard_similarity
|
||||
|
||||
service = get_playbook_service()
|
||||
merged_set: set[str] = set() # 已合併(或被合併)的 playbook_id
|
||||
|
||||
Reference in New Issue
Block a user