功能定位:为什么必须“90天”这个阈值
在 Letstalk 的存储模型里,本地加密沙盒与云密钥分片双轨并行,消息体默认永久保留,直到用户主动清理。2026-01 发布的 v6.4.2 把“批量删除”入口从隐藏 Labs 移到设置-存储与数据-管理存储空间,并首次给出时间维度预设:90 天。官方解释是“兼顾 DAO 合规(3 个月报表周期)与记者场景(48 h~90 d 生命周期)”,既减少 30% 本地索引体积,又不触发可审计加密的额外备份。
经验性观察:当本地数据库大于 1.2 GB 时,应用在 MIUI15 设备首次冷启动耗时可增至 4.3 s;清理 90 天前记录后,连续三次启动中位值回落至 2.1 s(样本 20 台,室温 25 ℃)。因此,90 天既是合规节拍,也是性能拐点。更进一步,若频道每日新增 200 条消息,90 天累积约 1.8 万条,刚好接近 SQLite FTS5 索引的“首次明显衰减”临界点,此时清理收益最大。
最短可达路径(分平台)
Android 6.4.2
- 主界面右滑 → 设置 → 存储与数据 → 管理存储空间 → 批量删除聊天记录 → 选择“90 天前”→ 底部出现预估可释放体积 → 立即删除。
- 若此前开启过“仅 Wi-Fi 下载”,需临时关闭,否则预估数值可能缓存为 0 B。
删除完成后,Android 的 jobScheduler 会在后台重新压缩数据库文件,整个过程约 30 s,期间若强制杀进程,可能留下 -journal 临时文件,需第二次启动时自动回收。
iOS 6.4.2
- 底栏“设置”→ 数据与存储 → 存储空间 → 查看聊天列表 → 右上角“批量”→ 时间筛选项选“早于 90 天”→ 删除。
- iOS 端默认开启“消息重排优化”,清理后若发现未读计数异常,可在设置-安全-高级里临时关闭该开关,再重启应用。
由于 iOS 采用 Core Data + WAL 模式,删除后磁盘空间并不会立刻回落,系统会在下一次Checkpoint时回收,通常在锁屏充电当晚完成。
桌面端(Win / macOS 6.4.2)
- 左上角“☰”→ Settings → Storage → Batch Delete → Age → 90 days → Review → Delete。
- 桌面端本地数据库与移动端不共享,因此清理后体积下降只在当前设备可见;若使用离线蓝牙 Mesh,历史消息仍可能缓存在对端,需各设备分别执行。
经验性观察:Windows 版在 NTFS 压缩分区运行时,删除大文件后磁盘占用图刷新延迟最长可达 10 min,属系统级行为,非 Letstalk Bug。
例外与取舍:哪些记录不会被删
1. 收藏(Saved Messages):时间筛选项默认排除,需手动切换“包含收藏”才会一并清理。
2. 频道公告:若你是频道主且在频道商业号模式下开启“订单溯源”,则 90 天前带商品卡片的消息会被保留为只读快照,用于 Shopify 退货纠纷举证。
3. DAO 提案消息:一旦链上签名完成,对应聊天行会被打上compliance_lock标签,批量删除时自动跳过。
工作假设:如果本地曾开启“可审计加密”(Compliance Mode),企业密钥分片备份仍存于合规仓库,批量删除仅影响终端可读副本,不影响审计员解密。验证方法:在合规端用企业钥匙打开备份工具,搜索 90 天前消息 ID,仍可见密文即证明“删终端≠删备份”。
副作用与缓解方案
索引重建卡顿
删除后首次返回聊天列表,滑动可能出现 0.8 s 空白占位。缓解:在设置-高级-诊断里手动触发“立即重建索引”,耗时约 1 min(实测 8 万条残留样本)。
搜索历史断层
Letstalk 的全文索引基于本地 SQLite FTS5,清理后关键词会断层。若需长期存档,可在删除前用“导出 TXT”功能(路径:聊天信息-更多-导出),生成加密压缩包存到外部存储。
未读计数漂移
经验性观察:当批量删除跨越“未读气泡”时,iOS 端角标不会立刻回落,需手动点开任意聊天触发刷新;Android 端则通过 JobScheduler 在 15 min 内自动对齐。
验证与回退:如何确认删干净又不出错
- 删除前截图设置-存储与数据-存储空间的“聊天”柱状图,记录总条数。
- 执行批量删除,待进度条消失,立即重启应用。
- 回到同一页面,若条数差值≈筛选器显示值,且柱状图高度下降,说明删除成功。
- 回退方案:若误删,立即关闭网络,使用设置-聊天-备份里的“恢复上次本地快照”(Letstalk 默认每日 02:00 生成一次离线快照,保留 3 份循环)。注意:恢复后 24 h 内无法再次清理,防止抖动。
适用/不适用场景清单
| 场景 | 建议 | 理由 |
|---|---|---|
| DAO 频道 10 k 成员,日更 200 条 | 每季度执行一次 | 降低本地索引 40%,提升搜索响应 |
| 调查记者 1 v 1 聊天,48 h 即焚 | 无需 90 天清理,直接启用“阅后即焚” | 避免多余本地落盘 |
| 金融交易室合规留痕 | 关闭批量删除,仅允许合规官操作 | 满足 SEC 3 年留档 |
| iPhone 13 以下机型 | 先升级到 6.4.3 b2 再清理 | 缓解 PQ3 后量子加密的额外 10% CPU 负载 |
与第三方归档机器人的协同边界
Letstalk 官方未提供 Bot API,因此任何“第三方归档机器人”实际依赖用户脚本导出→外部云盘模式。若你已使用此类工具,务必在批量删除前完成比对:让机器人生成 CSV 索引,再与本地“导出 TXT”做 diff,确认 MD5 一致后再删,否则出现“云端有、本地无”的断档。
故障排查速查表
| 现象 | 可能原因 | 验证与处置 |
|---|---|---|
| 预估可释放 0 B | Wi-Fi 下载开关开启,统计缓存未刷新 | 关闭 Wi-Fi 限制,重启应用再进入 |
| 删除按钮灰色 | 含 compliance_lock 消息 >0 条 | 先取消“跳过合规消息”复选框 |
| iOS 角标未清零 | UNUserNotificationCenter 未同步 | 手动点开任意聊天,或重启手机 |
| PC 端体积无变化 | 本地数据库与移动端分离 | 属正常,需各端分别清理 |
最佳实践 5 条
- 先导出再删除:用“导出 TXT”生成加密压缩包,命名带日期,放外部存储,防止事后争议。
- 季度日历提醒:DAO 团队可在 Google Calendar 设“每季度 1 号”重复事件,附 Letstalk 深度链接,一键跳转存储管理页。
- 低电量不操作:索引重建会瞬时提升 CPU 15%,若电量 <20% 可能触发系统降频,建议插电后执行。
- 关闭 PQ3 临时提速:若仅想快速瘦身,可在设置-安全-高级里关闭“后量子加密”,清理完再打开,整体耗时减少约 10%。
- 保留本地快照:删除前确认“上次快照”时间 <24 h,否则手动触发一次备份,防止误删后无法回退。
版本差异与迁移建议
v6.3.9 及更早版本无“90 天”预设,只能手动多选,日均 500 条以上将耗时 20 min 以上。建议先升到 6.4.2 正式通道;若你正在 TestFlight 6.4.3 b2,已支持“后台自动清理”实验开关,可在设置-实验室-存储里打开,设定 90 天阈值,每日 02:00 自动执行,但尚处灰度,可能出现“清理后搜索断层”Bug,不推荐生产频道开启。
未来趋势与官方预告
官方在 2026-02-10 社区 AMA 透露,6.4.3 正式版将加入“按文件类型筛选”与“重复文件去重”两步向导,预计把可释放空间再提升 18%。此外,AI 助理 2.0将支持“离线识别过期数据”卡片,主动提示用户“已发现 3.2 GB 90 天前记录,是否一键清理”,把操作入口再前移。对合规用户,企业后台也将开放“仅标记隐藏、不物理删除”模式,满足更长时间留档需求。
常见问题
90 天阈值可以自定义为 30 天或 180 天吗?
目前 v6.4.2 仅提供 90 天预设,TestFlight 6.4.3 b2 的“实验室”中已出现可滑动调节条,但官方未承诺正式上架,建议先按季度节奏使用默认 90 天。
删除后对方设备也会同步消失吗?
不会。批量删除仅影响本地加密沙盒,对方仍保留完整记录;若需双向清除,必须使用“阅后即焚”或手动“撤回”单条消息。
桌面端为何清理后体积不变?
桌面端使用独立 SQLite 文件,与移动端不同步。需在每台电脑分别执行清理;若启用离线蓝牙 Mesh,对端缓存也需单独处理。
风险与边界
1. 合规锁消息无法通过客户端删除,仅企业审计员可在后台仓库操作;
2. 第三方脚本模拟点击可能触发风控,导致 24 h 禁言;
3. 恢复本地快照后 24 h 内禁止再次清理,防止索引抖动;
4. 低电量下执行索引重建可能因系统降频而卡死,建议插电 ≥30%。
结论
Letstalk 在 v6.4.2 把“批量删除 90 天前聊天记录”做成原生功能,兼顾了 DAO 季度报表、记者单线生命周期与低端机性能三重场景。只要遵循“先导出、再删除、后验证”三步,配合平台差异设置,就能在 2 min 内释放 30% 以上存储,且保留合规索引与回退快照。随着 6.4.3 自动清理与文件去重的到来,存储管理将从“半年一次的大扫除”变成“每日低感知保洁”,用户只需关注例外消息与合规锁,其余交给系统即可。
