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
privateasyncwriteRecoveringSummary(fn: ()=>Promise<T>): Promise<T>{try{returnawaitfn();}catch(e: any){if(e?.code==='ERR_SUMMARY_RECOMPUTE'){this.logger.warn('[SeedLoader] roll-up summary recompute failed after retries; records were written (summary values may be stale)',{failures: Array.isArray(e.failures) ? e.failures.length : undefined},);returne.writtenasT;}throwe;}}
Activity
claude commentedon Aug 4, 2026
维护者已裁:A + B(2026-08-04,经主 backlog PM 呈报后照准)
error,文案带后果(该对象 roll-up summary 列为陈旧值、明细与汇总不一致而 seed 报 success)与修复动作;summariesStale计数),调用方可编程发现;success语义是否翻转按 B 的实现证据定 —— 汇总列错数据不算「成功得干净」。摘
needs-user-decision,回队,本轮即派。Generated by Claude Code
claude commentedon Aug 4, 2026
🔒 认领:PM 循环第 7 轮(维护者裁决落地批)
会话:
session_01NrmBxj8rK2uGCnh9aipjwX(账号xuyushun441-sys)分支:
claude/issue-4998-seed-summary-stale-loudWorktree:
objectstack-issue-4998域:
domain:engine文件面:
packages/metadata-protocol/src/seed-loader.ts(writeRecoveringSummary)及同目录测试⛔ 硬约束:
spec/**及生成物零改动;protocol.ts零改动;releases/ 零触碰。全局在飞不相交已核:与 #5025(sys-metadata-repository.ts + 基线)、#4762(packages/lint)、本批其余两单文件面均不交。
Generated by Claude Code
claude commentedon Aug 4, 2026
PM 中间处置:子问题即裁,B 半边的 spec 例外呈维护者
success不翻转 —— 确认,按 dev 证据即裁(维护者原裁决明言此项交实现证据):三个消费方证据决定性 —— wire 返回结构上无法解释 false 的原因、boot banner 会打出「true and useless」行、marketplace install 会把「行全部落库」的一次安装判失败,直接违反 framework#3147 的「records WERE written」不变量。success语义 = 行是否落库;新计数字段承载陈旧信号。seed-loader.zod.ts),非包内。dev 的方案 A(为本单开一个窄例外:summariesStale+totalSummariesStale,逐字镜像 seed-loader: a dropped reference FIELD is invisible in the summary —totalErroredcounts dropped records only, so the boot banner reads clean #3932referencesDropped先例,纯增量 + default(0),~10 行手写 + 两个生成物重生)已呈维护者拍板;方案 C(包内私加字段、契约分叉)按 PD#12 弃。fn()才能真保护的关键发现)已在停工报告里,解锁即续。Generated by Claude Code
claude commentedon Aug 4, 2026
维护者已裁(2026-08-04):批准本单的 spec 窄例外,取 dev 方案 A
summariesStale(SeedLoadResultSchema)+totalSummariesStale(summary),逐字镜像 seed-loader: a dropped reference FIELD is invisible in the summary —totalErroredcounts dropped records only, so the boot banner reads clean #3932referencesDropped先例,纯增量 +default(0),连同两个生成物重生 —— 本车道单次例外,随本 PR 关闭;success不翻转(已按实现证据即裁);原 dev agent 带上下文续做。⚠️ 入队前按纪律 A 处理 spec 生成物(在飞 #5042/#5043/#5012 同在动 spec)。
Generated by Claude Code
claude commentedon Aug 4, 2026
✅ 验收通过 —— PR #5062(draft,落地按同文件串行排程,见下)
对照实际 diff 复核(9 文件,+676/-34;spec 改动恰在授权例外内:seed-loader.zod.ts + authorable-surface.json + 生成 docs 页各一;⛔ protocol.ts / releases 零触碰,逐一核实):
summariesStale/totalSummariesStale逐字镜像 seed-loader: a dropped reference FIELD is invisible in the summary —totalErroredcounts dropped records only, so the boot banner reads clean #3932 先例,buildResult恒填充,success不翻转(已确认子裁定);框架bug(objectql): 汇总重算失败仅 warn——子记录批量插入报成功,父 summary 静默过期且无重试 #3147 的「行已写入不重写」原样。git diff origin/main --stat恰为本分支两行增量,且 收紧 theme 全部/chart 五个站点的未知键,并按门测量把 chart 两个站点判为 no gate(#4001 批 15) #5043 的兄弟条目(ui/Chart 44、ui/Theme 12)验证存活。落地排程(同文件串行):队列中的 #5025 与本 PR 都改
check-durability-degradation-log-level.mjs—— 本 PR 等 #5025 落地后并 origin/main(冲突就地解决:保留收紧后的门禁逻辑 + #5025 的 dropPromotedDraftRow 登记两者)、重跑该门禁与自测,绿后入队。Generated by Claude Code
Merge remote-tracking branch 'origin/main' into claude/issue-4998-see…
fix(metadata-protocol): seed-loader 中「计为错误」的失败一律记 error,不再自相矛盾地记 warn (…
fix(seed-loader): a roll-up summary left stale by a seed is loud and …