Skip to content

PR meta: Move the props list into the shared comment - #82302

Merged
manzoorwanijk merged 29 commits into
trunkfrom
add/pr-meta-props-section
Oct 1, 2026
Merged

manzoorwanijk merged 29 commits into
trunkfrom
add/pr-meta-props-section

Conversation

@manzoorwanijk

@manzoorwanijk manzoorwanijk commented Sep 1, 2026 •

Copy link
Copy Markdown
Member

What?

Follow up to #82249

Moves the props list into the single automation comment, so no bot posts one of its own.

Why?

Props was the last producer that could not expose its body or stay quiet.

How?

WordPress/props-bot-action#287 landed, adding post-comment and comment-body, so the action renders the list and the writer posts it.

  • Section bodies are demoted below their heading. Props opens with ## Unlinked Accounts, which would outrank it.
  • The intro paragraph is stripped: the standalone props bot searches for it, and would find this comment.
  • The writer passes pr-number, since on the review events the workflow and the action come from different refs.
  • Only runs that can write share the pull request's concurrency key, so a no-op label event or a fork's read-only review run cannot cancel one that could.
  • Props carries the largest budget, since truncation cuts from the end where the Co-authored-by block lives.

Testing Instructions

  1. Comment on a pull request and confirm one comment appears, props first.
  2. Confirm no separate props comment is posted.
  3. Add the props-bot label and confirm it is removed and the section refreshes.

@manzoorwanijk manzoorwanijk added the [Type] Code Quality Issues or PRs that relate to code quality label Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026 •

Copy link
Copy Markdown

🤖 PR meta 🤖

🎉 Props

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: manzoorwanijk <manzoorwanijk@git.wordpress.org>
Co-authored-by: ciampo <mciampini@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Updated as activity occurs, without notifying anyone named here. Add the props-bot label to refresh.

📦 Bundle size

Size Change: 0 B

Total Size: 8.25 MB

b239a79 Run

⚡ Performance

Show the results

Client side metrics exclude the server response time.

front-end-block-theme

Metric 899ec73 trunk % Change
timeToFirstByte 56.7 ms +11.64% -1.41% 55.8 ms +7.35% -1.79% 1.61%
largestContentfulPaint 92 ms +13.04% -0% 94 ms +6.38% -6.38% -2.13%
lcpMinusTtfb 35.2 ms +11.65% -3.69% 35.1 ms +19.94% -4.84% 0.28%
wpBeforeTemplate 28.01 ms +9.93% -0.89% 27.94 ms +10.13% -1.04% 0.25%
wpTemplate 24.48 ms +4.62% -3.47% 24.12 ms +3.77% -2.65% 1.49%
wpTotal 52.95 ms +11.18% -1.44% 52.33 ms +7.51% -1.68% 1.18%
wpMemoryUsage 7.62 MB +0% -0% 7.59 MB +0% -0% 0.46%
wpDbQueries 17 +0% -0% 17 +0% -0% 0%

front-end-classic-theme

Metric 899ec73 trunk % Change
timeToFirstByte 42.1 ms +6.65% -1.19% 47.4 ms +7.17% -2.32% -11.18%
largestContentfulPaint 92 ms +2.17% -4.35% 104 ms +0% -3.85% -11.54%
lcpMinusTtfb 47.5 ms +4.84% -2.21% 54 ms +2.87% -3.33% -12.04%
wpBeforeTemplate 25.8 ms +3.8% -0.93% 26.08 ms +12.27% -1.46% -1.07%
wpTemplate 13.51 ms +2.44% -1.55% 17.6 ms +2.61% -0.68% -23.24%
wpTotal 39.31 ms +6.94% -0.99% 44.11 ms +8.07% -1.65% -10.88%
wpMemoryUsage 6.11 MB +0% -0% 6.20 MB +0% -0% -1.57%
wpDbQueries 10 +0% -0% 14 +0% -0% -28.57%

media-processing

Metric 899ec73 trunk % Change
mediaProcessingJpeg 397.92 ms +0.66% -0.68% 393.68 ms +2.94% -0.82% 1.08%
mediaProcessingAvif 6044.99 ms +0.23% -0.14% 6030.5 ms +0.16% -0.21% 0.24%
mediaProcessingJpegToAvif 4167.24 ms +0.16% -0.33% 4153.52 ms +0.29% -0.15% 0.33%

media-upload

Metric 899ec73 trunk % Change
jpegUploadProcessing 1440.02 ms +33.79% -2.68% 1417.79 ms +0.54% -0.31% 1.57%
pngUploadProcessing 176.82 ms +43.86% -4.92% 172.84 ms +10.25% -2.16% 2.3%
largeJpegUploadProcessing 1411.61 ms +0.99% -1.04% 1406.49 ms +0.44% -0.72% 0.36%
multipleImageUploadProcessing 1557.38 ms +1.8% -1.34% 1555.37 ms +7.63% -0.24% 0.13%

post-editor

Metric 899ec73 trunk % Change
serverResponse 439.44 ms +1.08% -8.87% 418.59 ms +6.87% -2.11% 4.98%
firstPaint 263.75 ms +55.08% -13.24% 221.35 ms +37.77% -23.85% 19.16%
domContentLoaded 1018.53 ms +0.98% -2.67% 996.06 ms +1.78% -2.48% 2.26%
loaded 1019.65 ms +0.97% -2.61% 997.26 ms +1.78% -2.49% 2.25%
firstContentfulPaint 433.12 ms +4.62% -2.77% 423.26 ms +2.64% -9.83% 2.33%
firstBlock 2932.48 ms +1.4% -0.93% 2893.55 ms +1.91% -1.14% 1.35%
type 18.05 ms +1.61% -2.6% 17.87 ms +4.76% -1.62% 1.01%
typeWithoutInspector 17.19 ms +4.42% -1.86% 16.85 ms +6.11% -3.2% 2.02%
typeWithTopToolbar 22.37 ms +8.14% -5.86% 23.13 ms +3.8% -0.86% -3.29%
typeContainer 8.86 ms +2.93% -11.85% 8.54 ms +5.5% -4.92% 3.75%
focus 75.6 ms +3.62% -12.39% 70.74 ms +7.73% -9.2% 6.87%
firstFocus 176.08 ms +0% -0% 186.93 ms +0% -0% -5.8%
selectAll 429.48 ms +0.22% -0.42% 411.69 ms +4.2% -1.48% 4.32%
listViewOpen 56.57 ms +6.68% -3.22% 58.68 ms +8.71% -8.27% -3.6%
inserterOpen 23.85 ms +19.04% -11.95% 23.43 ms +18.4% -6.1% 1.79%
inserterHover 2.13 ms +15.02% -3.76% 2.12 ms +16.51% -10.38% 0.47%
inserterSearch 7.97 ms +16.69% -2.89% 8.43 ms +6.29% -2.25% -5.46%
loadPatterns 656.08 ms +2.41% -4.02% 674.6 ms +7.69% -4.14% -2.75%
wpTotal 428.98 ms +1.07% -9.26% 408.14 ms +7.01% -2.22% 5.11%
wpMemoryUsage 13.16 MB +0% -0% 13.13 MB +0% -0% 0.28%
wpDbQueries 54 +0% -1.85% 54 +0% -0% 0%

site-editor

Metric 899ec73 trunk % Change
serverResponse 510.39 ms +3.33% -6.59% 495.28 ms +5.03% -8.08% 3.05%
firstPaint 229.2 ms +0.93% -19.67% 242.68 ms +6.65% -7.41% -5.55%
domContentLoaded 1131.94 ms +1.44% -1.99% 1138.15 ms +1.31% -0.55% -0.55%
loaded 1133.14 ms +1.43% -1.98% 1139.32 ms +1.32% -0.52% -0.54%
firstContentfulPaint 448.45 ms +3.86% -6.58% 450.07 ms +2.19% -0.87% -0.36%
firstBlock 4103.65 ms +0.9% -0.38% 4126.24 ms +0.32% -1.56% -0.55%
type 17.47 ms +7.44% -7.61% 17.74 ms +7.27% -4.57% -1.52%
navigate 115.12 ms +9.66% -8.04% 112.02 ms +13.17% -4.07% 2.77%
loadPatterns 1279.11 ms +5.02% -3.93% 1277.2 ms +3.12% -4.02% 0.15%
loadPages 1059.71 ms +0.84% -1.27% 1044.94 ms +1.7% -0.38% 1.41%
wpTotal 500.39 ms +3.39% -6.59% 485.67 ms +5.03% -8.19% 3.03%
wpMemoryUsage 12.14 MB +0% -0% 12.11 MB +0% -0% 0.3%
wpDbQueries 43 +2.33% -0% 43 +2.33% -0% 0%

b239a79 Run

@manzoorwanijk
manzoorwanijk force-pushed the add/pr-meta-props-section branch from 2ff72fd to 326aa09 Compare September 25, 2026 11:33
@manzoorwanijk
manzoorwanijk marked this pull request as ready for review September 25, 2026 11:35

@tyxla tyxla left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this @manzoorwanijk! Having props in the shared comment makes sense to me.

Left a few questions and concerns, let me know what you think

Comment thread .github/workflows/props-bot.yml Outdated
Comment thread .github/workflows/props-bot.yml Outdated
Comment thread .github/workflows/props-bot.yml
Comment thread .github/workflows/props-bot.yml
Comment thread .github/workflows/props-bot.yml
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread tools/pr-meta/src/run.ts
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread tools/pr-meta/src/comment.ts Outdated

@tyxla tyxla left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, this happened on this PR and it seems off:

Image

@manzoorwanijk

Copy link
Copy Markdown
Member Author

this happened on this PR and it seems off:

That is the flaky tests section folded inside its own fold. Its body already wraps each failing test in <details>, so the section fold made it two clicks and rendered badly nested. The section is no longer folded. 68b6f9c.

@manzoorwanijk
manzoorwanijk requested a review from tyxla September 25, 2026 13:26
@WordPress WordPress deleted a comment from github-actions Bot Sep 25, 2026

@tyxla tyxla left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates, this looks much simpler without the run ordering! I left some new comments. Also, the PR description looks a bit outdated now.

Comment thread .github/workflows/props-bot.yml Outdated
Comment thread .github/workflows/props-bot.yml Outdated
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread .github/workflows/props-bot.yml Outdated
Comment thread .github/workflows/props-bot.yml Outdated
Comment thread .github/workflows/props-bot.yml
Comment thread tools/pr-meta/src/run.ts
Comment thread tools/pr-meta/src/comment.ts Outdated
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: manzoorwanijk <manzoorwanijk@git.wordpress.org>
Co-authored-by: ciampo <mciampini@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Comment thread .github/workflows/props-bot.yml Fixed
@manzoorwanijk
manzoorwanijk requested a review from tyxla September 28, 2026 12:01

@tyxla tyxla left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took another look and I think this is pretty close! Left a few more comments, LMK what you think

Comment thread .github/workflows/props-bot.yml
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread tools/pr-meta/src/comment.ts
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread .github/workflows/props-bot.yml Outdated
Comment thread tools/pr-meta/src/comment.ts Outdated
Comment thread tools/pr-meta/README.md
props-bot-action now renders its message to a comment-body output and
posts nothing when post-comment is false, so the last standalone bot
comment can join the others.

A producer renders its markdown without knowing where it will sit, and
props opens with '## Unlinked Accounts', which would outrank the '####
Props' above it. Demote a body's headings below its section heading,
keeping their hierarchy and leaving code fences alone.

This workflow also runs on the review events, whose payload carries the
pull request number in neither of the two places the writer looked.
The review events check out refs/pull/N/merge, so a writer holding a
writable token would run the pull request's own copy of the action, which
its author can trigger with a review comment on their own diff. Pin the
checkout to the default branch.

Reading the heading level by hunting for a space lost the first word of a
tab-separated heading, and turned '#\tTabbed' into '##d'. Capture the
hashes instead, and track fences by their character and length so a
nested fence no longer closes the one around it.

Props is gathered before its writer takes the lock, so two runs can land
out of order with no commit to order them by. Order those writes by run
instead.
The workflow cancelled runs by a group that falls back to github.sha,
which on issue_comment is the default branch tip and so identical for
every issue and pull request in the repository. One comment anywhere
cancelled a props run everywhere. Key the group by the pull request, as
the writer already does.

Order PR-state writes by run_number rather than run_id: only the former
is documented to increment. A cleared section now keeps a bare pair of
markers, invisible but still carrying its generation, since dropping the
entry dropped the ordering with it and let an older run restore what a
newer one had cleared.

Demotion also handles a CRLF body, whose carriage return stopped every
match and left fences untracked, along with headings indented up to three
spaces and headings with no text.
It guarded a race that cancel-in-progress already prevents, and brought
its own failure modes: run_number restarts at 1 if the workflow is
renamed, freezing every open PR, and a re-run of an older run gathers a
current list that the ordering would reject as stale.
The flaky body folds each failing test already, so the section fold made
it two clicks and rendered badly nested.

Truncation cuts from the end, where props keeps the Co-authored-by block
a committer copies, so give it room and take it back from the others.
Truncation counted triple backticks only, so a cut inside a tilde or
four-backtick fence left it open and rendered the rest as code. It now
shares the tracker the demotion uses.

Heading detection takes a space or tab rather than any whitespace, which
had counted a non-breaking space GitHub does not.
The workflow now passes pr-number: on the review events it runs from the
PR head while the action is checked out from the default branch, which
need not yet know where each event carries the number.

It also strips the intro paragraph, which is the text the standalone
props bot searches for and would otherwise find in the shared comment,
and stops an unrelated label event cancelling a queued update.

The writer skips a write that changes nothing, since props runs on every
comment and review.
A group replaces its pending run whatever cancel-in-progress says, so
holding the flag back was not enough: a label event still evicted a props
update waiting its turn. Those runs now take a group of their own.

Trimming the merged body took leading spaces with it, turning indented
code into a fence that truncation then tried to close. An empty heading
keeps its carriage return, which the pattern rejected.
A review event on a fork gets a read-only token, so such a run cancelled
a comment run that could have written and then failed with a 403 itself.
Only runs that can write share the pull request's key now.

The props-bot label is also removed before the gather rather than after.
A comment arriving meanwhile cancels the run, and a label left behind
cannot be added again to ask for another refresh.
A wider budget only moved the cut; it still landed before the
Co-authored-by block, dropping the whole thing. Props now keeps its
ending instead, reopening a fence the dropped start left open.

Removing the label is its own job, so the gather no longer holds write
access it does not use, and the note about refreshing with the label goes
back in wording the standalone bot will not match.
Comment thread .github/workflows/props-bot-label.yml Dismissed
The README note serves whoever maintains this. The person who needs to
know is the unlinked contributor reading the list, who will not be pinged
when their name is added to a comment that already exists.
@manzoorwanijk
manzoorwanijk requested a review from tyxla September 30, 2026 05:40
Comment thread tools/pr-meta/src/comment.ts
Comment thread tools/pr-meta/README.md Outdated
Comment thread .github/workflows/props-bot.yml Outdated
@manzoorwanijk

Copy link
Copy Markdown
Member Author

I have created WordPress/props-bot-action#288 to clean up some of the usage in this PR

Moving the label removal to its own workflow took the carve-out with it,
on the reasoning that a label run is now an ordinary props run. That holds
for props-bot and for no other label: those still trigger this workflow,
now share the pull request's key, and cancel a refresh before skipping
every job themselves.

The README also had the rollout backwards. Truncating on write stops this
revision cutting a section it did not produce; it does nothing about an
earlier revision, which truncates at render and will keep re-cutting props
until the branch carrying it is updated.

@ciampo ciampo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-approving since all previous feedback has been addressed 🚀

Comment thread tools/pr-meta/src/comment.ts
A branch whose action still truncates at render will cut a section another
branch wrote, so the action has to land before any workflow that adds a
section to that branch.
@manzoorwanijk

Copy link
Copy Markdown
Member Author

I am thinking about merging this for now and making any improvements in follow-up PRs

@ciampo

ciampo commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

I don't have further feedback than #82302 (comment). If it can be addressed easily, I'd prefer doing so, and then merging. Otherwise, if it's a more involved change, happy to move it to a follow-up

manzoorwanijk and others added 3 commits September 30, 2026 15:25
A pull_request_target workflow runs from the default branch whatever the
pull request targets, so trunk's props writer reaches release branch pull
requests whose own action still truncates at render and would re-cut the
section. The new require-base input skips the write unless the pull
request targets the branch named.
Comment thread .github/workflows/props-bot.yml Fixed
@ciampo

ciampo commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

@manzoorwanijk to cut the feedback loop, I pushed a small commit. If you're good to merge, I'm good too :)

@manzoorwanijk

Copy link
Copy Markdown
Member Author

I am not near my desk right now. Please feel free to ship it.

@manzoorwanijk
manzoorwanijk merged commit d5eff1a into trunk Oct 1, 2026
77 checks passed
@manzoorwanijk
manzoorwanijk deleted the add/pr-meta-props-section branch October 1, 2026 04:28
@github-actions github-actions Bot added this to the Gutenberg 24.2 milestone Oct 1, 2026
widoz pushed a commit to widoz/gutenberg that referenced this pull request Oct 2, 2026
* PR meta: Move the props list into the shared comment

props-bot-action now renders its message to a comment-body output and
posts nothing when post-comment is false, so the last standalone bot
comment can join the others.

A producer renders its markdown without knowing where it will sit, and
props opens with '## Unlinked Accounts', which would outrank the '####
Props' above it. Demote a body's headings below its section heading,
keeping their hierarchy and leaving code fences alone.

This workflow also runs on the review events, whose payload carries the
pull request number in neither of the two places the writer looked.

* PR meta: Harden the props writer and its heading demotion

The review events check out refs/pull/N/merge, so a writer holding a
writable token would run the pull request's own copy of the action, which
its author can trigger with a review comment on their own diff. Pin the
checkout to the default branch.

Reading the heading level by hunting for a space lost the first word of a
tab-separated heading, and turned '#\tTabbed' into '##d'. Capture the
hashes instead, and track fences by their character and length so a
nested fence no longer closes the one around it.

Props is gathered before its writer takes the lock, so two runs can land
out of order with no commit to order them by. Order those writes by run
instead.

* PR meta: Order props writes by run, and key props runs by pull request

The workflow cancelled runs by a group that falls back to github.sha,
which on issue_comment is the default branch tip and so identical for
every issue and pull request in the repository. One comment anywhere
cancelled a props run everywhere. Key the group by the pull request, as
the writer already does.

Order PR-state writes by run_number rather than run_id: only the former
is documented to increment. A cleared section now keeps a bare pair of
markers, invisible but still carrying its generation, since dropping the
entry dropped the ordering with it and let an older run restore what a
newer one had cleared.

Demotion also handles a CRLF body, whose carriage return stopped every
match and left fences untracked, along with headings indented up to three
spaces and headings with no text.

* PR meta: Drop the run ordering

It guarded a race that cancel-in-progress already prevents, and brought
its own failure modes: run_number restarts at 1 if the workflow is
renamed, freezing every open PR, and a re-run of an older run gathers a
current list that the ordering would reject as stale.

* PR meta: Stop folding the flaky tests, and widen the props budget

The flaky body folds each failing test already, so the section fold made
it two clicks and rendered badly nested.

Truncation cuts from the end, where props keeps the Co-authored-by block
a committer copies, so give it room and take it back from the others.

* PR meta: Close a truncated fence with the marker that opened it

Truncation counted triple backticks only, so a cut inside a tilde or
four-backtick fence left it open and rendered the rest as code. It now
shares the tracker the demotion uses.

Heading detection takes a space or tab rather than any whitespace, which
had counted a non-breaking space GitHub does not.

* PR meta: Fix the props writer's inputs and cancellation

The workflow now passes pr-number: on the review events it runs from the
PR head while the action is checked out from the default branch, which
need not yet know where each event carries the number.

It also strips the intro paragraph, which is the text the standalone
props bot searches for and would otherwise find in the shared comment,
and stops an unrelated label event cancelling a queued update.

The writer skips a write that changes nothing, since props runs on every
comment and review.

* PR meta: Keep a no-op label run out of the props group

A group replaces its pending run whatever cancel-in-progress says, so
holding the flag back was not enough: a label event still evicted a props
update waiting its turn. Those runs now take a group of their own.

Trimming the merged body took leading spaces with it, turning indented
code into a fence that truncation then tried to close. An empty heading
keeps its carriage return, which the pattern rejected.

* PR meta: Keep runs that cannot write out of the props group

A review event on a fork gets a read-only token, so such a run cancelled
a comment run that could have written and then failed with a 403 itself.
Only runs that can write share the pull request's key now.

The props-bot label is also removed before the gather rather than after.
A comment arriving meanwhile cancels the run, and a label left behind
cannot be added again to ask for another refresh.

* PR meta: Keep the props trailer when the list is truncated

A wider budget only moved the cut; it still landed before the
Co-authored-by block, dropping the whole thing. Props now keeps its
ending instead, reopening a fence the dropped start left open.

Removing the label is its own job, so the gather no longer holds write
access it does not use, and the note about refreshing with the label goes
back in wording the standalone bot will not match.

* PR meta: Remove the label before the gather starts, not beside it

As sibling jobs the removal could still be queued while the gather ran,
so a cancellation left the label stuck on with no way to ask again. The
gather waits for it now, and runs anyway when it is skipped.

Keeping a section's end cut at an exact offset, which could split a fence
opener: nothing was left for the reopen to find, and the retained closer
fenced everything after it. It falls back to the first line break.

Also fixes the shellcheck failure from appending the refresh note, and
makes the sed portable so the step can be run locally.

* PR meta: Keep a label run out of the shared group

Depending on the removal only moved the window: the labeled run shared the
pull request's key, so a comment could cancel it before the label was off,
and the replacement skips removal because its own event is not a label.
Label runs are isolated now, at the cost of overlapping a comment run,
which is the lesser of the two.

Keeping a section's end also needs a line break to cut at. With none the
end cannot be kept safely, so it truncates from the start instead. The
test for it now bisects the opener, and fails without the fix.

* PR meta: Make the truncation test catch the case it was written for

Its trailer supplied a newline, so the previous code also cut at a line
break and the test passed either way. The last budget characters are now
newline-free, which is the case that had no safe cut, and it fails against
the code it replaced.

* PR meta: Make the writer's condition explicit, and cut inside a trailer

The writer had no status function, so an implicit success() also weighed
the label job, which is skipped on every event but the label one. It would
have been skipped on comments and reviews, which is most of them.

Keeping a section's end cut at the first paragraph break, which inside a
fence of single-spaced lines falls past the closing marker and dropped the
whole trailer the wider budget was meant to keep. It cuts at the first line
break now, and the note and any repaired markup come out of the budget
rather than on top of it.

Also documents keep in the README, and trims with trimEnd.

* PR meta: Take the label out of the props workflow, and stop re-truncating

The concurrency group had grown three carve-outs to keep a label run from
being cancelled, and that isolation then let a label run write an older
list. Removing the label is its own workflow now, so the group is keyed by
the pull request for every event and cancellation alone keeps writes in
order. The needs and !cancelled() workarounds go with it, and the removal
awaits its call, tolerates a 404, and skips a draft like the gather does.

A fork's review run is skipped rather than gathered: its token cannot
write, and a review with twenty comments started twenty-one runs that each
queued for the lock and then failed.

Truncation moved from render to write, so a writer only shortens what it
produced. A release branch running an older revision no longer cuts the
props trailer out of a section it did not write.

An empty list now clears the section instead of leaving one holding only
the refresh note, the intro is dropped wherever it sits rather than on
line one alone, and the standalone comment is retired once the section is
in place, in the same pass that looks the comment up.

* PR meta: Measure a truncation instead of reserving room for it

Closing an open block costs a marker of no fixed length, so a fixed
allowance let a section run past its budget and the comment past its
limit. It now measures the result and cuts again by the overflow.

Keeping the end left the kept part's own fence open, which swallowed every
section rendered after it, and cutting the start at a paragraph break
threw away a stack trace entirely, since a fenced block holds no blank
line. Both edges are repaired now, and the cut falls back to a line break
when the paragraph break would waste the room.

An empty result retires the standalone comment too: no contributors is a
result, and it leaves that list just as stale. A label added while a pull
request was a draft is consumed when it becomes ready, rather than sitting
there unable to be added again.

The two tests that passed either way now assert the fence they were
written for and that a preserved section survives the global trim.

* PR meta: Keep a run link from breaking the budget it is measured against

The note is built from the run URL, which nothing bounds, so a long enough
one exceeded the section budget on its own and the fallback returned it
regardless. The link is dropped when it would take more than half the
budget, and the fallback is cut to fit.

The invariant test would have passed against the fixed allowance it
replaced: its longest fence marker was shorter than that allowance, and it
never checked that anything of the body survived. It now carries a marker
of twenty-four backticks, fifty unclosed disclosures, and a floor on how
much is kept.

* PR meta: Bound the run link where it is stored, not only where it is shown

Capping the note left the URL that a commit-scoped section keeps in its
marker and its footer, so a long one stayed inside its budget and still
carried the comment past its limit. The link is dropped at the input
instead, which covers all three places at once.

The test for it was PR-state scoped, where the URL is discarded anyway, so
it could not have caught this. It is commit-scoped now, and a second one
checks a plausible URL still survives.

* PR meta: Take only a marker attribute that reads like what it claims

A marker carries no whitespace and no `>`, or the section stops parsing,
and length was the only thing checked. A commit is now taken only when it
looks like one and a run link only when it is an https URL, on the way in
and on the way back out, since a comment an earlier revision wrote is read
the same way.

The commit is validated before the staleness check rather than after, so an
unusable one is rejected instead of quietly stored as absent.

For the record: a real run URL on this repository is 63 characters, well
inside the 256 the bound allows.

* PR meta: Accept a run link without TLS

Enterprise Server serves Actions over http when TLS is disabled, and
requiring https dropped the link silently.

* PR meta: Say in the comment that editing it notifies nobody

The README note serves whoever maintains this. The person who needs to
know is the unlinked contributor reading the list, who will not be pinged
when their name is added to a comment that already exists.

* PR meta: Keep an unrelated label out of the props group again

Moving the label removal to its own workflow took the carve-out with it,
on the reasoning that a label run is now an ordinary props run. That holds
for props-bot and for no other label: those still trigger this workflow,
now share the pull request's key, and cancel a refresh before skipping
every job themselves.

The README also had the rollout backwards. Truncating on write stops this
revision cutting a section it did not produce; it does nothing about an
earlier revision, which truncates at render and will keep re-cutting props
until the branch carrying it is updated.

* PR meta: Say which order a release branch takes the change in

A branch whose action still truncates at render will cut a section another
branch wrote, so the action has to land before any workflow that adds a
section to that branch.

* PR meta: Hold a section back until the target branch can carry it

A pull_request_target workflow runs from the default branch whatever the
pull request targets, so trunk's props writer reaches release branch pull
requests whose own action still truncates at render and would re-cut the
section. The new require-base input skips the write unless the pull
request targets the branch named.

* Props Bot: Preserve standalone updates on release branches

* Props Bot: Pin the action to a verified commit

---------

Co-authored-by: Marco Ciampini <marco.ciampo@gmail.com>
Co-authored-by: manzoorwanijk <manzoorwanijk@git.wordpress.org>
Co-authored-by: ciampo <mciampini@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>
wporg-sync pushed a commit to WordPress/wordpress-develop that referenced this pull request Oct 20, 2026
This updates the pinned commit hash of the Gutenberg repository from 954fe7f9e04631c41aec4552acd627a7203a2aad to 7b95ee96b54de2e35886971ccf7eb449c324c830 (version 24.2.0).

A full list of changes included in this commit can be found on GitHub: WordPress/gutenberg@954fe7f...7b95ee9

- useServerSideRender: parse messages from caught errors (WordPress/gutenberg#83365)
- Docs: Fix published Vitest migration-guide links (WordPress/gutenberg#83449)
- Fix: Whitespace changes are not shown in the Resolve Block diff. (WordPress/gutenberg#82397)
- Editor: Use SearchableSelect for the post author field (WordPress/gutenberg#83323)
- Docs: Note that block attributes and global styles values are untrusted at render time (WordPress/gutenberg#83473)
- RichText: Remove dead exports and consolidate deprecations (WordPress/gutenberg#83461)
- Inserter: Manage roving tab index to skip re-rendering every item (WordPress/gutenberg#83437)
- SearchableSelectControl: Add to @wordpress/ui (WordPress/gutenberg#80979)
- Try: Bolder "B" icon (WordPress/gutenberg#83321)
- Ignore composer vendor files from top-level gitignore. (WordPress/gutenberg#22283)
- Tests: Add floating notes e2e coverage (WordPress/gutenberg#83477)
- Block Editor: Check the inserter's fallback containers unmemoized (WordPress/gutenberg#83446)
- Packages: Update Ariakit to 0.4.40 (WordPress/gutenberg#83278)
- Tests: Enforce per-call Vitest console expectations (WordPress/gutenberg#83095)
- Theme: Fix virtual modules, root styles, and seed validation (WordPress/gutenberg#83355)
- DataViews: Fix README to describe sort() as receiving field values, not items (WordPress/gutenberg#83483)
- Combobox: Label popup dialogs in stories (WordPress/gutenberg#83476)
- Block editor: Isolate mutable test fixtures (WordPress/gutenberg#83098)
- Blocks: Isolate registration state in tests (WordPress/gutenberg#83099)
- UI: Remove automatic Notice announcements (WordPress/gutenberg#82737)
- Text: Migrate Emotion styles to an SCSS Module (WordPress/gutenberg#82573)
- Block library: Isolate order-sensitive test interactions (WordPress/gutenberg#83101)
- Format Library: unify FormatEditProps to one type, move private types (WordPress/gutenberg#83487)
- UI: Announce selected chips in SearchableChipSelect (WordPress/gutenberg#82863)
- Card: Migrate from Emotion to SCSS modules (WordPress/gutenberg#82577)
- Components: Deprecate the private Menu API (WordPress/gutenberg#82947)
- CustomGradientPicker: Migrate control wrappers to an SCSS module (WordPress/gutenberg#82576)
- Components: Isolate order-sensitive UI tests (WordPress/gutenberg#83103)
- Tests: Isolate mutable configuration fixtures (WordPress/gutenberg#83104)
- Core data: Finish deferred selection updates in RTC test (WordPress/gutenberg#83366)
- Block editor: Wait for final keyboard link suggestions (WordPress/gutenberg#83489)
- Data: Assert and silence resolution error in useSuspenseSelect test (WordPress/gutenberg#83491)
- Tests: Isolate deprecation warning state (WordPress/gutenberg#83107)
- UI: Align selection popup checkmarks with the first label line (WordPress/gutenberg#82942)
- Tests: Resolve Browser Mode commands against the live iframe (WordPress/gutenberg#83495)
- Ensure position type is a string (WordPress/gutenberg#83500)
- MediaUpload: Fix console error when reopening Gallery media library (WordPress/gutenberg#76749)
- Refactor stylelint config detection in lint-style.js (WordPress/gutenberg#79280)
- Docs: Recommend UI Tabs for switching views (WordPress/gutenberg#83516)
- Popover: Close non-modal popovers on iframe interaction (WordPress/gutenberg#83509)
- Typography: List only the weights inside a variable font's range (WordPress/gutenberg#83128)
- Style book: Add link to example text. (WordPress/gutenberg#83448)
- Tests: Add Vitest Browser Mode failure artifacts (WordPress/gutenberg#83093)
- Theme: Make JavaScript token fallback transforms syntax-aware (WordPress/gutenberg#83356)
- Editor: Fix new posts being published with the `auto-draft` slug (WordPress/gutenberg#83518)
- Editor: Gather the View group of the Options menu into submenus (WordPress/gutenberg#82976)
- Tests: Fix PostCSS browser-externalized warnings in Vitest (WordPress/gutenberg#83091)
- Tests: Shuffle test cases in CI (WordPress/gutenberg#83111)
- Update Styles > Blocks description. (WordPress/gutenberg#83515)
- Columns: Remove the column count slider (WordPress/gutenberg#83262)
- BorderControl: Remove `%` from the border width units (WordPress/gutenberg#83492)
- Fields: Fix AuthorView for users who can't edit users (WordPress/gutenberg#83498)
- Update and add justify icons. (WordPress/gutenberg#83519)
- RichText: Refactor useMarkPersistent, fix StrictMode mount mark (WordPress/gutenberg#83463)
- Theme: Improve accessibility, API documentation, and compatibility checks (WordPress/gutenberg#83358)
- Theme: Preserve global token references in Lightning CSS (WordPress/gutenberg#83359)
- Tests: Migrate internal linting to Vitest and remove unused Jest dependencies (WordPress/gutenberg#83502)
- Improve specificity of lightbox button selector (WordPress/gutenberg#70800)
- TextControl: Use design system colors when disabled (WordPress/gutenberg#83307)
- Fix: Image lightbox: overlay becomes unusable (can't close) when it isn't a direct child of `<body>` (WordPress/gutenberg#83480)
- Notes: Extract note selection sync into useNoteSelection hook (WordPress/gutenberg#83528)
- Block Parser: Document `\WP_Block_Parser::$stack` as a list (WordPress/gutenberg#82695)
- CollapsibleCard: Scope the header focus ring to its own trigger (WordPress/gutenberg#81314)
- Fix broken links in docs (WordPress/gutenberg#83545)
- Icons: Use assertEqualHTML() in icons registry tests (WordPress/gutenberg#83544)
- Editor: Merge adjacent revision inline diffs (WordPress/gutenberg#80579)
- Date: Ignore trailing format backslash instead of printing undefined (WordPress/gutenberg#81528)
- Block Supports: Add background-clip block support infrastructure (WordPress/gutenberg#77141)
- Block Editor: Fix translator comments for block count announcements (WordPress/gutenberg#83555)
- Paste: replace non-breaking spaces at the edges of text with regular spaces (WordPress/gutenberg#83464)
- Media Editor: Fix pan drag flooding undo history after wheel zoom (WordPress/gutenberg#83558)
- Rich text: fix iOS double tap selection, preventing focus capture under editable host (WordPress/gutenberg#81042)
- Block editor: migrate state-control badges to UI Badge (WordPress/gutenberg#82608)
- Gallery: Add Order By controls for static gallery, consolidate controls in settings sidebar (WordPress/gutenberg#83438)
- Media editor: show an error when saving attachment details fails (WordPress/gutenberg#83560)
- Position controls: Fix useSelect warning for selected state viewports (WordPress/gutenberg#83570)
- Inserter: Use design system focus ring for previews (WordPress/gutenberg#83126)
- Image: Fix lightbox using thumbnail aspect ratio instead of original image ratio (WordPress/gutenberg#79058)
- Docs: Clarify @wordpress/ui icon color requirements (WordPress/gutenberg#83564)
- docker compose -T if stdin is not a tty (WordPress/gutenberg#78374)
- Storybook: Add new contributing page. (WordPress/gutenberg#83345)
- Widget Primitives: Avoid Vite warnings for runtime widget modules (WordPress/gutenberg#83602)
- Build: Update Vite to 8.3.1 and simplify Storybook tooling (WordPress/gutenberg#83569)
- doc(wp-env) Change core branch from trunk to master in doc (WordPress/gutenberg#83566)
- wp-build: Remove the unused boot, private-apis, and route optional peer dependencies (WordPress/gutenberg#83601)
- CI: Check CHANGELOG presence for published tooling and config packages (WordPress/gutenberg#83577)
- Tests: Enforce Vitest assertion coverage (WordPress/gutenberg#83572)
- Icons: Update heading level icons for optical balance (WordPress/gutenberg#83268)
- ESLint: Add allowUseWithCaution option to use-recommended-components (WordPress/gutenberg#83536)
- Notes: Refactor floating board measurement (WordPress/gutenberg#83485)
- Inserter: Stop re-rendering the block list on block selection change (WordPress/gutenberg#83284)
- Paste: Give each pasted data-URI image unique filename to avoid upload collisions. (WordPress/gutenberg#79480)
- Changelog validator: ignore markdown & configs d46223 (WordPress/gutenberg#83618)
- Font Library: Use UI Menu for collection actions (WordPress/gutenberg#82965)
- Storybook: Show prop descriptions in Canvas controls (WordPress/gutenberg#83581)
- test: Link upstream warning fixes in config (WordPress/gutenberg#83632)
- Storybook: Use one block-editor store module (WordPress/gutenberg#83636)
- Tests: Use strict assertions synced from Core changeset 63934. (WordPress/gutenberg#83619)
- Math: Store cell alignment in the MathML and polyfill alignment and overlines in Chromium (WordPress/gutenberg#83164)
- Storybook: Reuse PostCSS browser resolver in smoke tests (WordPress/gutenberg#83635)
- Editor: Use UI Menu for template options (WordPress/gutenberg#82964)
- RTC: Add a EntitySyncManager interface in core-data (WordPress/gutenberg#83410)
- Term Count: Add margin support (WordPress/gutenberg#83608)
- Archives: Add minimum height support (WordPress/gutenberg#83573)
- Media Editor: Stop the crop pixel snap from recording undo history (WordPress/gutenberg#83571)
- Term Name: Add margin support (WordPress/gutenberg#83606)
- Post Author Biography: Add text indent support (WordPress/gutenberg#83614)
- Code: Add minimum width and height support (WordPress/gutenberg#83574)
- Details: Add minimum width support (WordPress/gutenberg#83576)
- Post Content: Add minimum width support (WordPress/gutenberg#83575)
- Post Excerpt: Add minimum width and height support (WordPress/gutenberg#83578)
- Post Title: Add minimum width and height support (WordPress/gutenberg#83600)
- Footnotes: Add minimum width and height support (WordPress/gutenberg#83579)
- Storybook: Place Notice announcements under Components (WordPress/gutenberg#83617)
- InputControl: Darken the field border on hover (WordPress/gutenberg#83306)
- npm: Switch from legacy-peer-deps to strict-peer-deps (WordPress/gutenberg#81029)
- Term Name: Add minimum width and height support (WordPress/gutenberg#83599)
- Columns: Allow dropping a column at the outer edges (WordPress/gutenberg#83274)
- E2E: Pin the site title in the Interactivity API router specs and give the E2E Storybook build more heap. (WordPress/gutenberg#83474)
- Heading: Add minimum width and height support (WordPress/gutenberg#83580)
- Login/out: Add minimum width and height support (WordPress/gutenberg#83583)
- Verse: Add minimum width support (WordPress/gutenberg#83609)
- Video, Cover: Don't autoplay in the editor when reduced motion is preferred (WordPress/gutenberg#83337)
- Media & Text: Lower the specificity of the content padding (WordPress/gutenberg#83563)
- Pagination: Add padding, margin, and block gap support (WordPress/gutenberg#83743)
- Fix peer dependency conflicts left in the lockfile (WordPress/gutenberg#83754)
- Comments Pagination: Add padding, margin, and block gap support (WordPress/gutenberg#83744)
- Term Count: Add minimum width and height support (WordPress/gutenberg#83596)
- Read More: Add border style support (WordPress/gutenberg#83735)
- Cover: Don't autoplay embedded background videos when reduced motion is preferred (WordPress/gutenberg#83452)
- No Results: Add minimum width and height support (WordPress/gutenberg#83584)
- RichText: Rename utils.jsx to utils.js (WordPress/gutenberg#83758)
- Quote: Add minimum width support (WordPress/gutenberg#83592)
- Upgrade typescript-eslint to v8.70.1 (WordPress/gutenberg#83760)
- Tabs: Add minimum width support (WordPress/gutenberg#83595)
- Site Tagline: Add minimum width and height support (WordPress/gutenberg#83589)
- Heading: Add text indent support (WordPress/gutenberg#83615)
- Site Title: Add minimum width and height support (WordPress/gutenberg#83593)
- Home Link: Add padding and margin support (WordPress/gutenberg#83607)
- Preformatted: Add minimum width and height support (WordPress/gutenberg#83587)
- Include E2E Storybook sources in docgen (WordPress/gutenberg#83634)
- Extensible Site Editor: Pass custom block categories to the blocks store (WordPress/gutenberg#83762)
- Packages: Declare missing peer dependencies and check them in CI (WordPress/gutenberg#83765)
- Post Terms: Add minimum width and height support (WordPress/gutenberg#83586)
- Group, Cover: Track drop zone element in state (WordPress/gutenberg#83756)
- Global Styles: Add pseudo-state controls for Navigation Link (WordPress/gutenberg#83451)
- storybook: Register playground core blocks once (WordPress/gutenberg#83637)
- Document Outline: Show the design system focus ring instead of legacy box-shadow (WordPress/gutenberg#83755)
- storybook: Update BlockPopover fixture to API version 3 (WordPress/gutenberg#83642)
- Add typing to iAPI's getConfig() (WordPress/gutenberg#71692)
- Components: deprecate Badge (WordPress/gutenberg#82379)
- Block Editor: Fix style / nested attribute overwrite during multi-selection (WordPress/gutenberg#80070)
- Notes: Restrict menu actions for resolution notes and resolved threads (WordPress/gutenberg#73243)
- UI: Add change actions to form primitive stories (WordPress/gutenberg#83591)
- Icons: Support keyword-based search in the icons registry (WordPress/gutenberg#82367)
- Avatar: Explain that avatars use the Gravatar service (WordPress/gutenberg#83567)
- UI: Add item labels and descriptions to remaining popups (WordPress/gutenberg#83493)
- PaletteEdit: Stop changing the slug when renaming a preset (WordPress/gutenberg#83750)
- Storybook: Fix missing block styles in BlockCanvas playground stories (WordPress/gutenberg#81070)
- Tests: Enforce Vitest callback, promise, and title rules (WordPress/gutenberg#83620)
- ItemGroup: Use design system focus ring (WordPress/gutenberg#83764)
- Keep the legacy CheckboxControl visually consistent across viewports (WordPress/gutenberg#83612)
- Media editor: Use UI Menu for crop aspect ratio (WordPress/gutenberg#82968)
- Use strict assertions in override script tests (WordPress/gutenberg#83782)
- Home Link: Add minimum width and height support (WordPress/gutenberg#83582)
- Tab Panels: Add minimum height support (WordPress/gutenberg#83594)
- Post Time to Read: Add minimum width and height support (WordPress/gutenberg#83598)
- Term Description: Add minimum width and height support (WordPress/gutenberg#83597)
- UI: Keep InputLayout chrome at md on small viewports (WordPress/gutenberg#82764)
- Math: Add minimum width and height support (WordPress/gutenberg#83585)
- Tests: Bump undici in the AI development test lockfile (WordPress/gutenberg#83799)
- Bump brace-expansion in /test/ai-development (WordPress/gutenberg#83807)
- Bump js-yaml and promptfoo in /test/ai-development (WordPress/gutenberg#83797)
- Bump fast-uri from 3.1.7 to 3.1.8 (WordPress/gutenberg#83829)
- Update AI Development package versions after npm audit (WordPress/gutenberg#83830)
- Notes: Add show and hide options for floating notes (WordPress/gutenberg#83768)
- Add separators to item popup components (WordPress/gutenberg#83776)
- Components: Align RadioControl colors with UI Radio (WordPress/gutenberg#83270)
- E2E: Mock Openverse in image drag-and-drop inserter test (WordPress/gutenberg#83842)
- FormToggle: Match Switch colors across states (WordPress/gutenberg#83773)
- Bump `@react-spring/web` from 9.4.5 to 10.1.2 (WordPress/gutenberg#83796)
- ColorPalette: Show design system focus ring on custom color button (WordPress/gutenberg#83841)
- Docs: Remove CheckboxControl heading from InspectorControls example (WordPress/gutenberg#83844)
- Base Styles: Default the admin theme color to Blueberry (WordPress/gutenberg#83749)
- Menu: Guard against nesting Group and RadioGroup (WordPress/gutenberg#83792)
- Template Part: Fall back to rendering a template part from the theme file if the db version is unavailable (WordPress/gutenberg#83809)
- Tests: Reset deprecation history in shared Vitest setup (WordPress/gutenberg#83849)
- Menu: Disable triggers instead of roots in consumers (WordPress/gutenberg#83791)
- Playlist: Replace the waveform player patch with its no-autoinit entry (WordPress/gutenberg#83132)
- Update UI Spinner appearance and add a color prop (WordPress/gutenberg#83775)
- UI: Align component names with their semantics (WordPress/gutenberg#83789)
- Checkbox: Prevent rounded themes from making checkboxes circular (WordPress/gutenberg#83526)
- Storybook: Update manifest snapshot for Spinner color prop (WordPress/gutenberg#83856)
- Button: Only open the link popover on explicit user action (WordPress/gutenberg#30166)
- Gallery Lightbox: Prevent image click from closing the dialog when navigation is enabled (WordPress/gutenberg#78898)
- UI: Recommend Checkbox family components (WordPress/gutenberg#83771)
- RadioControl: Keep a 16px visual with a larger hit target (WordPress/gutenberg#83840)
- Table: replace deprecated word-break with overflow-wrap: anywhere (WordPress/gutenberg#82480)
- Tag Cloud: Update styles and add `!important` (WordPress/gutenberg#70224)
- Correctly document the `blockName` property as being nullable (WordPress/gutenberg#70900)
- Add inertValue helper and use it for setting inert attribute (WordPress/gutenberg#83871)
- Enable editableRoot for the list item block for multi-selection on mobile (WordPress/gutenberg#82816)
- Verify localized data retention in override script test (WordPress/gutenberg#83845)
- Tests: Bump ibm-cloud-sdk-core in the AI development test lockfile (WordPress/gutenberg#83887)
- UI: Recommend Notice component (WordPress/gutenberg#82685)
- Fix: MediaUpload `gallery` prop ignores `allowedTypes` (WordPress/gutenberg#78257)
- Media editor: Add a session boundary above the cropper (WordPress/gutenberg#83550)
- DataViews: Measure the container as the data view mounts to avoid a single column flash (WordPress/gutenberg#83752)
- Pullquote: Add minimum width support (WordPress/gutenberg#83588)
- Media editor: Remove initial state seeding from the session (WordPress/gutenberg#83893)
- UI: Add e2e Storybook popup item layout fixtures (WordPress/gutenberg#83488)
- Storybook: Give CI job a distinct name (WordPress/gutenberg#83869)
- Coding standards: Skip anonymous class methods in block library function name sniff (WordPress/gutenberg#83900)
- Pagination: Add border support (WordPress/gutenberg#83745)
- PR meta: Move the props list into the shared comment (WordPress/gutenberg#82302)
- Comments Pagination: Add border support (WordPress/gutenberg#83746)
- Scripts: Resolve default configs without hoisted dependencies (WordPress/gutenberg#83902)
- Image: Fix invalid CSS url() value in circle-mask style (WordPress/gutenberg#82333)
- Query Total: Add minimum width and height support (WordPress/gutenberg#83590)
- Scripts: Treat files passed after --fix as file arguments (WordPress/gutenberg#83521)
- Editor: Remove icon for 'Export' more menu item (WordPress/gutenberg#83901)
- Dashboard Widgets: let a mounted widget declare actions at runtime (WordPress/gutenberg#83877)
- Framework: Switch from hoisted to isolated dependencies (WordPress/gutenberg#83847)
- Test: Run Vitest type graph validation in process (WordPress/gutenberg#83851)
- Remove use-memo-one usage (missing React 19 compat) (WordPress/gutenberg#83952)
- Fix Post Featured Image crash when isLink is enabled (WordPress/gutenberg#81584)
- Experiment: restyle classic wp-admin controls from design system tokens (WordPress/gutenberg#82425)
- Tests: Lint JavaScript Vitest mock imports (WordPress/gutenberg#83783)
- Build: Remove patch-package (WordPress/gutenberg#83982)
- Docs: Update deprecation testing guidance for shared reset (WordPress/gutenberg#83989)
- DataViews: list hideable fields alphabetically in the view config (WordPress/gutenberg#83947)
- Core Data: Rank link suggestions by type, and stop discarding merged results (WordPress/gutenberg#83407)
- Add new react-inert-value package with inertValue helper (WordPress/gutenberg#83987)
- Connectors: Keep a stored API key read-only when it can't be verified (WordPress/gutenberg#83889)
- Navigation: Search every entity type from the link UI (WordPress/gutenberg#83408)
- Tests: Cover translation setup in override script tests (WordPress/gutenberg#83886)
- Build: Update Vite to 8.3.2 and remove the PostCSS browser resolver (WordPress/gutenberg#83992)
- Update readme title to match block name (WordPress/gutenberg#83999)
- RTC: Fix undo breaking for non-synced entities (WordPress/gutenberg#83888)
- CI: Cover the AI development lockfile with Dependabot instead of npm audit (WordPress/gutenberg#83997)
- Latest Posts: Add minimum width and height support (WordPress/gutenberg#83905)
- Avatar: Add shadow support (WordPress/gutenberg#83929)
- Tab List: Add shadow support (WordPress/gutenberg#83922)
- Buttons: Add minimum width and height support (WordPress/gutenberg#83894)
- Social Icons: Add shadow support (WordPress/gutenberg#83920)
- Columns: Add minimum width and height support (WordPress/gutenberg#83895)
- Gallery: Add shadow support (WordPress/gutenberg#83919)
- File: Add shadow support (WordPress/gutenberg#83918)
- Page List: Add minimum width and height support (WordPress/gutenberg#83908)
- Build Tooling: Read npm v12 pack --json output (WordPress/gutenberg#84011)
- Accordion Heading: Add line height support (WordPress/gutenberg#83958)
- Paragraph: Add shadow support (WordPress/gutenberg#83926)
- Media & Text: Add minimum width and height support (WordPress/gutenberg#83906)
- Tests: Patch basic-ftp in AI development dependencies (WordPress/gutenberg#84000)
- Env, E2E: Update dependencies that ran native install scripts (WordPress/gutenberg#84012)
- Tests: Update Vitest to 5.0.3 and Storybook to 10.6.1 (WordPress/gutenberg#83996)
- Search: Add padding support (WordPress/gutenberg#83984)
- Block editor: Honour background skip serialization in the editor (WordPress/gutenberg#83943)
- Framework: Declare React types in the workspaces that use them (WordPress/gutenberg#84013)
- Fit text: Size each block instance in a loop independently (WordPress/gutenberg#83985)
- FocalPointPicker: end a drag released over the editor canvas (WordPress/gutenberg#83348)
- Tests: Cover Menu scroll lock and LinkControl protocols in browsers (WordPress/gutenberg#83991)
- List: Add shadow support (WordPress/gutenberg#83923)
- UI: Add Progress with custom color support (WordPress/gutenberg#83781)
- ESLint: Allow non-module stylesheet imports in unit tests (WordPress/gutenberg#84019)
- Canvas loader: Use UI Progress and pass color via the indicator prop (WordPress/gutenberg#83860)
- Menu: Align group labels and separators with indented item labels. (WordPress/gutenberg#83993)
- react-inert-value: add missing types/react peer dep (WordPress/gutenberg#84024)
- Docs: Refine design system agent guidance (WordPress/gutenberg#84007)
- Navigation: List allowed blocks in the link UI search results + add transformSuggestions to Link Control (WordPress/gutenberg#83652)
- Sync: Remove exposed wp.sync package (WordPress/gutenberg#81999)
- Style: Update color to use CSS variable in edit-site (WordPress/gutenberg#79002)
- Popover: drop the will-change hint once the popover stops moving (WordPress/gutenberg#77359)
- MediaEdit: Show a checkerboard background behind image previews (WordPress/gutenberg#83846)
- Quote: Add button colour support (WordPress/gutenberg#83983)
- Media & Text: Add duotone support (WordPress/gutenberg#83981)
- Gallery: Add duotone support (WordPress/gutenberg#83978)
- Interactivity API Router: Add reactive navigation lifecycle and initiator API (WordPress/gutenberg#83280)
- Notes: Move floating notes into a canvas margin (WordPress/gutenberg#83786)
- Verse: Add text columns and indent support (WordPress/gutenberg#83962)
- Notes: Scroll floating notes with the canvas (WordPress/gutenberg#83852)
- Notes: Add Undo to deleted note snackbar (WordPress/gutenberg#83988)
- Framework: Move @typescript/native from the root to the workspaces that use it (WordPress/gutenberg#84027)
- Repair invalid peer dependencies in the lockfile (WordPress/gutenberg#84062)
- Term Template: Add minimum width and height support (WordPress/gutenberg#83914)
- Fix check type declarations (WordPress/gutenberg#84070)
- Media: track the original attachment id for edited images (WordPress/gutenberg#81803)
- Post Comments Form: Add font family support (WordPress/gutenberg#83967)
- Media Utils: Add `MediaEdit` as a private API (WordPress/gutenberg#84046)
- Build Tools: Fix flaky ESM package types test timeout (WordPress/gutenberg#84068)
- Embed: Add padding support (WordPress/gutenberg#83963)
- Interactivity API: Add a data-wp-html directive (WordPress/gutenberg#83092)
- Typography and "block-default icon polish. (WordPress/gutenberg#84073)
- Release Tooling: Read the npm v12 JSON output shapes (WordPress/gutenberg#84075)
- Menu: Align submenu labels and highlight open parents (WordPress/gutenberg#84031)
- Props Bot: Skip bare reviews that duplicate their review comment runs (WordPress/gutenberg#84076)
- Dataviews: use inertValue in CompositeGrid (WordPress/gutenberg#84072)
- UI: Add Meter (WordPress/gutenberg#83855)
- Media & Text: Add shadow support (WordPress/gutenberg#83976)
- Media editor: restore original image in modal (WordPress/gutenberg#81805)
- List: Add background image, size, and gradient support (WordPress/gutenberg#83935)
- List Item: Add background image, size, and gradient support (WordPress/gutenberg#83936)
- Block Editor: Fix 'Manage allowed blocks' not shown when its the only 'Advanced' control (WordPress/gutenberg#84067)
- Design System: Clarify tooltip labeling and UI review guidance (WordPress/gutenberg#83898)
- Gallery: Add minimum width and height support (WordPress/gutenberg#83897)
- File: Add minimum width and height support (WordPress/gutenberg#83896)
- Media: Return 0 from the edit root lookup when there is no edit root (WordPress/gutenberg#84096)
- Read More: Add minimum width and height support (WordPress/gutenberg#83912)
- UI: Recommend Radio family components (WordPress/gutenberg#83872)
- Latest Comments: Add minimum width and height support (WordPress/gutenberg#83904)
- chore: Use v24 in .nvmrc (WordPress/gutenberg#84061)
- Embed: Add minimum width and height support (WordPress/gutenberg#83903)
- Post Comments Form: Add minimum width and height support (WordPress/gutenberg#83910)
- Post Featured Image: Add border style support (WordPress/gutenberg#83956)
- Buttons: Add shadow support (WordPress/gutenberg#83916)
- Poetry: Add fit text support (WordPress/gutenberg#83980)
- Video: Add duotone support (WordPress/gutenberg#83979)
- Notes: Keep anchor writes out of undo history (WordPress/gutenberg#84079)
- ProgressBar: Use WPDS color tokens (WordPress/gutenberg#83779)
- REST API: Add action-trash link to posts and comments (WordPress/gutenberg#84045)
- RSS: Add minimum width and height support (WordPress/gutenberg#83913)
- Notes: Reset paragraph top margin in floating notes (WordPress/gutenberg#84101)
- Global Styles: Fix popover position in Styles screen (WordPress/gutenberg#84048)
- Block Switcher: Show design system focus ring on pattern previews (WordPress/gutenberg#83933)
- MediaEdit: Use design system focus ring (WordPress/gutenberg#83854)
- Notes: Delete permanently when the trash is disabled (WordPress/gutenberg#84102)
- Release: Rewrite SVN publication scripts in Node.js (WordPress/gutenberg#84034)
- ContentEditableControl: Keep a disabled field focusable (WordPress/gutenberg#84083)
- States: Scope per-instance rules to the block's root element (WordPress/gutenberg#83986)
- List Item: Add shadow support (WordPress/gutenberg#83925)
- DataViews: Truncate filter chips instead of wrapping them (WordPress/gutenberg#83879)
- Experiments: Turn the React 19 experiment on by default (WordPress/gutenberg#83784)
- Notes: Extract NoteReply and lift AddNote gating (WordPress/gutenberg#84106)
- Interactivity API: Remove expired deprecated behaviors (WordPress/gutenberg#84098)
- Breadcrumbs: Fix typo in aria label translation context (WordPress/gutenberg#84112)
- ESLint: Allow generated test titles (WordPress/gutenberg#83995)
- Icons: Add keywords to icon manifest (WordPress/gutenberg#83884)
- Tooltip: Control the hover delay cancellation test clock (WordPress/gutenberg#84113)
- VS Code: Add managed workspace config (WordPress/gutenberg#84025)
- Breadcrumb: fix getMeasurementRender for React 19 (WordPress/gutenberg#84069)
- Notes: Fix flaky thread scroll e2e test (WordPress/gutenberg#84118)
- Detect the database client in the unit test debug step. (WordPress/gutenberg#84089)
- UI: Preserve Autocomplete item type inference (WordPress/gutenberg#84095)
- UI: Recommend Switch family components (WordPress/gutenberg#84097)
- Env: Add an option to choose the MariaDB version (WordPress/gutenberg#83751)
- UI: Preserve Combobox source item generics (WordPress/gutenberg#84094)
- Menu: Tighten spacing, use 16px prefix icons, and cap width at 320px (WordPress/gutenberg#84028)
- Notes: Preserve unsent note and reply drafts (WordPress/gutenberg#84110)
- Theme: Add integration test coverage for seed colors in artifacts (WordPress/gutenberg#81161)
- Progress: Migrate remaining ProgressBar usages and recommend UI Progress (WordPress/gutenberg#84021)
- Components: Fix polymorphism typings leaking `as` prop (WordPress/gutenberg#82704)
- Media & Text: Add background image, size, and gradient support (WordPress/gutenberg#83927)
- Experiments: Use a mock plugin slug that no WordPress build ships in the unrelated-plugin test (WordPress/gutenberg#84133)
- Button: Add background image, size, and gradient support (WordPress/gutenberg#83950)
- Tests: Isolate Ajv per test in wp-env schema tests to avoid order dependence (WordPress/gutenberg#84139)
- Storybook: Read icon keywords from the manifest (WordPress/gutenberg#84127)
- SandBox: Fix embed previews that require a referrer in Safari (WordPress/gutenberg#84014)
- Notes: Restore child notes trashed along with their parent note (WordPress/gutenberg#84100)
- Style states: fix exception when there's no selected block (WordPress/gutenberg#84140)
- Chore: Use v24.20 in  `.nvmrc` config file. (WordPress/gutenberg#84138)
- Security: Opt in to the npm v12 supply-chain defaults (WordPress/gutenberg#82689)
- Docs: Describe isolated dependencies for agents and contributors (WordPress/gutenberg#84141)
- Upgrade code and types to React 19 (WordPress/gutenberg#83941)
- Latest Comments: Add border support (WordPress/gutenberg#84148)
- Add prettier, eslint and stylelint to the root package.json (WordPress/gutenberg#84017)
- FontSizePicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84126)
- Fields API: Add the server-side registry and REST route (WordPress/gutenberg#84078)
- Block bindings: add support to `icon` attribute of `core/icon` (WordPress/gutenberg#80730)
- VisuallyHidden: Move hiding styles outside CSS cascade layers (WordPress/gutenberg#84114)
- Theme: Generate complete border token modes for Figma testing (WordPress/gutenberg#84035)
- Developer tools: Simplify editor setup and add Zed settings (WordPress/gutenberg#84143)
- Consolidate wp-admin container radiuses onto the design system scale (WordPress/gutenberg#82427)
- CustomGradientPicker: Extend control point targets to the bar height (WordPress/gutenberg#84124)
- Notes: Draw the canvas divider from body so it uses the theme text color (WordPress/gutenberg#84158)
- Icons: Experiment with proportional stroke scaling (WordPress/gutenberg#84081)
- Global Styles: Ignore theme.json values of unexpected types (WordPress/gutenberg#84523)
- React 19 codemod: apply defaultProps when rendering a memo component (WordPress/gutenberg#84568)
- React 19: add new incompatible plugins (WordPress/gutenberg#84607)
- Tests: Fix HTML comparison tests (WordPress/gutenberg#84294)
- Tests: Fix list item unsafe markup test on older WordPress versions (WordPress/gutenberg#84302)
- Experiments: don't invalidate saved option with a legacy key (WordPress/gutenberg#84619)
- Tests: Scope Classic block media checkbox locator (WordPress/gutenberg#84524)

Props mamaduka.
See #66340



git-svn-id: https://develop.svn.wordpress.org/trunk@64587 602fd350-edb4-49c9-b593-d223f7449a82
wporg-sync pushed a commit to WordPress/WordPress that referenced this pull request Oct 20, 2026
This updates the pinned commit hash of the Gutenberg repository from 954fe7f9e04631c41aec4552acd627a7203a2aad to 7b95ee96b54de2e35886971ccf7eb449c324c830 (version 24.2.0).

A full list of changes included in this commit can be found on GitHub: WordPress/gutenberg@954fe7f...7b95ee9

- useServerSideRender: parse messages from caught errors (WordPress/gutenberg#83365)
- Docs: Fix published Vitest migration-guide links (WordPress/gutenberg#83449)
- Fix: Whitespace changes are not shown in the Resolve Block diff. (WordPress/gutenberg#82397)
- Editor: Use SearchableSelect for the post author field (WordPress/gutenberg#83323)
- Docs: Note that block attributes and global styles values are untrusted at render time (WordPress/gutenberg#83473)
- RichText: Remove dead exports and consolidate deprecations (WordPress/gutenberg#83461)
- Inserter: Manage roving tab index to skip re-rendering every item (WordPress/gutenberg#83437)
- SearchableSelectControl: Add to @wordpress/ui (WordPress/gutenberg#80979)
- Try: Bolder "B" icon (WordPress/gutenberg#83321)
- Ignore composer vendor files from top-level gitignore. (WordPress/gutenberg#22283)
- Tests: Add floating notes e2e coverage (WordPress/gutenberg#83477)
- Block Editor: Check the inserter's fallback containers unmemoized (WordPress/gutenberg#83446)
- Packages: Update Ariakit to 0.4.40 (WordPress/gutenberg#83278)
- Tests: Enforce per-call Vitest console expectations (WordPress/gutenberg#83095)
- Theme: Fix virtual modules, root styles, and seed validation (WordPress/gutenberg#83355)
- DataViews: Fix README to describe sort() as receiving field values, not items (WordPress/gutenberg#83483)
- Combobox: Label popup dialogs in stories (WordPress/gutenberg#83476)
- Block editor: Isolate mutable test fixtures (WordPress/gutenberg#83098)
- Blocks: Isolate registration state in tests (WordPress/gutenberg#83099)
- UI: Remove automatic Notice announcements (WordPress/gutenberg#82737)
- Text: Migrate Emotion styles to an SCSS Module (WordPress/gutenberg#82573)
- Block library: Isolate order-sensitive test interactions (WordPress/gutenberg#83101)
- Format Library: unify FormatEditProps to one type, move private types (WordPress/gutenberg#83487)
- UI: Announce selected chips in SearchableChipSelect (WordPress/gutenberg#82863)
- Card: Migrate from Emotion to SCSS modules (WordPress/gutenberg#82577)
- Components: Deprecate the private Menu API (WordPress/gutenberg#82947)
- CustomGradientPicker: Migrate control wrappers to an SCSS module (WordPress/gutenberg#82576)
- Components: Isolate order-sensitive UI tests (WordPress/gutenberg#83103)
- Tests: Isolate mutable configuration fixtures (WordPress/gutenberg#83104)
- Core data: Finish deferred selection updates in RTC test (WordPress/gutenberg#83366)
- Block editor: Wait for final keyboard link suggestions (WordPress/gutenberg#83489)
- Data: Assert and silence resolution error in useSuspenseSelect test (WordPress/gutenberg#83491)
- Tests: Isolate deprecation warning state (WordPress/gutenberg#83107)
- UI: Align selection popup checkmarks with the first label line (WordPress/gutenberg#82942)
- Tests: Resolve Browser Mode commands against the live iframe (WordPress/gutenberg#83495)
- Ensure position type is a string (WordPress/gutenberg#83500)
- MediaUpload: Fix console error when reopening Gallery media library (WordPress/gutenberg#76749)
- Refactor stylelint config detection in lint-style.js (WordPress/gutenberg#79280)
- Docs: Recommend UI Tabs for switching views (WordPress/gutenberg#83516)
- Popover: Close non-modal popovers on iframe interaction (WordPress/gutenberg#83509)
- Typography: List only the weights inside a variable font's range (WordPress/gutenberg#83128)
- Style book: Add link to example text. (WordPress/gutenberg#83448)
- Tests: Add Vitest Browser Mode failure artifacts (WordPress/gutenberg#83093)
- Theme: Make JavaScript token fallback transforms syntax-aware (WordPress/gutenberg#83356)
- Editor: Fix new posts being published with the `auto-draft` slug (WordPress/gutenberg#83518)
- Editor: Gather the View group of the Options menu into submenus (WordPress/gutenberg#82976)
- Tests: Fix PostCSS browser-externalized warnings in Vitest (WordPress/gutenberg#83091)
- Tests: Shuffle test cases in CI (WordPress/gutenberg#83111)
- Update Styles > Blocks description. (WordPress/gutenberg#83515)
- Columns: Remove the column count slider (WordPress/gutenberg#83262)
- BorderControl: Remove `%` from the border width units (WordPress/gutenberg#83492)
- Fields: Fix AuthorView for users who can't edit users (WordPress/gutenberg#83498)
- Update and add justify icons. (WordPress/gutenberg#83519)
- RichText: Refactor useMarkPersistent, fix StrictMode mount mark (WordPress/gutenberg#83463)
- Theme: Improve accessibility, API documentation, and compatibility checks (WordPress/gutenberg#83358)
- Theme: Preserve global token references in Lightning CSS (WordPress/gutenberg#83359)
- Tests: Migrate internal linting to Vitest and remove unused Jest dependencies (WordPress/gutenberg#83502)
- Improve specificity of lightbox button selector (WordPress/gutenberg#70800)
- TextControl: Use design system colors when disabled (WordPress/gutenberg#83307)
- Fix: Image lightbox: overlay becomes unusable (can't close) when it isn't a direct child of `<body>` (WordPress/gutenberg#83480)
- Notes: Extract note selection sync into useNoteSelection hook (WordPress/gutenberg#83528)
- Block Parser: Document `\WP_Block_Parser::$stack` as a list (WordPress/gutenberg#82695)
- CollapsibleCard: Scope the header focus ring to its own trigger (WordPress/gutenberg#81314)
- Fix broken links in docs (WordPress/gutenberg#83545)
- Icons: Use assertEqualHTML() in icons registry tests (WordPress/gutenberg#83544)
- Editor: Merge adjacent revision inline diffs (WordPress/gutenberg#80579)
- Date: Ignore trailing format backslash instead of printing undefined (WordPress/gutenberg#81528)
- Block Supports: Add background-clip block support infrastructure (WordPress/gutenberg#77141)
- Block Editor: Fix translator comments for block count announcements (WordPress/gutenberg#83555)
- Paste: replace non-breaking spaces at the edges of text with regular spaces (WordPress/gutenberg#83464)
- Media Editor: Fix pan drag flooding undo history after wheel zoom (WordPress/gutenberg#83558)
- Rich text: fix iOS double tap selection, preventing focus capture under editable host (WordPress/gutenberg#81042)
- Block editor: migrate state-control badges to UI Badge (WordPress/gutenberg#82608)
- Gallery: Add Order By controls for static gallery, consolidate controls in settings sidebar (WordPress/gutenberg#83438)
- Media editor: show an error when saving attachment details fails (WordPress/gutenberg#83560)
- Position controls: Fix useSelect warning for selected state viewports (WordPress/gutenberg#83570)
- Inserter: Use design system focus ring for previews (WordPress/gutenberg#83126)
- Image: Fix lightbox using thumbnail aspect ratio instead of original image ratio (WordPress/gutenberg#79058)
- Docs: Clarify @wordpress/ui icon color requirements (WordPress/gutenberg#83564)
- docker compose -T if stdin is not a tty (WordPress/gutenberg#78374)
- Storybook: Add new contributing page. (WordPress/gutenberg#83345)
- Widget Primitives: Avoid Vite warnings for runtime widget modules (WordPress/gutenberg#83602)
- Build: Update Vite to 8.3.1 and simplify Storybook tooling (WordPress/gutenberg#83569)
- doc(wp-env) Change core branch from trunk to master in doc (WordPress/gutenberg#83566)
- wp-build: Remove the unused boot, private-apis, and route optional peer dependencies (WordPress/gutenberg#83601)
- CI: Check CHANGELOG presence for published tooling and config packages (WordPress/gutenberg#83577)
- Tests: Enforce Vitest assertion coverage (WordPress/gutenberg#83572)
- Icons: Update heading level icons for optical balance (WordPress/gutenberg#83268)
- ESLint: Add allowUseWithCaution option to use-recommended-components (WordPress/gutenberg#83536)
- Notes: Refactor floating board measurement (WordPress/gutenberg#83485)
- Inserter: Stop re-rendering the block list on block selection change (WordPress/gutenberg#83284)
- Paste: Give each pasted data-URI image unique filename to avoid upload collisions. (WordPress/gutenberg#79480)
- Changelog validator: ignore markdown & configs d46223 (WordPress/gutenberg#83618)
- Font Library: Use UI Menu for collection actions (WordPress/gutenberg#82965)
- Storybook: Show prop descriptions in Canvas controls (WordPress/gutenberg#83581)
- test: Link upstream warning fixes in config (WordPress/gutenberg#83632)
- Storybook: Use one block-editor store module (WordPress/gutenberg#83636)
- Tests: Use strict assertions synced from Core changeset 63934. (WordPress/gutenberg#83619)
- Math: Store cell alignment in the MathML and polyfill alignment and overlines in Chromium (WordPress/gutenberg#83164)
- Storybook: Reuse PostCSS browser resolver in smoke tests (WordPress/gutenberg#83635)
- Editor: Use UI Menu for template options (WordPress/gutenberg#82964)
- RTC: Add a EntitySyncManager interface in core-data (WordPress/gutenberg#83410)
- Term Count: Add margin support (WordPress/gutenberg#83608)
- Archives: Add minimum height support (WordPress/gutenberg#83573)
- Media Editor: Stop the crop pixel snap from recording undo history (WordPress/gutenberg#83571)
- Term Name: Add margin support (WordPress/gutenberg#83606)
- Post Author Biography: Add text indent support (WordPress/gutenberg#83614)
- Code: Add minimum width and height support (WordPress/gutenberg#83574)
- Details: Add minimum width support (WordPress/gutenberg#83576)
- Post Content: Add minimum width support (WordPress/gutenberg#83575)
- Post Excerpt: Add minimum width and height support (WordPress/gutenberg#83578)
- Post Title: Add minimum width and height support (WordPress/gutenberg#83600)
- Footnotes: Add minimum width and height support (WordPress/gutenberg#83579)
- Storybook: Place Notice announcements under Components (WordPress/gutenberg#83617)
- InputControl: Darken the field border on hover (WordPress/gutenberg#83306)
- npm: Switch from legacy-peer-deps to strict-peer-deps (WordPress/gutenberg#81029)
- Term Name: Add minimum width and height support (WordPress/gutenberg#83599)
- Columns: Allow dropping a column at the outer edges (WordPress/gutenberg#83274)
- E2E: Pin the site title in the Interactivity API router specs and give the E2E Storybook build more heap. (WordPress/gutenberg#83474)
- Heading: Add minimum width and height support (WordPress/gutenberg#83580)
- Login/out: Add minimum width and height support (WordPress/gutenberg#83583)
- Verse: Add minimum width support (WordPress/gutenberg#83609)
- Video, Cover: Don't autoplay in the editor when reduced motion is preferred (WordPress/gutenberg#83337)
- Media & Text: Lower the specificity of the content padding (WordPress/gutenberg#83563)
- Pagination: Add padding, margin, and block gap support (WordPress/gutenberg#83743)
- Fix peer dependency conflicts left in the lockfile (WordPress/gutenberg#83754)
- Comments Pagination: Add padding, margin, and block gap support (WordPress/gutenberg#83744)
- Term Count: Add minimum width and height support (WordPress/gutenberg#83596)
- Read More: Add border style support (WordPress/gutenberg#83735)
- Cover: Don't autoplay embedded background videos when reduced motion is preferred (WordPress/gutenberg#83452)
- No Results: Add minimum width and height support (WordPress/gutenberg#83584)
- RichText: Rename utils.jsx to utils.js (WordPress/gutenberg#83758)
- Quote: Add minimum width support (WordPress/gutenberg#83592)
- Upgrade typescript-eslint to v8.70.1 (WordPress/gutenberg#83760)
- Tabs: Add minimum width support (WordPress/gutenberg#83595)
- Site Tagline: Add minimum width and height support (WordPress/gutenberg#83589)
- Heading: Add text indent support (WordPress/gutenberg#83615)
- Site Title: Add minimum width and height support (WordPress/gutenberg#83593)
- Home Link: Add padding and margin support (WordPress/gutenberg#83607)
- Preformatted: Add minimum width and height support (WordPress/gutenberg#83587)
- Include E2E Storybook sources in docgen (WordPress/gutenberg#83634)
- Extensible Site Editor: Pass custom block categories to the blocks store (WordPress/gutenberg#83762)
- Packages: Declare missing peer dependencies and check them in CI (WordPress/gutenberg#83765)
- Post Terms: Add minimum width and height support (WordPress/gutenberg#83586)
- Group, Cover: Track drop zone element in state (WordPress/gutenberg#83756)
- Global Styles: Add pseudo-state controls for Navigation Link (WordPress/gutenberg#83451)
- storybook: Register playground core blocks once (WordPress/gutenberg#83637)
- Document Outline: Show the design system focus ring instead of legacy box-shadow (WordPress/gutenberg#83755)
- storybook: Update BlockPopover fixture to API version 3 (WordPress/gutenberg#83642)
- Add typing to iAPI's getConfig() (WordPress/gutenberg#71692)
- Components: deprecate Badge (WordPress/gutenberg#82379)
- Block Editor: Fix style / nested attribute overwrite during multi-selection (WordPress/gutenberg#80070)
- Notes: Restrict menu actions for resolution notes and resolved threads (WordPress/gutenberg#73243)
- UI: Add change actions to form primitive stories (WordPress/gutenberg#83591)
- Icons: Support keyword-based search in the icons registry (WordPress/gutenberg#82367)
- Avatar: Explain that avatars use the Gravatar service (WordPress/gutenberg#83567)
- UI: Add item labels and descriptions to remaining popups (WordPress/gutenberg#83493)
- PaletteEdit: Stop changing the slug when renaming a preset (WordPress/gutenberg#83750)
- Storybook: Fix missing block styles in BlockCanvas playground stories (WordPress/gutenberg#81070)
- Tests: Enforce Vitest callback, promise, and title rules (WordPress/gutenberg#83620)
- ItemGroup: Use design system focus ring (WordPress/gutenberg#83764)
- Keep the legacy CheckboxControl visually consistent across viewports (WordPress/gutenberg#83612)
- Media editor: Use UI Menu for crop aspect ratio (WordPress/gutenberg#82968)
- Use strict assertions in override script tests (WordPress/gutenberg#83782)
- Home Link: Add minimum width and height support (WordPress/gutenberg#83582)
- Tab Panels: Add minimum height support (WordPress/gutenberg#83594)
- Post Time to Read: Add minimum width and height support (WordPress/gutenberg#83598)
- Term Description: Add minimum width and height support (WordPress/gutenberg#83597)
- UI: Keep InputLayout chrome at md on small viewports (WordPress/gutenberg#82764)
- Math: Add minimum width and height support (WordPress/gutenberg#83585)
- Tests: Bump undici in the AI development test lockfile (WordPress/gutenberg#83799)
- Bump brace-expansion in /test/ai-development (WordPress/gutenberg#83807)
- Bump js-yaml and promptfoo in /test/ai-development (WordPress/gutenberg#83797)
- Bump fast-uri from 3.1.7 to 3.1.8 (WordPress/gutenberg#83829)
- Update AI Development package versions after npm audit (WordPress/gutenberg#83830)
- Notes: Add show and hide options for floating notes (WordPress/gutenberg#83768)
- Add separators to item popup components (WordPress/gutenberg#83776)
- Components: Align RadioControl colors with UI Radio (WordPress/gutenberg#83270)
- E2E: Mock Openverse in image drag-and-drop inserter test (WordPress/gutenberg#83842)
- FormToggle: Match Switch colors across states (WordPress/gutenberg#83773)
- Bump `@react-spring/web` from 9.4.5 to 10.1.2 (WordPress/gutenberg#83796)
- ColorPalette: Show design system focus ring on custom color button (WordPress/gutenberg#83841)
- Docs: Remove CheckboxControl heading from InspectorControls example (WordPress/gutenberg#83844)
- Base Styles: Default the admin theme color to Blueberry (WordPress/gutenberg#83749)
- Menu: Guard against nesting Group and RadioGroup (WordPress/gutenberg#83792)
- Template Part: Fall back to rendering a template part from the theme file if the db version is unavailable (WordPress/gutenberg#83809)
- Tests: Reset deprecation history in shared Vitest setup (WordPress/gutenberg#83849)
- Menu: Disable triggers instead of roots in consumers (WordPress/gutenberg#83791)
- Playlist: Replace the waveform player patch with its no-autoinit entry (WordPress/gutenberg#83132)
- Update UI Spinner appearance and add a color prop (WordPress/gutenberg#83775)
- UI: Align component names with their semantics (WordPress/gutenberg#83789)
- Checkbox: Prevent rounded themes from making checkboxes circular (WordPress/gutenberg#83526)
- Storybook: Update manifest snapshot for Spinner color prop (WordPress/gutenberg#83856)
- Button: Only open the link popover on explicit user action (WordPress/gutenberg#30166)
- Gallery Lightbox: Prevent image click from closing the dialog when navigation is enabled (WordPress/gutenberg#78898)
- UI: Recommend Checkbox family components (WordPress/gutenberg#83771)
- RadioControl: Keep a 16px visual with a larger hit target (WordPress/gutenberg#83840)
- Table: replace deprecated word-break with overflow-wrap: anywhere (WordPress/gutenberg#82480)
- Tag Cloud: Update styles and add `!important` (WordPress/gutenberg#70224)
- Correctly document the `blockName` property as being nullable (WordPress/gutenberg#70900)
- Add inertValue helper and use it for setting inert attribute (WordPress/gutenberg#83871)
- Enable editableRoot for the list item block for multi-selection on mobile (WordPress/gutenberg#82816)
- Verify localized data retention in override script test (WordPress/gutenberg#83845)
- Tests: Bump ibm-cloud-sdk-core in the AI development test lockfile (WordPress/gutenberg#83887)
- UI: Recommend Notice component (WordPress/gutenberg#82685)
- Fix: MediaUpload `gallery` prop ignores `allowedTypes` (WordPress/gutenberg#78257)
- Media editor: Add a session boundary above the cropper (WordPress/gutenberg#83550)
- DataViews: Measure the container as the data view mounts to avoid a single column flash (WordPress/gutenberg#83752)
- Pullquote: Add minimum width support (WordPress/gutenberg#83588)
- Media editor: Remove initial state seeding from the session (WordPress/gutenberg#83893)
- UI: Add e2e Storybook popup item layout fixtures (WordPress/gutenberg#83488)
- Storybook: Give CI job a distinct name (WordPress/gutenberg#83869)
- Coding standards: Skip anonymous class methods in block library function name sniff (WordPress/gutenberg#83900)
- Pagination: Add border support (WordPress/gutenberg#83745)
- PR meta: Move the props list into the shared comment (WordPress/gutenberg#82302)
- Comments Pagination: Add border support (WordPress/gutenberg#83746)
- Scripts: Resolve default configs without hoisted dependencies (WordPress/gutenberg#83902)
- Image: Fix invalid CSS url() value in circle-mask style (WordPress/gutenberg#82333)
- Query Total: Add minimum width and height support (WordPress/gutenberg#83590)
- Scripts: Treat files passed after --fix as file arguments (WordPress/gutenberg#83521)
- Editor: Remove icon for 'Export' more menu item (WordPress/gutenberg#83901)
- Dashboard Widgets: let a mounted widget declare actions at runtime (WordPress/gutenberg#83877)
- Framework: Switch from hoisted to isolated dependencies (WordPress/gutenberg#83847)
- Test: Run Vitest type graph validation in process (WordPress/gutenberg#83851)
- Remove use-memo-one usage (missing React 19 compat) (WordPress/gutenberg#83952)
- Fix Post Featured Image crash when isLink is enabled (WordPress/gutenberg#81584)
- Experiment: restyle classic wp-admin controls from design system tokens (WordPress/gutenberg#82425)
- Tests: Lint JavaScript Vitest mock imports (WordPress/gutenberg#83783)
- Build: Remove patch-package (WordPress/gutenberg#83982)
- Docs: Update deprecation testing guidance for shared reset (WordPress/gutenberg#83989)
- DataViews: list hideable fields alphabetically in the view config (WordPress/gutenberg#83947)
- Core Data: Rank link suggestions by type, and stop discarding merged results (WordPress/gutenberg#83407)
- Add new react-inert-value package with inertValue helper (WordPress/gutenberg#83987)
- Connectors: Keep a stored API key read-only when it can't be verified (WordPress/gutenberg#83889)
- Navigation: Search every entity type from the link UI (WordPress/gutenberg#83408)
- Tests: Cover translation setup in override script tests (WordPress/gutenberg#83886)
- Build: Update Vite to 8.3.2 and remove the PostCSS browser resolver (WordPress/gutenberg#83992)
- Update readme title to match block name (WordPress/gutenberg#83999)
- RTC: Fix undo breaking for non-synced entities (WordPress/gutenberg#83888)
- CI: Cover the AI development lockfile with Dependabot instead of npm audit (WordPress/gutenberg#83997)
- Latest Posts: Add minimum width and height support (WordPress/gutenberg#83905)
- Avatar: Add shadow support (WordPress/gutenberg#83929)
- Tab List: Add shadow support (WordPress/gutenberg#83922)
- Buttons: Add minimum width and height support (WordPress/gutenberg#83894)
- Social Icons: Add shadow support (WordPress/gutenberg#83920)
- Columns: Add minimum width and height support (WordPress/gutenberg#83895)
- Gallery: Add shadow support (WordPress/gutenberg#83919)
- File: Add shadow support (WordPress/gutenberg#83918)
- Page List: Add minimum width and height support (WordPress/gutenberg#83908)
- Build Tooling: Read npm v12 pack --json output (WordPress/gutenberg#84011)
- Accordion Heading: Add line height support (WordPress/gutenberg#83958)
- Paragraph: Add shadow support (WordPress/gutenberg#83926)
- Media & Text: Add minimum width and height support (WordPress/gutenberg#83906)
- Tests: Patch basic-ftp in AI development dependencies (WordPress/gutenberg#84000)
- Env, E2E: Update dependencies that ran native install scripts (WordPress/gutenberg#84012)
- Tests: Update Vitest to 5.0.3 and Storybook to 10.6.1 (WordPress/gutenberg#83996)
- Search: Add padding support (WordPress/gutenberg#83984)
- Block editor: Honour background skip serialization in the editor (WordPress/gutenberg#83943)
- Framework: Declare React types in the workspaces that use them (WordPress/gutenberg#84013)
- Fit text: Size each block instance in a loop independently (WordPress/gutenberg#83985)
- FocalPointPicker: end a drag released over the editor canvas (WordPress/gutenberg#83348)
- Tests: Cover Menu scroll lock and LinkControl protocols in browsers (WordPress/gutenberg#83991)
- List: Add shadow support (WordPress/gutenberg#83923)
- UI: Add Progress with custom color support (WordPress/gutenberg#83781)
- ESLint: Allow non-module stylesheet imports in unit tests (WordPress/gutenberg#84019)
- Canvas loader: Use UI Progress and pass color via the indicator prop (WordPress/gutenberg#83860)
- Menu: Align group labels and separators with indented item labels. (WordPress/gutenberg#83993)
- react-inert-value: add missing types/react peer dep (WordPress/gutenberg#84024)
- Docs: Refine design system agent guidance (WordPress/gutenberg#84007)
- Navigation: List allowed blocks in the link UI search results + add transformSuggestions to Link Control (WordPress/gutenberg#83652)
- Sync: Remove exposed wp.sync package (WordPress/gutenberg#81999)
- Style: Update color to use CSS variable in edit-site (WordPress/gutenberg#79002)
- Popover: drop the will-change hint once the popover stops moving (WordPress/gutenberg#77359)
- MediaEdit: Show a checkerboard background behind image previews (WordPress/gutenberg#83846)
- Quote: Add button colour support (WordPress/gutenberg#83983)
- Media & Text: Add duotone support (WordPress/gutenberg#83981)
- Gallery: Add duotone support (WordPress/gutenberg#83978)
- Interactivity API Router: Add reactive navigation lifecycle and initiator API (WordPress/gutenberg#83280)
- Notes: Move floating notes into a canvas margin (WordPress/gutenberg#83786)
- Verse: Add text columns and indent support (WordPress/gutenberg#83962)
- Notes: Scroll floating notes with the canvas (WordPress/gutenberg#83852)
- Notes: Add Undo to deleted note snackbar (WordPress/gutenberg#83988)
- Framework: Move @typescript/native from the root to the workspaces that use it (WordPress/gutenberg#84027)
- Repair invalid peer dependencies in the lockfile (WordPress/gutenberg#84062)
- Term Template: Add minimum width and height support (WordPress/gutenberg#83914)
- Fix check type declarations (WordPress/gutenberg#84070)
- Media: track the original attachment id for edited images (WordPress/gutenberg#81803)
- Post Comments Form: Add font family support (WordPress/gutenberg#83967)
- Media Utils: Add `MediaEdit` as a private API (WordPress/gutenberg#84046)
- Build Tools: Fix flaky ESM package types test timeout (WordPress/gutenberg#84068)
- Embed: Add padding support (WordPress/gutenberg#83963)
- Interactivity API: Add a data-wp-html directive (WordPress/gutenberg#83092)
- Typography and "block-default icon polish. (WordPress/gutenberg#84073)
- Release Tooling: Read the npm v12 JSON output shapes (WordPress/gutenberg#84075)
- Menu: Align submenu labels and highlight open parents (WordPress/gutenberg#84031)
- Props Bot: Skip bare reviews that duplicate their review comment runs (WordPress/gutenberg#84076)
- Dataviews: use inertValue in CompositeGrid (WordPress/gutenberg#84072)
- UI: Add Meter (WordPress/gutenberg#83855)
- Media & Text: Add shadow support (WordPress/gutenberg#83976)
- Media editor: restore original image in modal (WordPress/gutenberg#81805)
- List: Add background image, size, and gradient support (WordPress/gutenberg#83935)
- List Item: Add background image, size, and gradient support (WordPress/gutenberg#83936)
- Block Editor: Fix 'Manage allowed blocks' not shown when its the only 'Advanced' control (WordPress/gutenberg#84067)
- Design System: Clarify tooltip labeling and UI review guidance (WordPress/gutenberg#83898)
- Gallery: Add minimum width and height support (WordPress/gutenberg#83897)
- File: Add minimum width and height support (WordPress/gutenberg#83896)
- Media: Return 0 from the edit root lookup when there is no edit root (WordPress/gutenberg#84096)
- Read More: Add minimum width and height support (WordPress/gutenberg#83912)
- UI: Recommend Radio family components (WordPress/gutenberg#83872)
- Latest Comments: Add minimum width and height support (WordPress/gutenberg#83904)
- chore: Use v24 in .nvmrc (WordPress/gutenberg#84061)
- Embed: Add minimum width and height support (WordPress/gutenberg#83903)
- Post Comments Form: Add minimum width and height support (WordPress/gutenberg#83910)
- Post Featured Image: Add border style support (WordPress/gutenberg#83956)
- Buttons: Add shadow support (WordPress/gutenberg#83916)
- Poetry: Add fit text support (WordPress/gutenberg#83980)
- Video: Add duotone support (WordPress/gutenberg#83979)
- Notes: Keep anchor writes out of undo history (WordPress/gutenberg#84079)
- ProgressBar: Use WPDS color tokens (WordPress/gutenberg#83779)
- REST API: Add action-trash link to posts and comments (WordPress/gutenberg#84045)
- RSS: Add minimum width and height support (WordPress/gutenberg#83913)
- Notes: Reset paragraph top margin in floating notes (WordPress/gutenberg#84101)
- Global Styles: Fix popover position in Styles screen (WordPress/gutenberg#84048)
- Block Switcher: Show design system focus ring on pattern previews (WordPress/gutenberg#83933)
- MediaEdit: Use design system focus ring (WordPress/gutenberg#83854)
- Notes: Delete permanently when the trash is disabled (WordPress/gutenberg#84102)
- Release: Rewrite SVN publication scripts in Node.js (WordPress/gutenberg#84034)
- ContentEditableControl: Keep a disabled field focusable (WordPress/gutenberg#84083)
- States: Scope per-instance rules to the block's root element (WordPress/gutenberg#83986)
- List Item: Add shadow support (WordPress/gutenberg#83925)
- DataViews: Truncate filter chips instead of wrapping them (WordPress/gutenberg#83879)
- Experiments: Turn the React 19 experiment on by default (WordPress/gutenberg#83784)
- Notes: Extract NoteReply and lift AddNote gating (WordPress/gutenberg#84106)
- Interactivity API: Remove expired deprecated behaviors (WordPress/gutenberg#84098)
- Breadcrumbs: Fix typo in aria label translation context (WordPress/gutenberg#84112)
- ESLint: Allow generated test titles (WordPress/gutenberg#83995)
- Icons: Add keywords to icon manifest (WordPress/gutenberg#83884)
- Tooltip: Control the hover delay cancellation test clock (WordPress/gutenberg#84113)
- VS Code: Add managed workspace config (WordPress/gutenberg#84025)
- Breadcrumb: fix getMeasurementRender for React 19 (WordPress/gutenberg#84069)
- Notes: Fix flaky thread scroll e2e test (WordPress/gutenberg#84118)
- Detect the database client in the unit test debug step. (WordPress/gutenberg#84089)
- UI: Preserve Autocomplete item type inference (WordPress/gutenberg#84095)
- UI: Recommend Switch family components (WordPress/gutenberg#84097)
- Env: Add an option to choose the MariaDB version (WordPress/gutenberg#83751)
- UI: Preserve Combobox source item generics (WordPress/gutenberg#84094)
- Menu: Tighten spacing, use 16px prefix icons, and cap width at 320px (WordPress/gutenberg#84028)
- Notes: Preserve unsent note and reply drafts (WordPress/gutenberg#84110)
- Theme: Add integration test coverage for seed colors in artifacts (WordPress/gutenberg#81161)
- Progress: Migrate remaining ProgressBar usages and recommend UI Progress (WordPress/gutenberg#84021)
- Components: Fix polymorphism typings leaking `as` prop (WordPress/gutenberg#82704)
- Media & Text: Add background image, size, and gradient support (WordPress/gutenberg#83927)
- Experiments: Use a mock plugin slug that no WordPress build ships in the unrelated-plugin test (WordPress/gutenberg#84133)
- Button: Add background image, size, and gradient support (WordPress/gutenberg#83950)
- Tests: Isolate Ajv per test in wp-env schema tests to avoid order dependence (WordPress/gutenberg#84139)
- Storybook: Read icon keywords from the manifest (WordPress/gutenberg#84127)
- SandBox: Fix embed previews that require a referrer in Safari (WordPress/gutenberg#84014)
- Notes: Restore child notes trashed along with their parent note (WordPress/gutenberg#84100)
- Style states: fix exception when there's no selected block (WordPress/gutenberg#84140)
- Chore: Use v24.20 in  `.nvmrc` config file. (WordPress/gutenberg#84138)
- Security: Opt in to the npm v12 supply-chain defaults (WordPress/gutenberg#82689)
- Docs: Describe isolated dependencies for agents and contributors (WordPress/gutenberg#84141)
- Upgrade code and types to React 19 (WordPress/gutenberg#83941)
- Latest Comments: Add border support (WordPress/gutenberg#84148)
- Add prettier, eslint and stylelint to the root package.json (WordPress/gutenberg#84017)
- FontSizePicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84126)
- Fields API: Add the server-side registry and REST route (WordPress/gutenberg#84078)
- Block bindings: add support to `icon` attribute of `core/icon` (WordPress/gutenberg#80730)
- VisuallyHidden: Move hiding styles outside CSS cascade layers (WordPress/gutenberg#84114)
- Theme: Generate complete border token modes for Figma testing (WordPress/gutenberg#84035)
- Developer tools: Simplify editor setup and add Zed settings (WordPress/gutenberg#84143)
- Consolidate wp-admin container radiuses onto the design system scale (WordPress/gutenberg#82427)
- CustomGradientPicker: Extend control point targets to the bar height (WordPress/gutenberg#84124)
- Notes: Draw the canvas divider from body so it uses the theme text color (WordPress/gutenberg#84158)
- Icons: Experiment with proportional stroke scaling (WordPress/gutenberg#84081)
- Global Styles: Ignore theme.json values of unexpected types (WordPress/gutenberg#84523)
- React 19 codemod: apply defaultProps when rendering a memo component (WordPress/gutenberg#84568)
- React 19: add new incompatible plugins (WordPress/gutenberg#84607)
- Tests: Fix HTML comparison tests (WordPress/gutenberg#84294)
- Tests: Fix list item unsafe markup test on older WordPress versions (WordPress/gutenberg#84302)
- Experiments: don't invalidate saved option with a legacy key (WordPress/gutenberg#84619)
- Tests: Scope Classic block media checkbox locator (WordPress/gutenberg#84524)

Props mamaduka.
See #66340


Built from https://develop.svn.wordpress.org/trunk@64587


git-svn-id: http://core.svn.wordpress.org/trunk@63737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Type] Code Quality Issues or PRs that relate to code quality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants