Found while implementing #9408 (PR #9448). Filing rather than widening that PR: its dispatched file surface was the two scripts/ files, and this site is currently harmless, so it is a latent duplicate rather than active damage.
The site
.github/workflows/cut-rc.yml around line 285:
if git -C "$OBJECTUI_ROOT" cat-file -e "${OLD_PIN}^{commit}" 2>/dev/null; then
AHEAD="$(git -C "$OBJECTUI_ROOT" rev-list --count "${OLD_PIN}..${OBJECTUI_SHA}")"
echo "objectui pin ... (${AHEAD} commit(s)); range is walkable, the changeset digest will be complete."
else
echo "::warning::the current pin ... is not reachable ..."
fi
This is the same test #9408 is about — git cat-file -e OLD_PIN, object presence — carrying a stronger claim than object presence can support. On a truncated history that test passes, rev-list --count returns the truncated count (measured on the live specimens: 110 and 137 against a true 191), and the step prints "range is walkable, the changeset digest will be complete." That sentence would be false, and it is the reassuring half of the pair, so nothing else in the log would contradict it.
Why it is harmless today
Line 271 clones objectui full, deliberately, with a comment that already states this exact hazard:
# FULL clone, not shallow, and this is a measured requirement rather
# than caution: ... A shallow clone would therefore cost the cut its
# frontend history without failing (#4731's whole lesson).
So the precondition that would make the message wrong is currently prevented one step earlier. The exposure is future-shaped: anyone who later adds --depth or --filter to that clone to save CI time re-opens it, and the preflight would actively reassure them.
The cheap repair, once #9448 merges
PR #9448 adds objectui-changeset-digest.mjs --check-walkable, which answers the real question and splits the two failures by exit code (2 = an endpoint is missing, 3 = the endpoints resolve but the history stops inside the range). The preflight can call it instead of cat-file -e, and then the message it prints would be earned rather than assumed. That also collapses the third copy of this rule back to one implementation, which is the property #9448 argues for in findRangeTruncation.
Not urgent, and deliberately not queued — recording it so the coupling between "we clone full" and "this message is true" is written down somewhere other than a comment two steps away from the claim.
Related: #9408 (the defect class), #9448 (the guard and --check-walkable), #4731 (why a degraded list must never look complete).
Generated by Claude Code
Found while implementing #9408 (PR #9448). Filing rather than widening that PR: its dispatched file surface was the two
scripts/files, and this site is currently harmless, so it is a latent duplicate rather than active damage.The site
.github/workflows/cut-rc.ymlaround line 285:This is the same test #9408 is about —
git cat-file -e OLD_PIN, object presence — carrying a stronger claim than object presence can support. On a truncated history that test passes,rev-list --countreturns the truncated count (measured on the live specimens: 110 and 137 against a true 191), and the step prints "range is walkable, the changeset digest will be complete." That sentence would be false, and it is the reassuring half of the pair, so nothing else in the log would contradict it.Why it is harmless today
Line 271 clones objectui full, deliberately, with a comment that already states this exact hazard:
So the precondition that would make the message wrong is currently prevented one step earlier. The exposure is future-shaped: anyone who later adds
--depthor--filterto that clone to save CI time re-opens it, and the preflight would actively reassure them.The cheap repair, once #9448 merges
PR #9448 adds
objectui-changeset-digest.mjs --check-walkable, which answers the real question and splits the two failures by exit code (2 = an endpoint is missing, 3 = the endpoints resolve but the history stops inside the range). The preflight can call it instead ofcat-file -e, and then the message it prints would be earned rather than assumed. That also collapses the third copy of this rule back to one implementation, which is the property #9448 argues for infindRangeTruncation.Not urgent, and deliberately not queued — recording it so the coupling between "we clone full" and "this message is true" is written down somewhere other than a comment two steps away from the claim.
Related: #9408 (the defect class), #9448 (the guard and
--check-walkable), #4731 (why a degraded list must never look complete).Generated by Claude Code