#232·ChatLab

iMessage 导入格式覆盖不足:语音/Tapback/贴纸等类型静默丢失

Author: Ghost-Sam1222Created Jun 19, 2026Updated Jun 30, 2026
Labelsfeature

背景

ChatLab README 已将 iMessage 列为支持平台,但当前 v0.0.2 schema 的消息类型仅有:

type 含义
0 文本
1 图片
3 视频
4 文件

而 iMessage 实际包含的消息类型远多于此。以 imessage-exporter 对 chat.db 的诊断为例(23,922 条消息,838 个会话),存在以下 gap:

iMessage 存在但 ChatLab 无法承载的类型

iMessage 类型 说明 ChatLab 现状
语音消息 (CAF) iMessage 内置录音发送 ❌ type 枚举无槽位,导入后静默丢失
Tapback(❤️ 等) 对某条消息的快捷 reaction ❌ 无法表达「谁对哪条消息做了什么 reaction」语义
贴纸 (Sticker) iMessage 贴纸包 ❌ 丢失
消息特效 (Message Effect) 气球、烟花等全屏效果 ❌ 丢失
已编辑消息 iMessage 支持编辑已发消息 ⚠️ 编辑历史可能丢失

此外 #170 提到即使 type 1/3/4 已定义,导入后图片和媒体也仅显示相对路径,无法实际查看。

期望

  1. 覆盖缺失的消息类型:至少为语音和 Tapback 增加 type 定义,或提供一个 unknown / fallback 兜底类型,避免静默丢弃
  2. 保持语义:Tapback 应能表达「谁对哪条消息做了什么 reaction」,而非降级为纯文本
  3. 统一媒体路径问题(关联 #170):确保附件文件能被 ChatLab 正确读取展示

参考