外观
Day 6:消息变更、搜索与富媒体
当日成果
在稳定消息核心上增加编辑、撤回、reaction、搜索、mention、图片和语音附件,并保持 mutation、权限和本地 projection 一致。
能力边界
包括消息 mutation 与富媒体发送;通用对象存储在 Day 8 深化,通话媒体在 Day 9。
能力合同
| Capability ID | API | Admin | iOS | Android | 关键证据 |
|---|---|---|---|---|---|
| MSG-101 编辑/撤回 | ✓ | ✓ | ✓ | ✓ | mutation ordering |
| MSG-102 Reaction | ✓ | ✓ | ✓ | ✓ | idempotency |
| MSG-103 搜索 | ✓ | ✓ | ✓ | ✓ | permission filter |
| MSG-104 Mention | ✓ | ✓ | ✓ | ✓ | target integrity |
| MSG-105 图片/语音 | ✓ | ✓ | ✓ | ✓ | upload/retry |
调查提示
text
进入 MESSAGING-ADVANCED。调查 mutationVersion、tombstone、reaction uniqueness、
mention target、搜索权限、附件 purpose 和两端本地 mutation 应用顺序。列出乱序事件、
过期搜索索引、上传失败和权限变化的恢复策略。1
2
3
2
3
学员决策
- 编辑和撤回时间窗口。
- tombstone 保留哪些审计信息。
- reaction 是否允许每人每 emoji 唯一。
- mention-all 的授权和审计。
- 原始媒体、缩略图和语音生命周期。
Feature Goal
text
/goal 完成 MESSAGING-ADVANCED,以乱序 mutation 重放、reaction 幂等、权限过滤搜索、
mention 审计、媒体上传中断恢复和两端 projection 收敛为完成证据。不得让旧事件覆盖
新 mutation,不得在搜索或附件 URL 中绕过会话权限。1
2
3
2
3
Mandatory gates
- [ ] mutationVersion 防止旧更新覆盖新状态。
- [ ] tombstone 在四端一致且不可继续编辑。
- [ ] reaction 重复与并发正确收敛。
- [ ] 搜索结果受 block、membership 和终态约束。
- [ ] mention target 与实际消息内容/成员一致。
- [ ] 媒体上传失败可重试,不产生孤儿引用。
- [ ] 语音临时文件按账号和退出语义清理。
常见假完成
- 只更新当前屏幕,没有写入本地数据库。
- 搜索直接查全表,遗漏会话权限。
- 删除物理移除消息,引用和审计崩溃。
- 上传先创建消息,失败后留下永久坏 URL。
Checkpoint
冻结 mutation protocol、搜索权限测试、媒体失败证据和 messaging-advanced-green。