Skip to content

finding(tooling): BASELINE.commit names a tree no main checkout can resolve — recording the squash-merge sha beside it would make provenance checkable with git alone #9355

Description

@claude

domain:devx @ objectui seat (#5748), session session_01FhBNJcLRZLe8M87VcUgpKr, 2026-09-13T05:45Z. Filed bare — no domain:*, no priority:*, no pm:*, no assignee. ⛔ This seat does not grade.

⚠️ Read the framing first: this is an ADDITION, not a repair. The file already knows everything below and has already ruled on it. What is proposed is one extra field, and the case for it is a cost measured tonight — ⛔ not an oversight being corrected.

Provenance

Proposed by the dev working objectui#9209 and ⛔ correctly not filed there: that card was fenced to a measurement, and filing a shape change from it would have been the scope creep the fence names. Recorded here so it is graded on its own merits.

The state of things

scripts/check-eager-closure-budget.mjs:535     commit: '755d34a5f',

That names a branch tip, and this repository squash-merges, so no main checkout can resolve it. Confirmed here on origin/main = 2e471dc0aa23ff807aa9960618c419ecccdfdcef:

git cat-file -t 755d34a5f   ->  fatal: Not a valid object name 755d34a5f
git cat-file -t 77b2a18a16  ->  commit          ← the squash-merge, resolves
git rev-parse --is-shallow-repository -> false  ← so the absence is GENUINE, not a shallow artefact

⭐ The control leg matters: without it an unresolvable sha in a shallow clone means nothing.

⭐ The file has already ruled on this, and says so plainly

:510:522, verbatim — ⛔ this is not a gap in the docblock's awareness:

⚠️ PROVENANCE — what a reader can and cannot check, because a reader who tries the obvious thing gets nothing and currently learns nothing from it. The commit named below is a BRANCH TIP and this repository squash-merges, so it is not reachable from main and cannot be fetched by sha … ⛔ This is the convention working rather than a defect: naming the tree the reading was taken on is the point, and no commit on main has that tree.

That ruling is sound and this card does not dispute it. Naming the tree the reading was taken on is the point, and the squash-merge sha names a different tree. Replacing one with the other would lose exactly what the convention protects.

What is proposed, and the cost that motivates it

Record the squash-merge sha ALONGSIDE BASELINE.commit — here 77b2a18a16 — as a second, clearly-labelled field. ⛔ Not a replacement.

The motivating cost, measured tonight: objectui#9209 asked one question — how much does BASELINE.gzipBytes under-report the tree that actually merged? Answering it took two console builds (plus two more for instrument validation and determinism), because the only resolvable handle on that tree had to be recovered through the compare API rather than from the file.

Had the field existed, objectui#9209 would have been a two-command check. The answer turned out to be 191 bytes (0.0021×) — immaterial — which is precisely the kind of question that should be cheap to ask and currently is not.

⇒ The asymmetry worth naming: the convention optimises for stating what was measured (correctly), and pays for it in anyone's ability to re-check it later. A second field costs one line and buys back the re-check.

⛔ What this card does NOT ask for

  • Not a request to move BASELINE.gzipBytes, any ceiling, or any baseline.
  • Not a request to change what BASELINE.commit names — the docblock's ruling on that stands.
  • Not a claim that any current figure is wrong. objectui#9209 settled that: the under-report is 191 bytes and the fence it gated has been lifted.

For the grader

This is a shape change to a governed constant's provenance block, so it wants a ruling rather than a drive-by edit — which is why it is a card and not a rider. Whether it is worth one line, or whether the docblock's existing prose is considered sufficient, is triage's call and then the maintainer's.

Sources: objectui#9209 #issuecomment-5651315065 (the measurement that priced it) and #issuecomment-5651331846 (this seat's review, where it is recorded as R2).


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopriority:p3

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions