# 消息级溯源 P2 切读方案

> 决策：2026-06-28 — 一次性切读 + 脚本迁移历史数据

## 现状（2026-06-28 代码核查）

**P2 切读已完成**。上一阶段「批次 B」已经实现了读写路径切换：

### ✅ 读路径
`ai_conversation_switch` 已优先从 `ai_messages` 表加载（`list_by_conversation`），
空时 fallback 旧 `messages` JSON 列。见 `conversation.rs:257-282`。

### ✅ 写路径
`save_conversation` 已走 `AiMessageRepo.replace_conversation`（`DELETE + INSERT` 事务原子），
旧 messages JSON 列保留不写作备份。见 `conversation.rs` 中 `save_conversation` 实现。

### 剩余工作
- `ai_conversations.messages` 列标记废弃（暂不删列）
- 后续 V22 可选删除该列
