消息级溯源 P2 切读早前已覆盖主要读写路径(save_conversation 写 / switch/export/load_messages 读),但 knowledge_inject 的知识提炼 仍在读旧 ai_conversations.messages JSON 列,与 P2 切读目标不一致。 本次补全: - extract_knowledge_from_conversation 改为优先读 ai_messages 表 - 表空时 fallback 旧 messages JSON 列(老库兼容,对齐 switch 路径) - 复用 commands::record_to_message 映射函数(DRY,与其他读路径同源) 至此消息溯源 P2 切读全部完成,所有读写路径统一走 ai_messages 表, 旧 messages JSON 列仅作老库兼容 fallback,不再写入。