1. **分析与方案制定**
    - [x] 发现“系统任务自愈”功能无法按预期工作。
    - [x] 深入分析发现根源在于 `PlanRepository.UpdatePlan` 函数的设计缺陷（名不副实，部分更新）。
    - [x] 制定了包含代码重构的最终方案，以从根本上解决问题。

2. **文档更新**
    - [x] 新建 `design.md` (已合并入 `proposal.md`)，详细记录问题分析、设计决策和重构方案。
    - [x] 更新 `proposal.md` 以反映最终的、包含重构的变更范围。
    - [x] 更新 `tasks.md` 任务列表。

3. **代码重构与修改**
    - [x] **重构 `plan_repository.go`**:
        - [x] 将 `UpdatePlan` 接口和实现重命名为 `UpdatePlanMetadataAndStructure`。
        - [x] 创建一个新的、使用 `Save` 实现全字段更新的 `UpdatePlan` 函数。
    - [x] **修正 `data_initializer.go`**:
        - [x] 将对旧 `UpdatePlan` 的调用修改为 `UpdatePlanMetadataAndStructure`。
        - [x] 保留并确认后续调用 `UpdatePlanStatus` 的逻辑，以完成状态恢复。

4. **测试与验证**
    - [x] **场景一：系统任务失败**
        - [x] 手动将 `PlanNameTimedFullDataCollection` 计划在数据库中的状态修改为 `failed`。
        - [x] 重启应用。
        - [x] 验证该计划的状态是否已自动恢复为 `enabled`。
    - [x] **场景二：系统任务被停止**
        - [x] 手动将 `PlanNameTimedFullDataCollection` 计划在数据库中的状态修改为 `stopped`。
        - [x] 重启应用。
        - [x] 验证该计划的状态是否已自动恢复为 `enabled`。
    - [x] **场景三：回归测试 `plan_service`**
        - [x] (可选) 通过 API 调用更新一个普通计划，确认其所有字段（包括状态）都能被正确更新。
