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 }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
constcandidates=[explicit ? ()=>attempt(`--base ${explicit}`,()=>gitQuiet(root,['rev-parse','--verify',`${explicit}^{commit}`])) : null,env.OS_I18N_DRIFT_BASE ? ... : null,env.GITHUB_BASE_REF ? ()=>attempt(`merge-base with origin/${env.GITHUB_BASE_REF}`, ...) : null,()=>attempt('merge-base with origin/main', ...),()=>attempt('merge-base with main', ...),].filter(Boolean);for(constcandidateofcandidates){consthit=candidate();if(hit)returnhit;// 第一环失败 -> 继续往下猜}
于是 --base 某个本地 clone 里不存在的 sha(浅 clone、未 fetch 的 sha、拼错的 sha)不会失败,而是继续尝试 merge-base with main 之类的候选,拿另一个提交当基准把比对做完,并打印一行自信的绿灯 —— 输出里的 (--base …) 也被换成了实际用的那一环,读日志的人看不出自己指的基准被忽略了。
「你指的 base 不存在」和「你没指 base」是两件不同的事,只有后者可以靠猜回答。
实测
同族缺陷在新门禁 scripts/check-changeset-presence.mjs 上被它自己的测试抓到(PR #3762 / #3387),那里 base 解析链是照本文件抄的。修好前后在真实仓库上的测量:
# 缺陷版(= 本文件当前形状)
$ node scripts/check-changeset-presence.mjs --base 0123456789abcdef0123456789abcdef01234567
Compared the working tree with b1204af0a (merge-base with origin/main): 7 file(s) changed, 0 ...
✅ No source of a released package changed in this range, so no changeset is owed.
exit=0 # 请求的 sha 被无声换掉,报绿
# 修好后
$ node scripts/check-changeset-presence.mjs --base 0123456789abcdef0123456789abcdef01234567
❌ Cannot resolve the commit to compare against, so there is nothing to diff.
tried: --base 0123456789abcdef0123456789abcdef01234567 (unresolved)
That base was named EXPLICITLY, so it is not guessed around: ...
exit=1
Anchors verified on objectui origin/main @ a4f837c:scripts/check-i18n-en-drift.mjsresolveBaseRef (from :351) still treats the explicit --base as merely the first candidate and falls through to merge-base with main guesses (:368); the authoritative shape to copy (ok: false … named: true) exists in scripts/check-changeset-presence.mjs:209 exactly as the body says.
Classification rationale: concrete gate defect with a measured false-green repro and a fix that is a straight port of an in-repo precedent, tests included — nothing to ask. Today's CI path is unaffected (uses GITHUB_BASE_REF), so no release-board tag; the broken faces are the two explicit entrypoints the script itself documents.
Dedup: repo-scoped resolveBaseRef search returns only this card. The changeset-gate sibling was fixed in its own PR, which deliberately did not touch this file — clean, no overlap.
Activity
os-zhuang commentedon Aug 8, 2026
Triage:
pm:queue(in-repo objectui card; sister repos carry pm-state only, no routing label).origin/main@a4f837c:scripts/check-i18n-en-drift.mjsresolveBaseRef(from:351) still treats the explicit--baseas merely the first candidate and falls through tomerge-base with mainguesses (:368); the authoritative shape to copy (ok: false … named: true) exists inscripts/check-changeset-presence.mjs:209exactly as the body says.GITHUB_BASE_REF), so no release-board tag; the broken faces are the two explicit entrypoints the script itself documents.resolveBaseRefsearch returns only this card. The changeset-gate sibling was fixed in its own PR, which deliberately did not touch this file — clean, no overlap.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
yinlianghui commentedon Aug 8, 2026
🔒 认领(objectui 分片 PM,session_01GTRjn8xBqp75dk7kFupVRt)
claude/issue-3766-drift-base-authoritativescripts/check-i18n-en-drift.mjs(resolveBaseRef,:351起)+scripts/__tests__/check-i18n-en-drift.test.ts补钉子。修法为仓内先例直移植:scripts/check-changeset-presence.mjs:209的权威形状(ok:false, named:true)连同其测试用例照抄参数化。与在飞record:details的sectionsinput description 还在教已被 spec 退役的「Section IDs」形状,渲染器只认对象形 —— 照 manifest 写出来的 sections 一条都不渲染 #3807(plugin-detail)及在闸三 PR(fix(i18n): 回填 auth 家族 54 个缺失语言 key,十包补齐 (#3546 切片三) #3814 触 baseline.json 非本脚本)文件不相交。git log --format=%B -1 | grep -i fable应零命中)。即将派发 os-dev 实施。
Generated by Claude Code
fix(scripts): check-i18n-en-drift 的显式 base 提为权威,解析不出即失败 (objectstack-…