Skip to content

跨端交接归档

已闭环的跨端(RB ↔ RVH ↔ Supabase)交接件。活跃交接见上一级 docs/cross-end/

当前内容:01 vocabulary word 主键化(2026-04-27 ~ 04-29)

本仓最大的一次跨端 schema 手术——vocabulary 表主键从 id TEXT (UUID) 改为 word TEXT PRIMARY KEY COLLATE NOCASE,根治了两端各自生成 UUID 导致的 split-brain 静默丢数据(同一个词在两端是两行,sync 时互不认识)。

四份文件是一次交接的四个阶段,按这个顺序读:

文件阶段说明
01-vocabulary-word-pk-brief.md① 问题陈述给对端会话的背景与诉求
01-vocabulary-word-pk-plan.md② 方案三端改动清单与迁移顺序
01-vocabulary-word-pk-review.md③ 复评方案评审与修正
01-vocabulary-word-pk-log.md④ 执行日志1955 行 / 117 KB,本仓第二大文档。逐步实测记录,仍被 cross-end-sync-evolution-roadmap.md 引用

落点:RB migration(word 直接映射)+ Supabase v43 + RVH Dart 侧对齐。 后续的红线 #9(写 word 字段前必经 lemmatizer::normalize())就是从这次手术长出来的。

2026-04/05 Bug A–G 那一轮的交接件(11 份,2026-08-30 自 temp/ 收进版本控制)

与上面的 01 是同一个时期、同一条主线(vocab-pk Phase 3 及其暴露出的 Bug A–G)。 它们此前躺在 gitignored 的 temp/ 下 —— 不在版本控制里,一次 rm -rf temp/ 就永久消失, 而 01-vocabulary-word-pk-log.mdrvh/CHANGELOG.md 都在按 temp/… 引用它们。

文件是什么
bug-a-handoff-to-rvh.mdBug A:PostgREST read replica lag 让 watermark 推进到 sync_start_at 时永久 miss 一批行(用户首报的 24 条 RVH→RB push 丢失就是它)。红线 #5d 的来源
bug-b-handoff-to-rvh.md · bug-b-rb-session-prompt.md · bug-b-rvh-session-prompt.mdBug B:lemmatizer Layer 2 启发式后缀剥离误砍 27+ 常见名词(sliver→sliv / lawyer→lawy),催生词典优先重构。今天红线 #9 的 Layer 1/2 就是这轮的产物
rvh-bug-cd-mirror-audit-session-prompt.md · rvh-bug-eg-mirror-session-prompt.mdBug C/D 与 E/G 的 RVH 镜像 + 跨端契约红线扩充
phase3-cases-3to6-session-prompt.md · rb-coord-validation-p1-followup-session-prompt.mdPhase 3 双端实机联调的会话设计(AI 读双端 log、用户操作双端 GUI)
rvh-cover-image-mirror-session-prompt.md封面图字节直传的 RVH 镜像
rvh-vocab-fk-drop-session-prompt.md · rvh-review-count-hint-session-prompt.md两条轻量知会:Supabase vocabulary FK DROP;Review picker 计数口径

🔑 为什么值得收进来而不是删:它们是那一轮跨端协调的唯一存世记录 —— Bug A–G 的结论进了红线与 CHANGELOG,但「当时怎么把两个会话协调起来的」只在这里。 本仓多条红线(#5d / #9)能追到这批文件。

⚠️ 路径换算(读老文档时用)01-vocabulary-word-pk-log.md(第 1207 / 1315 / 1319 行)、 rvh/CHANGELOG.md(第 740 行)与几份归档 plan 里写的 temp/<名字>.md等价于今天的 docs/cross-end/archive/<名字>.md。那些是冻结的历史记述,不去改 (同 ~/reading_vocab_helper/… 的处理方式,见根 CLAUDE.md §9「路径写法」)。

⚠️ 这 11 份没有 NN- 编号,是刻意的:cross-end 的 NN时序信息, 现在补号只能排到 47+,会把 4 月的文件标成「第 47 号」(同 T4-1 的裁定:不重编号)。


编号

01- 是 cross-end 编号体系的第一号,移进归档后上一级从 02- 开始—— 不是缺号。完整编号总表见 docs/cross-end/README.md