refactor(api): Phase 16 R2 封存死代碼 + RiskLevel 統一
封存 (866 行): - routes/approvals.py → _archived/routes/ (477 行,未註冊死代碼) - services/approval.py → _archived/services/ (389 行,僅被死代碼使用) 合併 RiskLevel: - models/approval.py 新增 HIGH (從 trust_engine.py 合併) - trust_engine.py 改 import from models/approval.py - 保留舊定義為註解供回滾 更新 services/__init__.py: - 移除已封存模組的 import (註解保留回滾路徑) 驗證: - RiskLevel 統一: models 與 trust_engine 使用同一 class - 24 個 action_parsing 測試通過 回滾指令見 _archived/README.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
41
apps/api/src/_archived/README.md
Normal file
41
apps/api/src/_archived/README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Archived Code (Phase 16 R2)
|
||||
|
||||
> **封存日期**: 2026-03-25
|
||||
> **封存者**: Claude Code (Phase 16 R2)
|
||||
> **策略**: 絞殺者模式 (Strangler Fig Pattern)
|
||||
|
||||
---
|
||||
|
||||
## 封存原因
|
||||
|
||||
這些檔案已被新版本取代,但保留供參考與回滾。
|
||||
|
||||
### routes/approvals.py (477 行)
|
||||
- **取代者**: `api/v1/approvals.py`
|
||||
- **原因**: 未註冊到 main.py,屬於死代碼
|
||||
- **回滾**: 如需恢復,移回 `src/routes/` 並在 main.py 註冊
|
||||
|
||||
### services/approval.py (389 行)
|
||||
- **取代者**: `services/approval_db.py` + `services/approval_execution.py`
|
||||
- **原因**: 只被 routes/approvals.py 使用,隨之封存
|
||||
- **回滾**: 如需恢復,移回 `src/services/`
|
||||
|
||||
---
|
||||
|
||||
## 回滾指令
|
||||
|
||||
```bash
|
||||
# 回滾 routes/approvals.py
|
||||
git mv apps/api/src/_archived/routes/approvals.py apps/api/src/routes/approvals.py
|
||||
|
||||
# 回滾 services/approval.py
|
||||
git mv apps/api/src/_archived/services/approval.py apps/api/src/services/approval.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 清理時間表
|
||||
|
||||
- **封存**: 2026-03-25
|
||||
- **觀察期**: 30 天 (至 2026-04-25)
|
||||
- **正式刪除**: 觀察期後無問題可永久刪除
|
||||
@@ -43,10 +43,15 @@ class RiskLevel(str, Enum):
|
||||
|
||||
- LOW: 0 人,自動放行
|
||||
- MEDIUM: 需 1 人簽核
|
||||
- CRITICAL: 需 2 人 Multi-Sig 雙重簽核
|
||||
- HIGH: 需 1 人簽核 (信任引擎可降級至 MEDIUM)
|
||||
- CRITICAL: 需 2 人 Multi-Sig 雙重簽核 (永不降級)
|
||||
|
||||
變更紀錄:
|
||||
- 2026-03-25: 新增 HIGH (Phase 16 R2 合併自 trust_engine.py)
|
||||
"""
|
||||
LOW = "low"
|
||||
MEDIUM = "medium"
|
||||
HIGH = "high" # Phase 16 R2: 從 trust_engine.py 合併 (2026-03-25)
|
||||
CRITICAL = "critical"
|
||||
|
||||
|
||||
|
||||
@@ -1,23 +1,28 @@
|
||||
"""
|
||||
AWOOOI API Services
|
||||
|
||||
變更紀錄:
|
||||
- 2026-03-25 Phase 16 R2: 移除 .approval import (已封存至 _archived/)
|
||||
"""
|
||||
|
||||
from .approval import (
|
||||
RISK_MATRIX,
|
||||
ApprovalAlreadyDecidedError,
|
||||
# Exceptions
|
||||
ApprovalError,
|
||||
ApprovalNotFoundError,
|
||||
ApprovalState,
|
||||
ApprovalStatus,
|
||||
DuplicateSignatureError,
|
||||
InsufficientPermissionError,
|
||||
MultiSigEngine,
|
||||
Signature,
|
||||
TOCTOUConflictError,
|
||||
UserRole,
|
||||
multi_sig_engine,
|
||||
)
|
||||
# Phase 16 R2 (2026-03-25): 以下 import 已封存,原模組移至 _archived/services/approval.py
|
||||
# 回滾: 將 _archived/services/approval.py 移回,取消下方註解
|
||||
# from .approval import (
|
||||
# RISK_MATRIX,
|
||||
# ApprovalAlreadyDecidedError,
|
||||
# ApprovalError,
|
||||
# ApprovalNotFoundError,
|
||||
# ApprovalState,
|
||||
# ApprovalStatus,
|
||||
# DuplicateSignatureError,
|
||||
# InsufficientPermissionError,
|
||||
# MultiSigEngine,
|
||||
# Signature,
|
||||
# TOCTOUConflictError,
|
||||
# UserRole,
|
||||
# multi_sig_engine,
|
||||
# )
|
||||
|
||||
from .consensus_engine import (
|
||||
AgentOpinion,
|
||||
AgentType,
|
||||
@@ -54,21 +59,20 @@ __all__ = [
|
||||
"DryRunEngine",
|
||||
"DryRunResult",
|
||||
"dry_run_engine",
|
||||
# Multi-Sig
|
||||
"MultiSigEngine",
|
||||
"multi_sig_engine",
|
||||
"ApprovalState",
|
||||
"Signature",
|
||||
"UserRole",
|
||||
"ApprovalStatus",
|
||||
"RISK_MATRIX",
|
||||
# Exceptions
|
||||
"ApprovalError",
|
||||
"InsufficientPermissionError",
|
||||
"DuplicateSignatureError",
|
||||
"TOCTOUConflictError",
|
||||
"ApprovalNotFoundError",
|
||||
"ApprovalAlreadyDecidedError",
|
||||
# Phase 16 R2: Multi-Sig 已封存至 _archived/services/approval.py
|
||||
# "MultiSigEngine",
|
||||
# "multi_sig_engine",
|
||||
# "ApprovalState",
|
||||
# "Signature",
|
||||
# "UserRole",
|
||||
# "ApprovalStatus",
|
||||
# "RISK_MATRIX",
|
||||
# "ApprovalError",
|
||||
# "InsufficientPermissionError",
|
||||
# "DuplicateSignatureError",
|
||||
# "TOCTOUConflictError",
|
||||
# "ApprovalNotFoundError",
|
||||
# "ApprovalAlreadyDecidedError",
|
||||
# Trust Engine
|
||||
"TrustScoreManager",
|
||||
"trust_engine",
|
||||
|
||||
@@ -19,7 +19,7 @@ Phase 3.2: Progressive Autonomy
|
||||
import logging
|
||||
from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
# from enum import Enum # Phase 16 R2: 不再需要,RiskLevel 改從 models 導入
|
||||
from typing import Literal
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -27,13 +27,20 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
# ==================== Types ====================
|
||||
|
||||
# Phase 16 R2 (2026-03-25): RiskLevel 統一改從 models/approval.py 導入
|
||||
# 原因: 消除重複定義,統一風險等級來源
|
||||
# 執行者: Claude Code
|
||||
# 回滾: 取消註解下方區塊,移除 import
|
||||
from src.models.approval import RiskLevel
|
||||
|
||||
class RiskLevel(str, Enum):
|
||||
"""風險等級"""
|
||||
LOW = "low"
|
||||
MEDIUM = "medium"
|
||||
HIGH = "high"
|
||||
CRITICAL = "critical"
|
||||
# --- 以下為舊定義,已封存 (Phase 16 R2) ---
|
||||
# class RiskLevel(str, Enum):
|
||||
# """風險等級"""
|
||||
# LOW = "low"
|
||||
# MEDIUM = "medium"
|
||||
# HIGH = "high"
|
||||
# CRITICAL = "critical"
|
||||
# --- 封存結束 ---
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
Reference in New Issue
Block a user