You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[metadata-protocol] seed-loader pass 2:目标解析成功但记录 id 找不到时,整条 deferred 回填被静默丢弃(既不计数也不打日志) #5127
Activity
os-zhuang commentedon Aug 4, 2026
修单请求(PM 循环第 2 轮,会话
session_01Pbu27iNUfQCHeuS551Rqo7):正文被 GitHub sanitizer 截断 —— 「期望(待维护者确认)」一节在第 1 条中途(「…没有可用 id,」)被吞,后续内容全部丢失,疑似正文里出现裸<...>所致。按纪律截断单**不可派发**:期望清单不完整,dev 无法知道验收判据。请原立单人(或任何知道原文的会话)重新编辑正文,把尖括号内容转义(<` 或反引号包裹)补全「期望」一节;修复前本单留在队列但跳过选批。可见部分(现象/成因)完整且已核,修复后即可派。Generated by Claude Code
os-zhuang commentedon Aug 4, 2026
修单(PM 补全验收判据)+ 认领:PM 循环第 3 轮
原立单会话已注销,截断的「期望」一节由 PM 按可见事实与仓规(#4632 降级日志分级、#4729 先例)补全如下,作为本单验收判据(维护者可否决):
else分支:recordId为undefined时按同一客观判据计入recordDeferredError(→errors/allErrors+errored),并打一条error,写明后果(源记录在本次 load 中无可用内部 id,该条 deferred 回填被丢弃,引用将永久保持 NULL)与定位信息(objectName / recordExternalId / 目标字段);referencesDeferred计数自洽:该路径不允许再留下「计数悬着但零错误解释」的结果对象 —— 要么随错误记录收敛,要么在结果里可解释;insertedRecords缺源记录 id →errored/errors记录该条、error日志一次;(b) 正常回填不受影响;(c) 区分两种情形 —— 源记录 pass 1 写失败(已按 [metadata-protocol] seed-loader 的「LOUD FAILURE」注释要求 error,代码却记 warn —— 第二类降级(#4632 规则),本轮因包冻结未修 #4729 上报过,不重复淹没)与纯静默丢失(源记录写成功但自然键未登记,如externalIdKey因组合键分量为空返回'')—— 后者必须覆盖;认领:
会话:
session_01Pbu27iNUfQCHeuS551Rqo7分支:
claude/issue-5127-seed-loader-deferred-droppedWorktree:
objectstack-issue-5127域:
domain:engine文件面:
packages/metadata-protocol/src/seed-loader.ts及本包测试、changeset(越界即停,报告说明)。⛔ 不碰protocol.ts(#4754 同批,其文件面含该文件)、⛔packages/spec/**零改动。Generated by Claude Code
os-zhuang commentedon Aug 4, 2026
验收:ACCEPT —— PR #5254(转 ready + auto-merge,CI 绿即入队)
会话:
session_01Pbu27iNUfQCHeuS551Rqo7(PM 循环第 3 轮)PM 补全的四条验收判据逐条落实:(1)
else分支走recordDeferredError(→ errors/allErrors + errored,success: false),error日志带后果与修法;(2)referencesDeferred语义不变但悬空计数从此必配一条错误解释 —— 且对所有结果条目做了全量断言;(3) 两种触发情形分开措辞:纯静默丢失(空键)点名哪个键空了(externalIdLabel,如name+region),pass-1 写失败情形指向 #4729 已报的那条错误而不复述(不二次淹没),并有专门用例钉住两者文案不串;(4) changeset 响亮写明兼容性变化(过去success: true现在false—— 种子数据一直不完整,只是过去不肯说)。实况核验(对 diff):3 文件全在声明面内;⛔
protocol.ts(#4754 同批)、packages/spec、releases 零触碰 ✓;DeferredUpdate为文件私有,新增字段无公开契约变化 ✓;反向验证:还原 main 后 6 例中 5 例失败(唯一过的是对照组,正确)✓;metadata-protocol 354 全绿 + 下游 objectql/runtime seed 用例跑过(本改动让静默路径开始报错,下游无破坏)✓。Generated by Claude Code
fix(metadata-protocol): report the pass-2 back-fill dropped when the …