# 任务：重构历史记录与上下文管理（破坏性拆除与重建）

## 1. 目标
彻底移除旧的 `analysis_results` 表及其相关基础设施，建立基于 `workflow_history` + `VGCS` 的新一代历史记录与上下文管理系统。

## 2. 执行策略
**破坏性拆除 (Destructive Refactoring)**：直接删除数据库表定义，依靠编译器报错和搜索工具定位并清除所有相关代码，确保不留死代码。

## 3. 详细步骤

### 阶段一：破坏性拆除 (Demolition)

1.  **数据库层**
    *   删除 `analysis_results` 表的 SQL 定义 (Migration)。
    *   创建新的 Migration：`DROP TABLE analysis_results;`。
    *   删除 `AnalysisResult` 相关的 Model 定义 (`services/data-persistence-service/src/models.rs`, `common-contracts`).

2.  **持久化服务层 (Data Persistence Service)**
    *   删除 `src/api/analysis.rs` (API Handler)。
    *   删除 `src/db/analysis_results.rs` (DB Access)。
    *   清理 `src/api/mod.rs` 路由注册。

3.  **公共契约层 (Common Contracts)**
    *   删除 `AnalysisResultDto`, `NewAnalysisResult` 等 DTO。
    *   删除 `PersistenceClient` 中的 `create_analysis_result`, `get_analysis_results` 方法。

4.  **生产者层 (Report Generator Service)**
    *   移除 `worker.rs` 中调用 `create_analysis_result` 的代码。
    *   **保留**：文件写入 VGCS 的逻辑（这是我们新方案的基础）。

5.  **网关与前端层 (API Gateway & Frontend)**
    *   移除 API Gateway 中 `/analysis-results` 的转发。
    *   前端相关调用代码暂时注释或标记为 TODO (待对接新接口)。

### 阶段二：基础设施重建 (Reconstruction)

1.  **数据库层**
    *   新建 `workflow_history` 表。
    *   Schema 定义：
        ```sql
        CREATE TABLE workflow_history (
            request_id UUID PRIMARY KEY,
            symbol VARCHAR(20) NOT NULL,
            market VARCHAR(10) NOT NULL,
            template_id VARCHAR(50),
            status VARCHAR(20) NOT NULL,
            start_time TIMESTAMPTZ NOT NULL,
            end_time TIMESTAMPTZ,
            snapshot_data JSONB NOT NULL -- 包含 DAG 结构、Commit Hash、Artifact Paths
        );
        ```

2.  **公共契约层 (Common Contracts)**
    *   定义 `WorkflowHistoryDto` 和 `WorkflowSnapshot` 结构。
    *   更新 `PersistenceClient`，增加 `create_workflow_history` 和 `get_workflow_history` 方法。

3.  **持久化服务层 (Data Persistence Service)**
    *   实现 `src/api/history.rs` 和 `src/db/history.rs`。
    *   支持按 `request_id` 查询详情，按 `symbol`/`template_id` 查询列表。

### 阶段三：编排与集成 (Orchestration & Integration)

1.  **Orchestrator Service**
    *   **收集逻辑**：修改 `handle_task_completed`，从 Task Result 中收集 `artifact_paths` 和 `commit_hash`。
    *   **结束逻辑**：实现 `finalize_workflow`。
        *   当工作流结束时，构建 `WorkflowSnapshot`。
        *   调用 `persistence-service` 写入 `workflow_history`。

2.  **Frontend**
    *   重写 `useHistory` Hook，对接 `/api/v1/history`。
    *   重写 `ReportPage`，使用 Snapshot 中的 Commit Hash + Path 通过 VGCS API 获取报告内容。

## 4. 验证标准
1.  **编译通过**：所有服务无 `analysis_results` 相关报错。
2.  **数据纯净**：数据库中无 `analysis_results` 表，只有 `workflow_history`。
3.  **功能正常**：
    *   运行一个 Workflow，能在“历史记录”页看到**一条**记录。
    *   点击进入详情，能正确加载各步骤的报告文件（从 VGCS）。

## 5. 注意事项
*   这是一个 Breaking Change，执行期间历史数据会不可见（直到前端适配新接口）。
*   VGCS 的读取接口 (`read_file`) 需要确保可用性，供前端/网关调用。

