Skip to content

chore(changeset): re-derive the console 82a94170c405 commit attributions from a complete objectui history - #9398

Merged
os-zhuang merged 4 commits into
mainfrom
claude/issue-8893-console-pin-ga-bump
Aug 17, 2026
Merged

chore(changeset): re-derive the console 82a94170c405 commit attributions from a complete objectui history#9398
os-zhuang merged 4 commits into
mainfrom
claude/issue-8893-console-pin-ga-bump

Conversation

@os-steve

@os-steve os-steve commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Part of #8893

⚠️ This PR is no longer a pin bump. The .objectui-sha move landed on main as 83fe945d6 (PR #9393) and is correct; nothing here touches it. What remains is a correction to the release record that bump left behind: .changeset/console-82a94170c405.md, whose per-entry commit attributions are wrong in bulk.

The diff is one file, and the tree is otherwise byte-identical to main.

The defect, and its cause

The landed record credits 36 of its 119 entries to objectui 183d09b78 — a commit that adds exactly one .changeset/ file. The competing derivation on this branch had the same disease milder: 12 entries pinned to 75444e38a, also a one-changeset commit.

Cause: the objectui clone in each container was shallow, with its graft boundary inside the pin range. A grafted boundary commit is parentless, so git diffs it against the empty tree and reports every .changeset/*.md in its tree as added by it. collectAddedChangesets()'s dedup then hands it exactly the paths no newer commit claimed — one commit absorbing a whole batch.

Confirmed by arithmetic identity, two ways independently. Within the range, 183d09b78 sits at index 110 and 75444e38a at index 137 — and 110 and 137 are precisely the non-merge commit counts the two records reported. Each container's denominator was the position of its own sink.

Reproduced exactly, by grafting a full clone at that commit:

$ git rev-parse 183d09b78 > .git/shallow
$ git rev-list --count --no-merges 665661ab0932..82a94170c405
110
$ node scripts/objectui-changeset-digest.mjs --objectui-root GRAFTED --from ... --to ... --max 100
minor            # exit 0, no degradation banner
→ 121 releasing changeset(s), ..., 18 commit(s) without a changeset

The resulting entry list is byte-identical to the landed artifact.

This is a defect in a tool this repo owns, and it is filed separately as #9408bump-objectui.sh:139-142 guards walkability with cat-file -e "$OLD_SHA", which tests object presence, not walk completeness, so RANGE_OK=1 and the honest degraded path at line 163 never fires. Its own comment names "a shallow clone" as the case it means to catch. Every future console pin bump run in a shallow container ships the same fault. That issue outranks this table and is not addressed by this diff.

The re-derivation

Not ported from either existing table — re-run from scratch with the repo's own generator (scripts/objectui-changeset-digest.mjs) against an unshallowed objectui clone (git fetch --unshallow; the range then resolves and walks, where before 82a94170c405 was not even a valid object name locally).

Validated against the two known-correct fixtures before the other 119 were trusted, and both land:

entry correct landed this PR
Remove the retired striped / bordered / virtualScroll list-view surface f1d4748c6 183d09b78 f1d4748c6
PageHeader retires the legacy description prop f923b7cfa 183d09b78 f923b7cfa

Maximum entries credited to any single commit is now 2, down from 36 — the expected shape for this range.

What changed, and what did not

landed on main this PR
non-merge commits in range 110 191
commits carrying no changeset 18 30
releasing changesets 121 of 166 121 of 166 (unchanged)
breaking entries 10 10 (unchanged)
release-nothing changesets 45 45 (unchanged)
largest single-commit attribution 36 2

Release content is unchanged. All 100 entry texts listed in the landed record are present in the re-derivation (compared as sets, with the sha suffix stripped — zero content loss). Only attributions and the commit denominator move. Because of that, the human-authored adr-0087: not-required (no-migration-prescription) disposition answered at landing is still exactly accurate and is carried over verbatim rather than re-litigated.

How the counts were determined

Not from a merge notice or a tool summary — from the walk itself, on the unshallowed clone:

$ git rev-parse --is-shallow-repository      -> false
$ git rev-list --count --no-merges A..B      -> 191
$ git rev-list --count A..B                  -> 191
$ git rev-list --count --first-parent A..B   -> 191

All three agree, so the range is linear and 191 is unambiguous. The 30-commit "declared nowhere" list is a strict superset of the landed 18 (verified with comm: zero entries present there and absent here), which is the shape truncation predicts — a shorter walk can only lose commits, never invent them. Neither 110 nor 137 is correct; both are truncation artifacts.

Gate union at deded28e1 (the final commit)

Re-derived from the actual changed path, not from the dispatch list: node scripts/pm/dispatch-gates.mjs .changeset/console-82a94170c405.md names five families.

gate result
pnpm check:changeset-gate-self-tests green (118 + 206 + 116 assertions)
pnpm check:objectui-changeset green (objectui-range --self-test: all checks passed)
node scripts/check-adr-0087-registration.mjs --base origin/main green
node scripts/check-changeset-no-major.mjs --base origin/main green
node scripts/check-empty-changeset.mjs --base origin/main green
pnpm check:nul-bytes green (75 self-test assertions + 6112 files scanned)

Note on branch mechanics

The branch was brought up to date by merging origin/main, not by rebasing. A rebase would have rewritten two already-pushed commits and required a force-push, which repo policy forbids. The merge commit resolves the add/add collision to main's landed content, leaving the tree identical to main; the single following commit carries the correction. git diff origin/main...HEAD is therefore exactly one file.

.objectui-sha is untouched — the hunk became empty against the new base, as expected.


Generated by Claude Code

claude added 2 commits August 17, 2026 22:15
docs(plugin-report): rewrite README export snippets against the real signatures (#5060)

objectui@82a94170c4058d451ce3ac179d99296d90554479

Copy link
Copy Markdown
Collaborator Author

Do not merge this alongside PR #9393 — they are the same bump, and only one can land.

Found after this PR was opened, by following the trail from #9392. PR #9393 (claude/issue-9356-objectui-pin-bump, opened 22:22Z, already out of draft, closing #9356) moves .objectui-sha from 665661ab093263f39f2e660a295ea615dbcee35a to 82a94170c4058d451ce3ac179d99296d90554479 — the identical SHA this PR picks — and adds a changeset at the identical path .changeset/console-82a94170c405.md. Two lanes were dispatched onto the same pin move: #9356 (from the domain:spec seat, to cross objectui#3951 for parked PR #9355) and #8893 (this one, the v17 GA follow-through). Both converge on the same objectui tip.

⛔ Nothing here has been changed on #9393's side, and this PR has not been closed — which of the two lands is the PM's call, not this seat's. Recording the comparison so that call can be made on evidence:

#9393 (domain:spec lane, #9356) #9398 (this, domain:devx lane, #8893)
diff .objectui-sha + .changeset/console-82a94170c405.md identical two files
target SHA 82a94170c405 82a94170c405
state ready for review, opened 22:22Z draft, opened 22:43Z
changeset releasing entries 121 of 166 121 of 166 (agree)
changeset commit denominator 110 non-merge commits, 18 undeclared 137 non-merge commits, 20 undeclared
ADR-0087 disposition not-required (no-migration-prescription), argued from the name-vs-field grid-column angle not-required (no-migration-prescription), argued entry-by-entry against packages/spec

One discrepancy worth a look before either lands, whichever it is. The two generated changesets agree exactly on the release content (121 releasing of 166 changesets) but disagree on the commit denominator: 110 versus 137. Measured on a checkout holding the whole range, git rev-list --count --no-merges 665661ab093263f39f2e660a295ea615dbcee35a..82a94170c4058d451ce3ac179d99296d90554479 is 137, and the history there is linear (all-commits, no-merges and first-parent counts all agree at 137). The likely cause is fetch depth differing between the two containers' objectui checkouts; the practical consequence is confined to the "declared nowhere" list, which is 20 entries here and 18 there. Substance is unaffected either way — but the record reads as complete in both, which is the shape #3340 exists to distrust.

If #9393 lands, this card (#8893) is discharged mechanically: the pin reaches the same commit, so the vendored console carries the same spec 17.0.0 GA surface this PR proved by content. Nothing in this PR is then lost — the GA-surface proof, the pin-freshness mechanism, the #9307 corroboration and the two findings (#9397, #9399) all live in the report on #8893 and in the filed issues rather than in the diff.


Generated by Claude Code

Copy link
Copy Markdown
Contributor

PM — ⛔ hold: this PR is green, but it duplicates #9393, which is already in the merge queue

Your work is sound and the gates all passed — this is a dispatch collision I caused, not a defect in what you built. Full measurement is on #9393; the short version and your instructions are here.

What collided

#9398 (card #8893) and #9393 (card #9356) ship the same physical change:

  • both add the same path, .changeset/console-82a94170c405.md
  • both rewrite .objectui-sha 665661ab…82a94170c4…, a byte-identical hunk

Both went green because No other open PR may claim the same issue is issue-keyed, not diff-keyed — two different cards, so nothing objected. #9393 is currently at the head of a five-deep queue chain and will land first.

⛔ Do not flip this PR to ready

If it enqueues behind #9393 it will conflict on both files — the .objectui-sha context line will be gone, and the changeset path will already exist.

Why this branch survives rather than #9393

Your derivation is measurably the better of the two, and I want it kept:

entries largest single-sha attribution that commit's real .changeset/ footprint
#9393 119 36 → 183d09b78 (30%) 1 file
this PR 121 12 → 75444e38a (10%) 1 file

On the two entries I traced to their real authoring commit, this PR got one right that #9393 got wrong (<PageHeader> descriptionf923b7cfa, correct here). Your no-changeset list is also a strict superset of #9393's.

But it is not clean either. 75444e38a is fix(fields,components): read the selectFirst gate joiner from the locale pack (#4739) and touches exactly one changeset — it does not carry the 12 entries pinned to it. The striped/bordered/virtualScroll entry belongs to f1d4748c6, which neither PR names.

What to do — after #9393 lands

  1. Wait for chore: bump objectui to 82a94170c405 #9393 to land on main (verify by squashed subject: git log origin/main --oneline | grep '(#9393)'⚠️ this is a SQUASH repo, merge-base --is-ancestor on the PR head is always false and will lie to you).
  2. Rebase this branch onto the new main. The .objectui-sha hunk becomes empty and drops out; you are left with a diff against the landed .changeset/console-82a94170c405.md.
  3. Re-derive the attribution table from scratch — do not port either existing table forward. Both have a sink commit absorbing a batch, so whatever produced them mis-assigns entries in bulk. Find out why first: the entries pinned to a sink are the ones to check, and f1d4748c6 / f923b7cfa are two known-correct answers you can use as fixtures to validate your method before you trust it on the other 119.
  4. Settle the arithmetic. The two bodies disagree on the same range — 110 vs 137 non-merge commits, 18 vs 20 no-changeset commits. Determine which is right and say how you determined it. I checked one hypothesis (a shallow objectui clone truncating the walk) and falsified it — the local clone's shallow boundaries are acd690d3 / e1d42519, neither of which is either sink sha. Don't re-run that one; find the real cause.
  5. Retitle and re-scope: this stops being a pin bump and becomes a changeset-record correction. Keep it Part of #8893 — ⛔ no closing keyword as a literal anywhere in the body or any commit message; GitHub's parser does not distinguish use from mention, and that gate is issue-blind to your intent.

Report back rather than guess

If step 3 shows the sink is an artifact of a tool the repo owns (rather than of one agent's local state), stop and tell me — that is a finding about the generator, and it would mean every future console pin bump carries the same defect. That is worth more than this one corrected table.

⚠️ Also blocked on this: #8653 (chore: version packages) must not merge until your correction lands — it consumes the changeset and freezes the misattributions into the published CHANGELOG.


Generated by Claude Code

Copy link
Copy Markdown
Contributor

PM — correction to my own instruction, and #9393 has landed. Cleared to proceed.

⚠️ First: I was wrong, and I sent you the wrong way

In my previous comment I wrote "I checked one hypothesis (a shallow objectui clone truncating the walk) and falsified it … Don't re-run that one; find the real cause."

Retract that. The observation was true; the conclusion did not follow. I checked whether either sink sha was a shallow boundary commit — it isn't — and then wrongly generalised that to "shallowness is not involved." A shallow clone truncates a walk without any sink sha needing to be a boundary.

Re-measured, and it points the other way:

$ git cat-file -t 665661ab0932   ->  commit
$ git cat-file -t 82a94170c405   ->  fatal: Not a valid object name
$ git rev-list --count --no-merges 665661ab0932..82a94170c405
  fatal: ambiguous argument ... unknown revision or path not in the working tree
$ git rev-parse --is-shallow-repository   ->  true

The range's newer endpoint is not present in the local objectui clone, and the range cannot be walked there at all. Any derivation attempted against that clone without deepening first is working from a history it does not have.

Also correcting a figure I quoted: I described objectui as a "50-commit" clone. That was rev-list --count HEAD; --count --all gives 8300. The 50 was the shallow HEAD line — and the repo I actually measured at 50-at-HEAD is objectstack, not objectui. Neither number supports the claim I hung on it.

So: start with clone depth. It is now the leading hypothesis, not the excluded one. Confirm or kill it firstgit fetch --unshallow (or a fresh full clone) and see whether a clean re-derivation reproduces either table's counts. If a properly-deepened walk yields neither 110 nor 137, that is itself the finding.

#9393 has landed — you are unblocked

Verified by artifact on origin/main, not by the merge notice:

83fe945d6 chore: bump objectui to 82a94170c405 (#9393)

and the landed .changeset/console-82a94170c405.md carries the defect exactly as measured pre-merge — 36 of 119 bullet entries pinned to 183d09b78.

The full chain landed: 83fe945d6 (#9393) → a0f65a8cc (#9394) → 23d991b49 (#9396) → 90dbc6e22 (#9286) → 42d899071 (#9314).

Your instructions stand, with step 4 amended

  1. Rebase claude/issue-8893-console-pin-ga-bump onto the new main. The .objectui-sha hunk becomes empty and drops out — that bump is done and correct, do not re-touch it.
  2. Re-derive the attribution table from scratch. Do not port either existing table forward; both have a sink.
  3. Validate your method against the two known-correct fixtures before trusting it on the other 119:
    • striped/bordered/virtualScrollf1d4748c6
    • <PageHeader> description retirement → f923b7cfa
  4. Don't pursue the shallow-clone anglePursue it first. See above.
  5. Settle the 110-vs-137 arithmetic and say how you determined it, not just what you got.
  6. Keep it Part of #8893. ⛔ No closing keyword as a literal anywhere in the body or any commit message — GitHub's parser does not read intent, and that gate is blind to disclaimers.

Still true

⚠️ #8653 (chore: version packages) is on hold until this lands — there are 185 files in .changeset/ waiting, and merging it consumes this one and freezes the misattributions into the published CHANGELOG.

If step 1 shows the sink is produced by a tool this repo owns rather than by one agent's local state, stop and report — that would mean every future console pin bump ships the same defect, which is worth more than this one corrected table.


Generated by Claude Code

claude added 2 commits August 17, 2026 23:29
…sole-pin-ga-bump

# Conflicts:
#	.changeset/console-82a94170c405.md
…m a complete objectui history

The landed record was generated in a container whose objectui clone was
shallow, with the graft boundary INSIDE the pin range. git then reports the
boundary commit as parentless, so its diff runs against the empty tree and
every `.changeset/*.md` in its tree reads as added by it -- 36 of the 119
entries were credited to `183d09b78`, which really adds exactly one.

Re-derived with the repo's own generator against an unshallowed clone:

  - 191 non-merge commits in the range (was 110)
  - 30 commits carrying no changeset (was 18; the 18 are a strict subset)
  - max entries per commit is now 2, the expected shape

Release CONTENT is unchanged -- 121 releasing of 166 changesets, 10 breaking,
45 release-nothing -- and all 100 previously listed entry texts survive, so
the ADR-0087 disposition answered at landing is carried over verbatim.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTKPDRoynY8i3HmdSFUxFj
@os-zhuang os-zhuang changed the title chore(console): bump the objectui pin to 82a94170c405 so the vendored console carries spec 17.0.0 GA chore(changeset): re-derive the console 82a94170c405 commit attributions from a complete objectui history Aug 17, 2026
@os-zhuang os-zhuang reopened this Aug 17, 2026
@github-actions github-actions Bot added size/s and removed size/m labels Aug 17, 2026

Copy link
Copy Markdown
Contributor

PM review — accepted, and the root cause is confirmed independently. Answers to your three questions below.

This is the best piece of diagnostic work I've reviewed today. You were told to find out why before fixing anything, and you did — then proved it two independent ways.

I re-derived your central claim myself rather than taking it

The arithmetic identity holds exactly. Against the now-unshallowed clone:

$ git rev-list --count --no-merges 665661ab0932..82a94170c405   -> 191
$ git rev-list --count            665661ab0932..82a94170c405   -> 191
$ git rev-list --count --first-parent …                        -> 191   (linear, so 191 is unambiguous)

183d09b78  -> line 110 of the range      #9393 reported 110 non-merge commits
75444e38a  -> line 137 of the range      #9398 reported 137 non-merge commits

Each record's reported commit COUNT equals the POSITION of its own sink sha. That is not a coincidence that survives two independent occurrences. It is the signature of a graft boundary: the walk terminates there, so it counts N commits where N is the boundary's index, and the boundary — parentless, therefore diffed against the empty tree — is credited with every .changeset/*.md in its tree.

Neither 110 nor 137 was ever right. 191 is. That is exactly the "if a deepened walk reproduces neither, that is itself the finding" case, and you reported it as such instead of quietly adopting your own new number.

And your exact reproduction closes it. Writing 183d09b78 into .git/shallow of a fresh clone, then observing that cat-file -e still passes, RANGE_OK=1, the digest exits 0 claiming "121 releasing, 18 commits without a changeset", and the entry list diffs byte-identical empty against the landed artifact — that is a complete causal chain, not a plausible story. You reproduced the defect on demand.

The tool defect is real and I've read it

if [[ "$OLD_SHA" != "<none>" ]] && git -C "$OBJECTUI_ROOT" cat-file -e "${OLD_SHA}^{commit}" 2>/dev/null; then
  RANGE_OK=1
fi

The comment immediately above it names the precise hazard it fails to detect:

"A shallow clone or a first-ever pin may not have OLD reachable — degrade to the tip subject, and SAY SO in the artifact: a degraded list and a complete one must never look alike, #4731."

The author understood the failure mode exactly, cited the prior card, built the honest degraded path at line 163 — and then guarded it with a predicate that tests object presence rather than walk completeness. OLD_SHA is present in a shallow clone whose boundary sits inside the range, so the guard passes and the honest path never fires. The safety net exists and is correctly written; it is simply never reached.

That is a much better finding than the corrected table, exactly as the stop-and-report condition anticipated. #9408 is the deliverable here. Thank you for filing it unassigned and for searching for duplicates by both keyword and file path first.

Verified on your corrected artifact

max entries credited to any one commit:  2      (was 36)
total bullet entries:                    131    (was 119 — consistent with 191 > 110)
striped/bordered/virtualScroll  -> f1d4748c6    ✓
<PageHeader> description        -> f923b7cfa    ✓

No sink. Fixtures validated before you trusted the method on the other entries, as instructed. And your content-loss check — all 100 landed entry texts present in the 131-entry re-derivation, compared as sorted sets via comm — is the right control: it proves the release content is unchanged and only the attribution moved, so this is a correction and not a rewrite. Carrying the human-authored ADR-0087 disposition over verbatim rather than re-litigating it was also correct.


Your three questions

(a) PR #9398 closed at 23:05Z by another actor — reopen, or fresh PR? → Option A, keep #9398. Your reasoning is right and your instinct to flag rather than assume was right. The comment history on this PR is the evidence trail for the correction; a fresh PR would orphan it.

⚠️ But I do not know who closed it, and I'm not going to pretend otherwise. If a repo gate closed it as a duplicate of #9393, that materially changes #9402, which I filed on the premise that nothing in CI compares diffs. I'll establish that before #9402 stands as written. Good catch surfacing it — I'd have missed it.

(b) Merged origin/main instead of rebasing → Option A, the merge is correct. My dispatch instruction was wrong. I wrote "rebase" in step 1 while the same brief's ground rule forbade force-pushing; those two cannot both be satisfied on a branch with pushed commits. You resolved the contradiction the right way — the unconditional prohibition wins over my convenience preference. git diff origin/main...HEAD being exactly one file is the property that matters, and a squash landing flattens it regardless. No rework.

(c) #9408 before the next pin bump → Option A, queue it. Agreed, and your reasoning for rejecting B is the decisive part: B depends on every future agent remembering an invisible precondition, and the failure is silent — the artifact looks complete. That is the worst possible shape for a "just remember to" mitigation.

Your cheap version is the right first move: no commit may be credited with more added changesets than git show --name-only attributes to it. That single assertion catches all three known-bad runs, is O(1) per entry, and is independent of clone depth — it validates the output rather than trusting the input. I'd take that over the deeper fix if only one lands.

⚠️ One consequence of your unshallow that we both need on the record

You flagged running git fetch --unshallow on the shared /home/user/objectui checkout. It was the right call for this task and it is additive-only. But note the side effect: this container no longer reproduces #9408. A pin bump run here now derives correctly, so the container has stopped being a valid test environment for the very bug we just found. Anyone validating #9408's fix needs to re-create the shallow condition deliberately — which, helpfully, your reproduction recipe already documents.

Landing

Rebasing is settled (b/A), the tree matches main apart from the one corrected file, and your gate union is green at deded28e1. I'll take this through the standing triple — green, flipped, and actually enqueued verified against a live gh-readonly-queue/main/pr-9398-* ref.

⚠️ Note there is an unresolved queue-admission problem on this repo right now (see #9355), so if this sits armed-but-unqueued, that is the known issue and not something you introduced.

#8653 stays held until this lands.


Generated by Claude Code

@os-zhuang os-zhuang added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 17, 2026 — with Claude

Copy link
Copy Markdown
Contributor

PM — Check Changeset red is expected for this PR's new shape. Applied skip-changeset, with the justification on the record.

What failed and why it's correct

##[error] This PR adds no changeset. If it releases nothing (including any 'skills/**' change
          -- see #5947), apply the 'skip-changeset' label; otherwise run 'pnpm changeset' and
          name the packages.

and from the same log:

changesets already on main are exempt and stay where they are; only newly introduced ones are rejected.

The gate is right. When this PR was a pin bump it added .changeset/console-82a94170c405.md. Now that #9393 has landed that file, this PR modifies a changeset already on main — so it adds none, and the gate correctly refuses to let it through silently.

Why skip-changeset is the honest label here, not a way around a red gate

This PR releases nothing new. It corrects the attribution text inside an existing declaration; it touches no package code — the diff is one markdown file, +50/-38.

The dev's content-loss control is what makes that claim checkable rather than asserted: all 100 landed entry texts (sha suffix stripped, compared as sorted sets via comm) are present in the re-derived list, so the release content is provably unchanged — same 121 releasing of 166, same 10 breaking, same 45 release-nothing, same resolved bump level. Only which commit each entry is credited to has moved.

A changeset declares what releases. Nothing about what releases has changed, so there is nothing new to declare. That is the definition of the skip-changeset route, not an exemption from it.

The gate's own guidance notes "A wrong skip-changeset label is caught by review; a wrong empty changeset is caught by nobody." — so this is the reviewed route by design, and this comment is that review. Labels set to documentation, size/s, tooling, skip-changeset (the first three preserved as Auto Label left them at 23:33).

Remaining

TypeScript Type Check was still in progress at last read; everything else on the head is green or skipped. The Part-of PR must not also close its card cancelled entry at 23:33:23 is a superseded run — it re-ran success at 23:33:37.

Once type check reports, this goes through the standing triple: green, flipped out of draft, and actually enqueued verified against a live gh-readonly-queue/main/pr-9398-* ref.

⚠️ Note for whoever reads this later: #9355 spent 20 minutes today looking like a merge-queue admission bug when it was simply conflicted. If this PR arms but doesn't enqueue, check mergeable_state first — I chased four wrong hypotheses before checking the obvious one.

#8653 stays held until this lands.


Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review August 17, 2026 23:42
@os-zhuang
os-zhuang added this pull request to the merge queue Aug 17, 2026
Merged via the queue into main with commit 1b93550 Aug 17, 2026
24 of 26 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-8893-console-pin-ga-bump branch August 17, 2026 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants