Skip to content

Flaky tests: Report as a PR comment only, stop creating issues - #81218

Merged
youknowriad merged 2 commits into
trunkfrom
claude/flaky-test-ci-cleanup-0479ac
Aug 6, 2026
Merged

youknowriad merged 2 commits into
trunkfrom
claude/flaky-test-ci-cleanup-0479ac

Conversation

@youknowriad

@youknowriad youknowriad commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

What?

Stops reporting flaky E2E tests to GitHub issues. Flaky tests are now reported only as a comment on the pull request, posted from the job that already fans the shards in.

Four things go away:

  1. Issue creation — no more [Type] Flaky Test issues.
  2. The cleanup job — the Flaky test issues without activity matrix entry in stale-issue-gardening.yml, which marked those issues stale after 15 days and closed them a day later.
  3. Push reporting — the action used to post a comment on the commit for pushes to trunk. That path is gone.
  4. The Report to GitHub job, and the build step it existed for.

Why?

The flaky-test issues were mostly auto-generated churn. Few of them got acted on before the gardening job closed them again, so the two jobs largely existed to feed and then clean up after each other. The signal people actually use is the comment on the PR that surfaced the flake.

Removing the issue logic left the action small enough that its dedicated job stopped making sense. From a run where it fired:

Set up job                    1s
checkout                      4s
download-artifact             0s
Setup Node.js                24s
Npm build                    65s   ← full monorepo build, to compile one small action
Report flaky tests           13s
                            ---
                            110s

How?

Workflows

  • end2end-test.yml: the report-to-issues job is gone. Its two useful steps moved into Merge Artifacts, which already fans the shards in, already checks out, and already installs dependencies — it only needed pull-requests: write. stale-issue-gardening.yml loses the flaky-test matrix entry; the two other gardening entries are untouched.

The artifact fan-in stays, and is load-bearing: matrix jobs can't aggregate through outputs (all legs write the same key and one arbitrary value wins), and nine shards racing to upsert one comment would each fail to find an existing one and create their own.

No build step

The action now runs straight from its TypeScript sources — action.yml points main at src/index.ts and the node24 runtime strips the types on the fly. Two constraints come with that, documented in action.yml and the README:

  • relative imports must carry their .ts extension (./run → ./run.ts), which is also why allowImportingTsExtensions is now set;
  • the syntax must be erasable — no enums, namespaces, parameter properties or decorators.

Action (packages/report-flaky-tests)

  • run.ts no longer fetches, creates, or reopens issues; it maps the artifact straight to a PR comment, and bails out early on non-pull_request events.
  • github-api.ts drops fetchAllIssuesLabeledFlaky, findMergeBaseCommit, createIssue, updateIssue, and createCommentOnCommit.
  • markdown.ts drops the issue-body renderer and the parser that read state back out of it.
  • The label input, the @octokit/types dependency, and the flaky-issues.json fixture are removed.

One behavior change worth a look: the comment now carries the error output. It previously listed issue numbers (- #1 in path``) with the stack traces in the issue body. With issues gone that detail had nowhere to go, so each test renders as a collapsed <details>:

🔍  Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/100
📝  Reported tests:
<details>
<summary>should copy only partial selection of text blocks in <code>/test/e2e/specs/…</code>, passed after 1 failed attempt.</summary>
… stack trace …
</details>

Side effect: a flaky test with no pre-existing issue used to be silently dropped from the comment, so comments only listed already-known flakes. Now every flake in the run is listed.

Testing Instructions

CI on this PR exercises it end to end — if a test goes flaky, Merge Artifacts should post a single comment listing the tests with their errors, and no issue should be created.

Locally:

npm run test:unit packages/report-flaky-tests

7 tests pass, covering the PR comment, the non-PR skip, and the empty-artifact case.

To confirm the action really runs without a build, from the repo root:

env 'INPUT_REPO-TOKEN=fake' 'INPUT_ARTIFACT-PATH=/tmp/flaky' GITHUB_EVENT_NAME=pull_request GITHUB_EVENT_PATH=/tmp/event.json GITHUB_REPOSITORY=WordPress/gutenberg GITHUB_RUN_ID=1 node packages/report-flaky-tests/src/index.ts

With a flaky-test JSON in /tmp/flaky and a PR payload in /tmp/event.json, this reaches the GitHub API and fails only on the fake token — no compilation involved. Note this needs Node 24; .nvmrc pins 20, which has no type stripping, so use nvm use 24 for that check. It has no bearing on CI, where the action runs on the node24 runtime, or on the unit tests, which Jest transpiles.

Testing Instructions for Keyboard

N/A — CI-only change, no user interface.

Screenshots or screencast

N/A

Use of AI Tools

This PR was authored with Claude Code (Opus 5) — the workflow changes, the action rewrite, the test updates, and this description. I reviewed the result and am responsible for it. Unit tests, tsc, lint and format were run locally and pass, and the no-build execution path was verified by actually running the entrypoint as described above.

Two things surfaced during review that I have not changed and would like a second opinion on:

  • Merge Artifacts now holds pull-requests: write while running npm ci from the PR's checkout, where the old job was isolated on ref: trunk. For pull_request events from forks the GITHUB_TOKEN is read-only regardless, and same-repo branches already carry write access, so I believe this is inert — but it is a real change in posture. Keeping a separate job with no checkout at all would preserve the isolation and still avoid the build, at the cost of one extra job.
  • formatTestErrorMessage still has a jest-circus branch, but the only producer (flaky-tests-reporter.ts) hardcodes runner: '@playwright/test'. It looks like dead code left over from the Puppeteer suite, and it is the only reason jest-message-util and @jest/test-result are dependencies. I left it in place rather than expand the scope of this PR.

@github-actions

github-actions Bot commented Aug 5, 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.

Unlinked Accounts

The following contributors have not linked their GitHub and WordPress.org accounts: @riad@Riads-MacBook-Air.local.

Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases.

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

Unlinked contributors: riad@Riads-MacBook-Air.local.

Co-authored-by: youknowriad <youknowriad@git.wordpress.org>

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

@youknowriad youknowriad self-assigned this Aug 5, 2026
@youknowriad youknowriad added the [Type] Build Tooling Issues or PRs related to build tooling label Aug 5, 2026
@youknowriad
youknowriad requested a review from Mamaduka August 5, 2026 12:46
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Size Change: 0 B

Total Size: 7.81 MB

compressed-size-action

Flaky E2E tests were reported to GitHub issues under the `[Type] Flaky
Test` label, and a matrix entry in the stale-issue-gardening workflow
closed those issues after 15 days of inactivity. The issues were mostly
auto-generated churn that nobody acted on before the gardening job
closed them again.

Drop the issue creation and the gardening cleanup, and keep the part
that has actual value: the comment on the pull request.

Reporting is now scoped to pull requests only. The action used to also
post a comment on the commit for pushes to trunk; that path is gone,
along with the `createCommentOnCommit` API wrapper, and the job is
gated on `github.event_name == 'pull_request'`.

Because the stack traces used to live in the issue body, the comment now
renders each flaky test as a collapsed `<details>` with its failures, so
the diagnostics aren't lost. This also means the comment now lists every
flaky test in the run; previously it only listed tests that already had
an issue.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@youknowriad
youknowriad force-pushed the claude/flaky-test-ci-cleanup-0479ac branch from e2389e2 to b791d76 Compare August 5, 2026 12:55
The dedicated `Report to GitHub` job spent 65 of its 110 seconds running
a full `npm run build`, just to compile this one small action. The rest
was a checkout and an install that `Merge Artifacts` had already done.

Move the reporting into `Merge Artifacts`. It already fans the shards in
— which is the reason the artifact exists in the first place, since
matrix jobs cannot aggregate through `outputs` and nine shards racing to
upsert one comment would each create their own — and it already checks
out and installs. It only needed `pull-requests: write` and the two
steps that were doing the actual work.

Drop the build step along with it: the `node24` runtime strips the types
on the fly, so the action runs straight from its TypeScript sources. Two
constraints come with that, and both are documented in `action.yml` and
the README — relative imports must carry their `.ts` extension, and the
syntax must be erasable, which rules out enums, namespaces, parameter
properties and decorators.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@youknowriad
youknowriad merged commit 2dab68f into trunk Aug 6, 2026
47 checks passed
@youknowriad
youknowriad deleted the claude/flaky-test-ci-cleanup-0479ac branch August 6, 2026 09:55
@github-actions github-actions Bot added this to the Gutenberg 23.8 milestone Aug 6, 2026
adimoldovan added a commit that referenced this pull request Aug 11, 2026
Also drops `Report to GitHub` from the end-to-end gate's ignore list:
#81218 folded flaky reporting into `Merge Artifacts` and deleted that
job, so the name no longer matched anything.
wporg-sync pushed a commit to WordPress/wordpress-develop that referenced this pull request Sep 8, 2026
This updates the pinned commit hash of the Gutenberg repository from `5a0417990a9404cc2562cdd35e3054cb0d3e546e` (version `23.7.0`) to `ae8b34d78e1abc6d1c866fdc00080a1452de82ad` (version `23.8.0`).

A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/v23.7.0..v23.8.0.

- Fix: New route-based admin pages are empty when no JS (WordPress/gutenberg#80628)
- Report flaky tests: declare @types/node (WordPress/gutenberg#80838)
- Storybook e2e: add small, compact and icon examples to button matrix (WordPress/gutenberg#80793)
- ESLint: Drop @eslint/compat fixup for jest-dom and testing-library (WordPress/gutenberg#80842)
- Storybook: Use SelectControl in Motion tokens story (WordPress/gutenberg#80790)
- Writing flow: forward delete an empty paragraph without breaking apart the next block (WordPress/gutenberg#80813)
- ToggleControl: Add "With Visual" Storybook story (WordPress/gutenberg#80803)
- Bump the github-actions group across 1 directory with 5 updates (WordPress/gutenberg#80684)
- Update Ariakit packages (WordPress/gutenberg#80765)
- Components: Update Floating UI to 2.1.9 (WordPress/gutenberg#80761)
- Improve pre-flight npm access checks (WordPress/gutenberg#80334)
- Ensure static checks can run for private mirrors (WordPress/gutenberg#80817)
- Components: Update react-day-picker to 9.14.0 (WordPress/gutenberg#80792)
- Testing: Remove the jest-puppeteer-axe package (WordPress/gutenberg#80775)
- Tools: Use native agent skill discovery (WordPress/gutenberg#80811)
- Table of Contents: Replace "Convert to static list" with confirmed "Detach" action (WordPress/gutenberg#80844)
- Page List: Rename the Edit action to Detach and confirm it in a dialog (WordPress/gutenberg#80847)
- URLInput: Simplify keyboard handling and fix arrow keys with a text selection (WordPress/gutenberg#80780)
- Upload Media: Fail the item when the /finalize request fails (WordPress/gutenberg#80725)
- Jest preset: support self-referencing via exports (WordPress/gutenberg#80837)
- Fix template `modified` and `date` return value for file templates (WordPress/gutenberg#80733)
- Element: Make the package importable in React 19 (WordPress/gutenberg#80053)
- Add CheckboxControl with-visual Storybook story. (WordPress/gutenberg#80849)
- UI: Add Combobox.InputGroup primitive (WordPress/gutenberg#80869)
- Block Editor: Clear the moving animation's z-index when it finishes (WordPress/gutenberg#80824)
- SearchableChipSelect: Add form primitive to @wordpress/ui (WordPress/gutenberg#80779)
- Playlist: Add track icon (WordPress/gutenberg#80959)
- Flaky tests: fix router navigate latest HTML (WordPress/gutenberg#80178)
- Components: Update polymorphism types to allow all attributes when specifying `as` (WordPress/gutenberg#80705)
- Block JSON schema & PHP-only blocks: Add `autoRegister` support (WordPress/gutenberg#80173)
- Boot: Adjust specificity of the image reset styles so components can size their own images (WordPress/gutenberg#80845)
- Components: Opt-in ConfirmDialog for auto-documentation (WordPress/gutenberg#80866)
- RichText: don't apply input transform when there's no onReplace (WordPress/gutenberg#80978)
- Quote: Ensure paragraph placeholder appears after deleting nested blocks (WordPress/gutenberg#77151)
- Block editor: make the Group action wrap blocks with a group transform (WordPress/gutenberg#80891)
- Copy: preserve the block when its entire text is selected (WordPress/gutenberg#80994)
- Add opt-out for block style state controls (WordPress/gutenberg#80956)
- Upgrade Playwright to v1.62 (WordPress/gutenberg#81001)
- List View: Speed up opening by removing a forced style recalculation (WordPress/gutenberg#80929)
- Widget Dashboard: preserve widget chrome flex layout (WordPress/gutenberg#80570)
- Widget Primitives: document actions as verbs, not links (WordPress/gutenberg#80974)
- Core Data: add missing @wordpress/base-styles dependency (WordPress/gutenberg#81012)
- Ignore node_modules in schema integration test globs (WordPress/gutenberg#81013)
- RichText: fix paste handler crash when pasting files (WordPress/gutenberg#81010)
- Docs: Add VS Code setup guidance (WordPress/gutenberg#77913)
- Perf Tests: Merge selection event windows instead of summing durations (WordPress/gutenberg#81002)
- Storybook: move smoke-test deps into the storybook workspace (WordPress/gutenberg#81017)
- Unit Tests: Reorganise the jest config file. (WordPress/gutenberg#80940)
- Performance Tests: Ignore the locally generated artifacts directory (WordPress/gutenberg#81024)
- Editor: Remove sidebar tabs focus sync effect (WordPress/gutenberg#81020)
- Widgets: carry a declarative `icon` through the widget pipeline (WordPress/gutenberg#80969)
- RTC: Remove excess autosave notices (when not useful) (WordPress/gutenberg#80539)
- UI: Use focus styles from base-styles (WordPress/gutenberg#80635)
- Automated Testing: Add Storybook component documentation regression testing (WordPress/gutenberg#80655)
- Pass Playlist controls to track blocks (WordPress/gutenberg#80368)
- Components: Deprecate Surface (WordPress/gutenberg#80943)
- Tabs: Support Home and End keys for keyboard navigation (WordPress/gutenberg#80912)
- Fix typos in code `comments` and `JSDoc` (WordPress/gutenberg#81045)
- Interface: Remove incorrect aria-expanded from pin-to-toolbar button (WordPress/gutenberg#79874)
- List View: Speed up opening by removing a second render pass (WordPress/gutenberg#80935)
- Docs: Use `gutenberg` instead of `Gutenberg` in package name (WordPress/gutenberg#81051)
- Fix ESLint warnings for 'navigateRegionsProps' spread (WordPress/gutenberg#81052)
- Tests: Replace page-level selectors with locators in e2e specs (WordPress/gutenberg#81053)
- RTC: Disable custom autosave controller when RTC is disabled (WordPress/gutenberg#80769)
- Background: Fix the legacy gradient UI where a gradient cannot be selected (WordPress/gutenberg#81056)
- Rename blockStatesEnabled setting to blockStatesEditingEnabled (WordPress/gutenberg#81058)
- Background: Fix the legacy gradient UI where a gradient cannot be selected - Add missing change log (WordPress/gutenberg#81060)
- Declare missing prettier and stylelint workspace dependencies (WordPress/gutenberg#81065)
- Notes: Display shortcut for form action buttons (WordPress/gutenberg#81064)
- View config: lowercase dynamic filter names (WordPress/gutenberg#81068)
- CI: cache the system packages Playwright dowloads for WebKit (WordPress/gutenberg#80846)
- List View: Collapse off-window placeholder rows into a single spacer row (WordPress/gutenberg#80953)
- devops: balance Playwright shards by duration (WordPress/gutenberg#79479)
- Views: honor developer-defined view config overrides (WordPress/gutenberg#80832)
- Components: Migrate ItemGroup to SCSS module (WordPress/gutenberg#80797)
- Test: Add Vitest migration routing guardrails (WordPress/gutenberg#81036)
- Visual revisions: Add a code diff view inside the editor (WordPress/gutenberg#80314)
- Bump actions/labeler from 6.1.0 to 7.0.0 in /.github/workflows (WordPress/gutenberg#80966)
- Visual revisions: add shareable urls (WordPress/gutenberg#79934)
- Fix e2e tests that break when shard rebalancing changes their neighbors (WordPress/gutenberg#81117)
- Query: guard non-scalar queryId to avoid fatal in enhanced pagination (WordPress/gutenberg#80724)
- Replace deprecated useResizeObserver for useScaleCanvas (WordPress/gutenberg#67508)
- CI: Add job timeouts to E2E, static checks, bundle size, and create block (WordPress/gutenberg#80801)
- Allow organization or repository variable to dictate the Actions runner (WordPress/gutenberg#81087)
- List View: Only subscribe to the block subtree for rows that can show images (WordPress/gutenberg#81076)
- Editor: Migrate settings sidebar to Tabs from @wordpress/ui (WordPress/gutenberg#81054)
- Notes: Email users mentioned in a note (WordPress/gutenberg#79606)
- List View: Narrow the dependants of the memoized List View tree (WordPress/gutenberg#81129)
- List View: Pass only minimal required data to sub-tree branches (WordPress/gutenberg#81111)
- DataViews: Add `time` field type and control (WordPress/gutenberg#80830)
- Post Author Biography: Fix horizontal overflow with long unbroken text (WordPress/gutenberg#81018)
- Link Control: Restore the preview title underline (WordPress/gutenberg#81083)
- Views: Add React to the package's dev dependencies (WordPress/gutenberg#81139)
- feat: Add target param in proxy (WordPress/gutenberg#81141)
- Fix: flaky revisions pagination e2e cross-page diff assertion (WordPress/gutenberg#81119)
- Button: Suppress UA focus ring when focused and pressed (WordPress/gutenberg#81113)
- View config: add reference docs (WordPress/gutenberg#81149)
- Editor: Fix document tools button focus ring (WordPress/gutenberg#81115)
- List View: Replace expand/collapse callbacks with reducer dispatch (WordPress/gutenberg#81138)
- CI: resolve Playwright through the workspace that declares it (WordPress/gutenberg#81137)
- CI: build once and reuse the build across e2e tests shards (WordPress/gutenberg#81031)
- Fix: Tabs block: Start with empty tab labels with placeholders (WordPress/gutenberg#81009)
- Interface: Increase footer breadcrumb height to prevent focus ring clipping (WordPress/gutenberg#81145)
- Editor: clarify autosave failure notice (WordPress/gutenberg#76470)
- Theme: Omit color properties when neither provided nor inherited (WordPress/gutenberg#80600)
- Post editor: Add ThemeProvider for admin color schemes (WordPress/gutenberg#81112)
- Core Data: saveDirtyEntities: improve messaging of server errors (WordPress/gutenberg#81151)
- Global Styles: kebab-case preset slugs when converting references to custom properties (WordPress/gutenberg#80583)
- Revise CODEOWNERS for package ownership (removing nerrad) (WordPress/gutenberg#81175)
- Build: Wrap script bundles in an IIFE to contain 'use strict' (WordPress/gutenberg#79792)
- Media: Improve the HEIC upload error and keep any upload errors up until dismissed (WordPress/gutenberg#81130)
- Block Supports: Guard against non-string attribute values to avoid fatal errors (WordPress/gutenberg#80501)
- Video: Hide settings for the GIF variation (WordPress/gutenberg#81142)
- Video: clarify the Video variation description (WordPress/gutenberg#81181)
- Media Editor: Render sidebar tabs via ComplementaryArea's render prop (WordPress/gutenberg#81133)
- Bump docker/login-action (WordPress/gutenberg#80962)
- Bump actions/setup-node from 6.4.0 to 7.0.0 in /.github/setup-node (WordPress/gutenberg#80963)
- fix(admin-ui): reset the wp-admin li margin that misaligns Breadcrumbs (WordPress/gutenberg#81134)
- Bump astral-sh/setup-uv from 8.3.2 to 9.0.0 in /.github/workflows (WordPress/gutenberg#80964)
- Fix/79643 rtc awareness mixed block selection (WordPress/gutenberg#79836)
- Agents: Add a defensive data design skill and route to the copy guide (WordPress/gutenberg#81131)
- ESLint: Ban `@ts-ignore` in favour of `@ts-expect-error` (WordPress/gutenberg#81148)
- Types: Replace remaining `@ts-expect-error` suppressions with proper typing (WordPress/gutenberg#81200)
- Button: turn on the width setting by default in theme.json (WordPress/gutenberg#81196)
- Notes: fix the mention notification email composition (WordPress/gutenberg#81187)
- Edit Widgets: Fix header toolbar button focus ring (WordPress/gutenberg#81176)
- List View: Reduce per-row store subscriptions (WordPress/gutenberg#81136)
- Customizer widgets: Add ThemeProvider for admin color schemes (WordPress/gutenberg#81174)
- Blocks: Declare the `@types/react-is` devDependency (WordPress/gutenberg#81203)
- Widgets editor: Add ThemeProvider for admin color schemes (WordPress/gutenberg#81173)
- PanelColorSettings: Restore the missing space below the panel header (WordPress/gutenberg#81155)
- Remove the editableRoot opt-in from the paragraph block (WordPress/gutenberg#81184)
- Media Attached to: Fix issue with the popover unexpectedly flipping, tweak wording (WordPress/gutenberg#81206)
- Components: Add allowForms prop to SandBox component (WordPress/gutenberg#76471)
- Ensure device preview is always accurate when window is zoomed in (WordPress/gutenberg#81193)
- DataViews: Pass only eligible items to a bulk action callback (WordPress/gutenberg#81198)
- DataViews: Make grid and table item preview aspect ratio configurable (WordPress/gutenberg#79329)
- Block Editor: Return false from isBlockSelected when there is no client ID (WordPress/gutenberg#81212)
- Blocks: Update hpq to 1.4.0 and drop the ts-expect-error suppressions (WordPress/gutenberg#81199)
- DataViews: Fix the between `date` filter losing a manually typed date on blur (WordPress/gutenberg#81150)
- Block Editor: Fix Select all freezing on large posts (WordPress/gutenberg#81210)
- List View: Split the context and drop dead props to cut re-renders on expand and collapse (WordPress/gutenberg#81159)
- Docs: Fix broken Figma links on the design resources page. (WordPress/gutenberg#81166)
- Blocks: Support static block templates in block type settings (WordPress/gutenberg#80027)
- AGENTS: Update development tips section (WordPress/gutenberg#81224)
- URLInput: Skip search requests while an IME composition is in progress (WordPress/gutenberg#80602)
- Components: Deprecate Animate (WordPress/gutenberg#80931)
- Fix: Trunk e2e failures caused by the navigation spec leaving plain permalinks (WordPress/gutenberg#81238)
- Use p elements for callout alerts in components docs (WordPress/gutenberg#81234)
- Storybook: Enable design system theme tool globally (WordPress/gutenberg#81116)
- Media: Cover client-side big image scaling and orphaned files (WordPress/gutenberg#81061)
- Footnotes: guard against invalid post meta values (WordPress/gutenberg#81201)
- Block editor: unify what a new sibling block inherits (WordPress/gutenberg#81250)
- Global Styles: Remove unused duplicate font family preview utilities (WordPress/gutenberg#81194)
- Docs: explain how the theme.json schema fixtures work (WordPress/gutenberg#81263)
- theme.json schema: fix block pseudo-classes and custom states (WordPress/gutenberg#81209)
- List View: Migrate label wrapper to UI Stack and drop Badge from the anchor (WordPress/gutenberg#81266)
- Docs: Remove dependency group import guidance (WordPress/gutenberg#81245)
- ESLint: Define dependency import rules (WordPress/gutenberg#81246)
- Flaky tests: Report as a PR comment only, stop creating issues (WordPress/gutenberg#81218)
- Dashboard Widgets: remove the Hello Dolly download action (WordPress/gutenberg#81272)
- Block Directory: Make downloadable block item labels translatable. (WordPress/gutenberg#81237)
- Icons: move the inline image icon into the library (WordPress/gutenberg#81271)
- Update phpcs, wpcs dependencies (WordPress/gutenberg#81279)
- fix: add optional chaining for empty reusable block (WordPress/gutenberg#81165) (WordPress/gutenberg#81177)
- DataViews: Inline the kebabCase utility from components (WordPress/gutenberg#81284)
- Navigation: Complete the DocBlocks for the responsive container and overlay style helpers (WordPress/gutenberg#80622)
- Style states: fix state deselection when selecting the already selected block (WordPress/gutenberg#81277)
- Fix missing return value in force_filtered_html_on_import footnotes filter (WordPress/gutenberg#81293)
- Packages: Recover July 29 npm release metadata (WordPress/gutenberg#81303)
- Global styles: render element styles set only inside a breakpoint (WordPress/gutenberg#81265)
- Style states: Fix phantom pseudo element style output (WordPress/gutenberg#81291)
- Docs: remove breakpoint-only element style example from global styles guide (WordPress/gutenberg#81308)
- Render viewport state element styles in the editor (WordPress/gutenberg#81307)
- theme.json schema: responsive states belong to blocks (WordPress/gutenberg#81253)
- theme.json schema: allow responsive states on block style variations (WordPress/gutenberg#81309)
- Block Inspector: Disable the 'Edit original' button when the entity ID is missing (WordPress/gutenberg#81288)
- Site Editor: Decode HTML entities in Identity fields (WordPress/gutenberg#81269)
- Document editEntityRecord's options.isCached param (WordPress/gutenberg#81318)
- Theme: Colocate plugin tests with implementations (WordPress/gutenberg#81247)
- Block Editor: Bail out of hasSelectedInnerBlock when there is no clientId (WordPress/gutenberg#81315)
- ESLint: Replace strict config with bulk suppressions (WordPress/gutenberg#81248)
- Block Library: Document security patch releases (WordPress/gutenberg#81295)
- ESLint: Remove legacy import suppressions (WordPress/gutenberg#81338)
- Components: Migrate Spinner styles from Emotion to SCSS module (WordPress/gutenberg#80511)
- DataViews: Use the public `@wordpress/ui` Badge instead of the private one (WordPress/gutenberg#81236)
- Pert Tests: Avoid inflating interaction metrics with startTracing (WordPress/gutenberg#81264)
- Block Editor: Simplify InspectorControlsFill rendering logic (WordPress/gutenberg#81286)
- Keycodes: Make `withIgnoreIMEEvents` a public API (WordPress/gutenberg#81343)
- Docs: Fix broken links to the removed JavaScript build setup guide. (WordPress/gutenberg#81232)
- Markdownlint: disable the MD033 (no-inline-html) rule project-wide (WordPress/gutenberg#81213)
- Docs: Fix typo in block file structure guide (WordPress/gutenberg#81348)
- Playlist: Normalize Waveform Player configuration handling (WordPress/gutenberg#81342)
- Site editor: fix unreadable sidebar hover color (WordPress/gutenberg#81317)
- Global Styles: Migrate font size presets to the shared preset layer (WordPress/gutenberg#79811)
- Block Editor: Convert useBlockVisibility hook to TypeScript (WordPress/gutenberg#80390)
- Scope breakpoint media queries to screen so printing does not look like a resize (WordPress/gutenberg#81367)
- New `kebab-case` package: extract utility and migrate private API calls (WordPress/gutenberg#81294)
- Remove content types experiment (WordPress/gutenberg#81340)
- Editor: Keep the canvas height stable while resizing the canvas (WordPress/gutenberg#81163)
- Dashboard Widgets: add icon and relevance to the widget action envelope (WordPress/gutenberg#81275)
- Playlist: Improve audio conversion and track selection (WordPress/gutenberg#80926)
- Try: Set post navigation link icon to next. (WordPress/gutenberg#81384)
- UI: Derive Base UI direction from WordPress i18n (WordPress/gutenberg#80399)
- DataViews:  Fix `array` field type validation for empty values (WordPress/gutenberg#81378)
- Bump github/codeql-action/upload-sarif (WordPress/gutenberg#81287)
- Bump actions/stale from 10.4.0 to 11.0.0 in /.github/workflows (WordPress/gutenberg#81219)
- Monitor all setup-related composite Actions. (WordPress/gutenberg#81192)
- IconButton: Improve keyboard shortcut accessibility (WordPress/gutenberg#80402)
- Interface: Stop the secondary sidebar animating into place on page load (WordPress/gutenberg#81362)
- Fix: flaky list view paste block styles e2e test (WordPress/gutenberg#81229)
- Docs: Add error message guidance. (WordPress/gutenberg#81143)
- wp-build: Render the no-JS fallback in the generated page templates (WordPress/gutenberg#81365)
- Changed Build Process Link and remove unused tags (WordPress/gutenberg#81360)
- Scripts: Prevent a UTF-8 BOM in the middle of extracted CSS (WordPress/gutenberg#81383)
- Global Styles: Migrate shadows presets to use the preset management layer. (WordPress/gutenberg#79812)
- Global Styles: report border, shadow, outline, filter and dimension changes (WordPress/gutenberg#81407)
- Dashboard Widgets: split action icons into wire and resolved forms (WordPress/gutenberg#81381)
- Block Editor: Fix Escape from the block toolbar and stop redundant last focus dispatches (WordPress/gutenberg#81319)
- Block Mover: Add the keyboard shortcut to the buttons' spoken description (WordPress/gutenberg#81380)
- Format Library: Remove unused CSS rule (WordPress/gutenberg#77831)
- Core Data: Fix post staying dirty after saving edited post meta with RTC enabled (WordPress/gutenberg#81392)
- Widget Dashboard: host-tunable tile spacing via public custom properties (WordPress/gutenberg#81352)
- DataForm: Fix hidden fields validation (WordPress/gutenberg#81377)
- Tools: Make agent setup a workspace (WordPress/gutenberg#81418)
- Test: Add private Vitest config and migrate a pilot test (WordPress/gutenberg#81037)
- Interface: Let CSS own the ComplementaryArea width and use AnimatePresence custom for exit (WordPress/gutenberg#81363)
- Notes: Fix text wrapping for long usernames in collaboration sidebar (WordPress/gutenberg#81406)
- DataViews: vendor `ValidatedSelectControl` (WordPress/gutenberg#81391)
- UI: Add `Calendar` and `RangeCalendar`, moved from `components` private APIs (WordPress/gutenberg#81337)
- Feature: Tabs block: consider using the tab title in the Document Overview instead of a generic "Tab" label (WordPress/gutenberg#81427)
- fix: order site identity changes predictably (WordPress/gutenberg#81283)
- Docs: Fix broken link to the Node.js debugging guide. (WordPress/gutenberg#81398)
- Navigation Overlay Close: Inherit typography and color from the overlay (WordPress/gutenberg#80751)
- Fix: Regression: Tabs block: Start with empty tab labels with placeholders (WordPress/gutenberg#81429)
- components/Menu: Restore Modal focus return when menu items close (WordPress/gutenberg#81164)
- DataViews: Move the rich text control into the editor package (WordPress/gutenberg#81430)
- Components: Remove ValidatedTextControl private API (WordPress/gutenberg#80680)
- Cover: Avoid passing null as the featured image size (WordPress/gutenberg#81444)
- DataViews: vendor `ValidatedNumberControl` (WordPress/gutenberg#81433)
- DataViews: vendor ValidatedCheckboxControl (WordPress/gutenberg#81435)
- DataViews: vendor ValidatedRadioControl (WordPress/gutenberg#81434)
- UI: Upgrade React DayPicker to version 10 (WordPress/gutenberg#81439)
- Block editor: render a real default block in place of the default appender (WordPress/gutenberg#81231)
- Spacing Sizes Control: Make the control label translatable independently of the input aria label. (WordPress/gutenberg#81240)
- Writing flow: stop the caret on containers that do not merge with the text flow (WordPress/gutenberg#81456)
- Remove an unmodified wrapper when all its inner blocks are removed (WordPress/gutenberg#42503)
- Normalize block gap values in layout (WordPress/gutenberg#81460)
- Docs: Add Block Actions Readme (WordPress/gutenberg#69408)
- Block editor: disclose the nested block count of a multi selection (WordPress/gutenberg#80745)
- Fix: flaky autosave shareable URL revisions e2e test. (WordPress/gutenberg#81455)
- Fix empty list block with anchor persisting after backspace deletion (WordPress/gutenberg#77000)
- Docs: Add Block List Readme (WordPress/gutenberg#69432)
- Docs: Add Block Lock Readme (WordPress/gutenberg#69434)
- Backport core fixes for finalize route (WordPress/gutenberg#81465)
- ESLint: Rename root eslint.config.cjs to eslint.config.mjs (WordPress/gutenberg#81468)
- Update 23.8 release branch  (WordPress/gutenberg#81486)
- RTC: Couple RTC and polling provider as an opt-in experiment (WordPress/gutenberg#80658)
- Align collaboration migration version markers with the 23.8.0 release (WordPress/gutenberg#81789)

Fixes #66066.

git-svn-id: https://develop.svn.wordpress.org/trunk@63534 602fd350-edb4-49c9-b593-d223f7449a82
wporg-sync pushed a commit to WordPress/WordPress that referenced this pull request Sep 8, 2026
This updates the pinned commit hash of the Gutenberg repository from `5a0417990a9404cc2562cdd35e3054cb0d3e546e` (version `23.7.0`) to `ae8b34d78e1abc6d1c866fdc00080a1452de82ad` (version `23.8.0`).

A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/v23.7.0..v23.8.0.

- Fix: New route-based admin pages are empty when no JS (WordPress/gutenberg#80628)
- Report flaky tests: declare @types/node (WordPress/gutenberg#80838)
- Storybook e2e: add small, compact and icon examples to button matrix (WordPress/gutenberg#80793)
- ESLint: Drop @eslint/compat fixup for jest-dom and testing-library (WordPress/gutenberg#80842)
- Storybook: Use SelectControl in Motion tokens story (WordPress/gutenberg#80790)
- Writing flow: forward delete an empty paragraph without breaking apart the next block (WordPress/gutenberg#80813)
- ToggleControl: Add "With Visual" Storybook story (WordPress/gutenberg#80803)
- Bump the github-actions group across 1 directory with 5 updates (WordPress/gutenberg#80684)
- Update Ariakit packages (WordPress/gutenberg#80765)
- Components: Update Floating UI to 2.1.9 (WordPress/gutenberg#80761)
- Improve pre-flight npm access checks (WordPress/gutenberg#80334)
- Ensure static checks can run for private mirrors (WordPress/gutenberg#80817)
- Components: Update react-day-picker to 9.14.0 (WordPress/gutenberg#80792)
- Testing: Remove the jest-puppeteer-axe package (WordPress/gutenberg#80775)
- Tools: Use native agent skill discovery (WordPress/gutenberg#80811)
- Table of Contents: Replace "Convert to static list" with confirmed "Detach" action (WordPress/gutenberg#80844)
- Page List: Rename the Edit action to Detach and confirm it in a dialog (WordPress/gutenberg#80847)
- URLInput: Simplify keyboard handling and fix arrow keys with a text selection (WordPress/gutenberg#80780)
- Upload Media: Fail the item when the /finalize request fails (WordPress/gutenberg#80725)
- Jest preset: support self-referencing via exports (WordPress/gutenberg#80837)
- Fix template `modified` and `date` return value for file templates (WordPress/gutenberg#80733)
- Element: Make the package importable in React 19 (WordPress/gutenberg#80053)
- Add CheckboxControl with-visual Storybook story. (WordPress/gutenberg#80849)
- UI: Add Combobox.InputGroup primitive (WordPress/gutenberg#80869)
- Block Editor: Clear the moving animation's z-index when it finishes (WordPress/gutenberg#80824)
- SearchableChipSelect: Add form primitive to @wordpress/ui (WordPress/gutenberg#80779)
- Playlist: Add track icon (WordPress/gutenberg#80959)
- Flaky tests: fix router navigate latest HTML (WordPress/gutenberg#80178)
- Components: Update polymorphism types to allow all attributes when specifying `as` (WordPress/gutenberg#80705)
- Block JSON schema & PHP-only blocks: Add `autoRegister` support (WordPress/gutenberg#80173)
- Boot: Adjust specificity of the image reset styles so components can size their own images (WordPress/gutenberg#80845)
- Components: Opt-in ConfirmDialog for auto-documentation (WordPress/gutenberg#80866)
- RichText: don't apply input transform when there's no onReplace (WordPress/gutenberg#80978)
- Quote: Ensure paragraph placeholder appears after deleting nested blocks (WordPress/gutenberg#77151)
- Block editor: make the Group action wrap blocks with a group transform (WordPress/gutenberg#80891)
- Copy: preserve the block when its entire text is selected (WordPress/gutenberg#80994)
- Add opt-out for block style state controls (WordPress/gutenberg#80956)
- Upgrade Playwright to v1.62 (WordPress/gutenberg#81001)
- List View: Speed up opening by removing a forced style recalculation (WordPress/gutenberg#80929)
- Widget Dashboard: preserve widget chrome flex layout (WordPress/gutenberg#80570)
- Widget Primitives: document actions as verbs, not links (WordPress/gutenberg#80974)
- Core Data: add missing @wordpress/base-styles dependency (WordPress/gutenberg#81012)
- Ignore node_modules in schema integration test globs (WordPress/gutenberg#81013)
- RichText: fix paste handler crash when pasting files (WordPress/gutenberg#81010)
- Docs: Add VS Code setup guidance (WordPress/gutenberg#77913)
- Perf Tests: Merge selection event windows instead of summing durations (WordPress/gutenberg#81002)
- Storybook: move smoke-test deps into the storybook workspace (WordPress/gutenberg#81017)
- Unit Tests: Reorganise the jest config file. (WordPress/gutenberg#80940)
- Performance Tests: Ignore the locally generated artifacts directory (WordPress/gutenberg#81024)
- Editor: Remove sidebar tabs focus sync effect (WordPress/gutenberg#81020)
- Widgets: carry a declarative `icon` through the widget pipeline (WordPress/gutenberg#80969)
- RTC: Remove excess autosave notices (when not useful) (WordPress/gutenberg#80539)
- UI: Use focus styles from base-styles (WordPress/gutenberg#80635)
- Automated Testing: Add Storybook component documentation regression testing (WordPress/gutenberg#80655)
- Pass Playlist controls to track blocks (WordPress/gutenberg#80368)
- Components: Deprecate Surface (WordPress/gutenberg#80943)
- Tabs: Support Home and End keys for keyboard navigation (WordPress/gutenberg#80912)
- Fix typos in code `comments` and `JSDoc` (WordPress/gutenberg#81045)
- Interface: Remove incorrect aria-expanded from pin-to-toolbar button (WordPress/gutenberg#79874)
- List View: Speed up opening by removing a second render pass (WordPress/gutenberg#80935)
- Docs: Use `gutenberg` instead of `Gutenberg` in package name (WordPress/gutenberg#81051)
- Fix ESLint warnings for 'navigateRegionsProps' spread (WordPress/gutenberg#81052)
- Tests: Replace page-level selectors with locators in e2e specs (WordPress/gutenberg#81053)
- RTC: Disable custom autosave controller when RTC is disabled (WordPress/gutenberg#80769)
- Background: Fix the legacy gradient UI where a gradient cannot be selected (WordPress/gutenberg#81056)
- Rename blockStatesEnabled setting to blockStatesEditingEnabled (WordPress/gutenberg#81058)
- Background: Fix the legacy gradient UI where a gradient cannot be selected - Add missing change log (WordPress/gutenberg#81060)
- Declare missing prettier and stylelint workspace dependencies (WordPress/gutenberg#81065)
- Notes: Display shortcut for form action buttons (WordPress/gutenberg#81064)
- View config: lowercase dynamic filter names (WordPress/gutenberg#81068)
- CI: cache the system packages Playwright dowloads for WebKit (WordPress/gutenberg#80846)
- List View: Collapse off-window placeholder rows into a single spacer row (WordPress/gutenberg#80953)
- devops: balance Playwright shards by duration (WordPress/gutenberg#79479)
- Views: honor developer-defined view config overrides (WordPress/gutenberg#80832)
- Components: Migrate ItemGroup to SCSS module (WordPress/gutenberg#80797)
- Test: Add Vitest migration routing guardrails (WordPress/gutenberg#81036)
- Visual revisions: Add a code diff view inside the editor (WordPress/gutenberg#80314)
- Bump actions/labeler from 6.1.0 to 7.0.0 in /.github/workflows (WordPress/gutenberg#80966)
- Visual revisions: add shareable urls (WordPress/gutenberg#79934)
- Fix e2e tests that break when shard rebalancing changes their neighbors (WordPress/gutenberg#81117)
- Query: guard non-scalar queryId to avoid fatal in enhanced pagination (WordPress/gutenberg#80724)
- Replace deprecated useResizeObserver for useScaleCanvas (WordPress/gutenberg#67508)
- CI: Add job timeouts to E2E, static checks, bundle size, and create block (WordPress/gutenberg#80801)
- Allow organization or repository variable to dictate the Actions runner (WordPress/gutenberg#81087)
- List View: Only subscribe to the block subtree for rows that can show images (WordPress/gutenberg#81076)
- Editor: Migrate settings sidebar to Tabs from @wordpress/ui (WordPress/gutenberg#81054)
- Notes: Email users mentioned in a note (WordPress/gutenberg#79606)
- List View: Narrow the dependants of the memoized List View tree (WordPress/gutenberg#81129)
- List View: Pass only minimal required data to sub-tree branches (WordPress/gutenberg#81111)
- DataViews: Add `time` field type and control (WordPress/gutenberg#80830)
- Post Author Biography: Fix horizontal overflow with long unbroken text (WordPress/gutenberg#81018)
- Link Control: Restore the preview title underline (WordPress/gutenberg#81083)
- Views: Add React to the package's dev dependencies (WordPress/gutenberg#81139)
- feat: Add target param in proxy (WordPress/gutenberg#81141)
- Fix: flaky revisions pagination e2e cross-page diff assertion (WordPress/gutenberg#81119)
- Button: Suppress UA focus ring when focused and pressed (WordPress/gutenberg#81113)
- View config: add reference docs (WordPress/gutenberg#81149)
- Editor: Fix document tools button focus ring (WordPress/gutenberg#81115)
- List View: Replace expand/collapse callbacks with reducer dispatch (WordPress/gutenberg#81138)
- CI: resolve Playwright through the workspace that declares it (WordPress/gutenberg#81137)
- CI: build once and reuse the build across e2e tests shards (WordPress/gutenberg#81031)
- Fix: Tabs block: Start with empty tab labels with placeholders (WordPress/gutenberg#81009)
- Interface: Increase footer breadcrumb height to prevent focus ring clipping (WordPress/gutenberg#81145)
- Editor: clarify autosave failure notice (WordPress/gutenberg#76470)
- Theme: Omit color properties when neither provided nor inherited (WordPress/gutenberg#80600)
- Post editor: Add ThemeProvider for admin color schemes (WordPress/gutenberg#81112)
- Core Data: saveDirtyEntities: improve messaging of server errors (WordPress/gutenberg#81151)
- Global Styles: kebab-case preset slugs when converting references to custom properties (WordPress/gutenberg#80583)
- Revise CODEOWNERS for package ownership (removing nerrad) (WordPress/gutenberg#81175)
- Build: Wrap script bundles in an IIFE to contain 'use strict' (WordPress/gutenberg#79792)
- Media: Improve the HEIC upload error and keep any upload errors up until dismissed (WordPress/gutenberg#81130)
- Block Supports: Guard against non-string attribute values to avoid fatal errors (WordPress/gutenberg#80501)
- Video: Hide settings for the GIF variation (WordPress/gutenberg#81142)
- Video: clarify the Video variation description (WordPress/gutenberg#81181)
- Media Editor: Render sidebar tabs via ComplementaryArea's render prop (WordPress/gutenberg#81133)
- Bump docker/login-action (WordPress/gutenberg#80962)
- Bump actions/setup-node from 6.4.0 to 7.0.0 in /.github/setup-node (WordPress/gutenberg#80963)
- fix(admin-ui): reset the wp-admin li margin that misaligns Breadcrumbs (WordPress/gutenberg#81134)
- Bump astral-sh/setup-uv from 8.3.2 to 9.0.0 in /.github/workflows (WordPress/gutenberg#80964)
- Fix/79643 rtc awareness mixed block selection (WordPress/gutenberg#79836)
- Agents: Add a defensive data design skill and route to the copy guide (WordPress/gutenberg#81131)
- ESLint: Ban `@ts-ignore` in favour of `@ts-expect-error` (WordPress/gutenberg#81148)
- Types: Replace remaining `@ts-expect-error` suppressions with proper typing (WordPress/gutenberg#81200)
- Button: turn on the width setting by default in theme.json (WordPress/gutenberg#81196)
- Notes: fix the mention notification email composition (WordPress/gutenberg#81187)
- Edit Widgets: Fix header toolbar button focus ring (WordPress/gutenberg#81176)
- List View: Reduce per-row store subscriptions (WordPress/gutenberg#81136)
- Customizer widgets: Add ThemeProvider for admin color schemes (WordPress/gutenberg#81174)
- Blocks: Declare the `@types/react-is` devDependency (WordPress/gutenberg#81203)
- Widgets editor: Add ThemeProvider for admin color schemes (WordPress/gutenberg#81173)
- PanelColorSettings: Restore the missing space below the panel header (WordPress/gutenberg#81155)
- Remove the editableRoot opt-in from the paragraph block (WordPress/gutenberg#81184)
- Media Attached to: Fix issue with the popover unexpectedly flipping, tweak wording (WordPress/gutenberg#81206)
- Components: Add allowForms prop to SandBox component (WordPress/gutenberg#76471)
- Ensure device preview is always accurate when window is zoomed in (WordPress/gutenberg#81193)
- DataViews: Pass only eligible items to a bulk action callback (WordPress/gutenberg#81198)
- DataViews: Make grid and table item preview aspect ratio configurable (WordPress/gutenberg#79329)
- Block Editor: Return false from isBlockSelected when there is no client ID (WordPress/gutenberg#81212)
- Blocks: Update hpq to 1.4.0 and drop the ts-expect-error suppressions (WordPress/gutenberg#81199)
- DataViews: Fix the between `date` filter losing a manually typed date on blur (WordPress/gutenberg#81150)
- Block Editor: Fix Select all freezing on large posts (WordPress/gutenberg#81210)
- List View: Split the context and drop dead props to cut re-renders on expand and collapse (WordPress/gutenberg#81159)
- Docs: Fix broken Figma links on the design resources page. (WordPress/gutenberg#81166)
- Blocks: Support static block templates in block type settings (WordPress/gutenberg#80027)
- AGENTS: Update development tips section (WordPress/gutenberg#81224)
- URLInput: Skip search requests while an IME composition is in progress (WordPress/gutenberg#80602)
- Components: Deprecate Animate (WordPress/gutenberg#80931)
- Fix: Trunk e2e failures caused by the navigation spec leaving plain permalinks (WordPress/gutenberg#81238)
- Use p elements for callout alerts in components docs (WordPress/gutenberg#81234)
- Storybook: Enable design system theme tool globally (WordPress/gutenberg#81116)
- Media: Cover client-side big image scaling and orphaned files (WordPress/gutenberg#81061)
- Footnotes: guard against invalid post meta values (WordPress/gutenberg#81201)
- Block editor: unify what a new sibling block inherits (WordPress/gutenberg#81250)
- Global Styles: Remove unused duplicate font family preview utilities (WordPress/gutenberg#81194)
- Docs: explain how the theme.json schema fixtures work (WordPress/gutenberg#81263)
- theme.json schema: fix block pseudo-classes and custom states (WordPress/gutenberg#81209)
- List View: Migrate label wrapper to UI Stack and drop Badge from the anchor (WordPress/gutenberg#81266)
- Docs: Remove dependency group import guidance (WordPress/gutenberg#81245)
- ESLint: Define dependency import rules (WordPress/gutenberg#81246)
- Flaky tests: Report as a PR comment only, stop creating issues (WordPress/gutenberg#81218)
- Dashboard Widgets: remove the Hello Dolly download action (WordPress/gutenberg#81272)
- Block Directory: Make downloadable block item labels translatable. (WordPress/gutenberg#81237)
- Icons: move the inline image icon into the library (WordPress/gutenberg#81271)
- Update phpcs, wpcs dependencies (WordPress/gutenberg#81279)
- fix: add optional chaining for empty reusable block (WordPress/gutenberg#81165) (WordPress/gutenberg#81177)
- DataViews: Inline the kebabCase utility from components (WordPress/gutenberg#81284)
- Navigation: Complete the DocBlocks for the responsive container and overlay style helpers (WordPress/gutenberg#80622)
- Style states: fix state deselection when selecting the already selected block (WordPress/gutenberg#81277)
- Fix missing return value in force_filtered_html_on_import footnotes filter (WordPress/gutenberg#81293)
- Packages: Recover July 29 npm release metadata (WordPress/gutenberg#81303)
- Global styles: render element styles set only inside a breakpoint (WordPress/gutenberg#81265)
- Style states: Fix phantom pseudo element style output (WordPress/gutenberg#81291)
- Docs: remove breakpoint-only element style example from global styles guide (WordPress/gutenberg#81308)
- Render viewport state element styles in the editor (WordPress/gutenberg#81307)
- theme.json schema: responsive states belong to blocks (WordPress/gutenberg#81253)
- theme.json schema: allow responsive states on block style variations (WordPress/gutenberg#81309)
- Block Inspector: Disable the 'Edit original' button when the entity ID is missing (WordPress/gutenberg#81288)
- Site Editor: Decode HTML entities in Identity fields (WordPress/gutenberg#81269)
- Document editEntityRecord's options.isCached param (WordPress/gutenberg#81318)
- Theme: Colocate plugin tests with implementations (WordPress/gutenberg#81247)
- Block Editor: Bail out of hasSelectedInnerBlock when there is no clientId (WordPress/gutenberg#81315)
- ESLint: Replace strict config with bulk suppressions (WordPress/gutenberg#81248)
- Block Library: Document security patch releases (WordPress/gutenberg#81295)
- ESLint: Remove legacy import suppressions (WordPress/gutenberg#81338)
- Components: Migrate Spinner styles from Emotion to SCSS module (WordPress/gutenberg#80511)
- DataViews: Use the public `@wordpress/ui` Badge instead of the private one (WordPress/gutenberg#81236)
- Pert Tests: Avoid inflating interaction metrics with startTracing (WordPress/gutenberg#81264)
- Block Editor: Simplify InspectorControlsFill rendering logic (WordPress/gutenberg#81286)
- Keycodes: Make `withIgnoreIMEEvents` a public API (WordPress/gutenberg#81343)
- Docs: Fix broken links to the removed JavaScript build setup guide. (WordPress/gutenberg#81232)
- Markdownlint: disable the MD033 (no-inline-html) rule project-wide (WordPress/gutenberg#81213)
- Docs: Fix typo in block file structure guide (WordPress/gutenberg#81348)
- Playlist: Normalize Waveform Player configuration handling (WordPress/gutenberg#81342)
- Site editor: fix unreadable sidebar hover color (WordPress/gutenberg#81317)
- Global Styles: Migrate font size presets to the shared preset layer (WordPress/gutenberg#79811)
- Block Editor: Convert useBlockVisibility hook to TypeScript (WordPress/gutenberg#80390)
- Scope breakpoint media queries to screen so printing does not look like a resize (WordPress/gutenberg#81367)
- New `kebab-case` package: extract utility and migrate private API calls (WordPress/gutenberg#81294)
- Remove content types experiment (WordPress/gutenberg#81340)
- Editor: Keep the canvas height stable while resizing the canvas (WordPress/gutenberg#81163)
- Dashboard Widgets: add icon and relevance to the widget action envelope (WordPress/gutenberg#81275)
- Playlist: Improve audio conversion and track selection (WordPress/gutenberg#80926)
- Try: Set post navigation link icon to next. (WordPress/gutenberg#81384)
- UI: Derive Base UI direction from WordPress i18n (WordPress/gutenberg#80399)
- DataViews:  Fix `array` field type validation for empty values (WordPress/gutenberg#81378)
- Bump github/codeql-action/upload-sarif (WordPress/gutenberg#81287)
- Bump actions/stale from 10.4.0 to 11.0.0 in /.github/workflows (WordPress/gutenberg#81219)
- Monitor all setup-related composite Actions. (WordPress/gutenberg#81192)
- IconButton: Improve keyboard shortcut accessibility (WordPress/gutenberg#80402)
- Interface: Stop the secondary sidebar animating into place on page load (WordPress/gutenberg#81362)
- Fix: flaky list view paste block styles e2e test (WordPress/gutenberg#81229)
- Docs: Add error message guidance. (WordPress/gutenberg#81143)
- wp-build: Render the no-JS fallback in the generated page templates (WordPress/gutenberg#81365)
- Changed Build Process Link and remove unused tags (WordPress/gutenberg#81360)
- Scripts: Prevent a UTF-8 BOM in the middle of extracted CSS (WordPress/gutenberg#81383)
- Global Styles: Migrate shadows presets to use the preset management layer. (WordPress/gutenberg#79812)
- Global Styles: report border, shadow, outline, filter and dimension changes (WordPress/gutenberg#81407)
- Dashboard Widgets: split action icons into wire and resolved forms (WordPress/gutenberg#81381)
- Block Editor: Fix Escape from the block toolbar and stop redundant last focus dispatches (WordPress/gutenberg#81319)
- Block Mover: Add the keyboard shortcut to the buttons' spoken description (WordPress/gutenberg#81380)
- Format Library: Remove unused CSS rule (WordPress/gutenberg#77831)
- Core Data: Fix post staying dirty after saving edited post meta with RTC enabled (WordPress/gutenberg#81392)
- Widget Dashboard: host-tunable tile spacing via public custom properties (WordPress/gutenberg#81352)
- DataForm: Fix hidden fields validation (WordPress/gutenberg#81377)
- Tools: Make agent setup a workspace (WordPress/gutenberg#81418)
- Test: Add private Vitest config and migrate a pilot test (WordPress/gutenberg#81037)
- Interface: Let CSS own the ComplementaryArea width and use AnimatePresence custom for exit (WordPress/gutenberg#81363)
- Notes: Fix text wrapping for long usernames in collaboration sidebar (WordPress/gutenberg#81406)
- DataViews: vendor `ValidatedSelectControl` (WordPress/gutenberg#81391)
- UI: Add `Calendar` and `RangeCalendar`, moved from `components` private APIs (WordPress/gutenberg#81337)
- Feature: Tabs block: consider using the tab title in the Document Overview instead of a generic "Tab" label (WordPress/gutenberg#81427)
- fix: order site identity changes predictably (WordPress/gutenberg#81283)
- Docs: Fix broken link to the Node.js debugging guide. (WordPress/gutenberg#81398)
- Navigation Overlay Close: Inherit typography and color from the overlay (WordPress/gutenberg#80751)
- Fix: Regression: Tabs block: Start with empty tab labels with placeholders (WordPress/gutenberg#81429)
- components/Menu: Restore Modal focus return when menu items close (WordPress/gutenberg#81164)
- DataViews: Move the rich text control into the editor package (WordPress/gutenberg#81430)
- Components: Remove ValidatedTextControl private API (WordPress/gutenberg#80680)
- Cover: Avoid passing null as the featured image size (WordPress/gutenberg#81444)
- DataViews: vendor `ValidatedNumberControl` (WordPress/gutenberg#81433)
- DataViews: vendor ValidatedCheckboxControl (WordPress/gutenberg#81435)
- DataViews: vendor ValidatedRadioControl (WordPress/gutenberg#81434)
- UI: Upgrade React DayPicker to version 10 (WordPress/gutenberg#81439)
- Block editor: render a real default block in place of the default appender (WordPress/gutenberg#81231)
- Spacing Sizes Control: Make the control label translatable independently of the input aria label. (WordPress/gutenberg#81240)
- Writing flow: stop the caret on containers that do not merge with the text flow (WordPress/gutenberg#81456)
- Remove an unmodified wrapper when all its inner blocks are removed (WordPress/gutenberg#42503)
- Normalize block gap values in layout (WordPress/gutenberg#81460)
- Docs: Add Block Actions Readme (WordPress/gutenberg#69408)
- Block editor: disclose the nested block count of a multi selection (WordPress/gutenberg#80745)
- Fix: flaky autosave shareable URL revisions e2e test. (WordPress/gutenberg#81455)
- Fix empty list block with anchor persisting after backspace deletion (WordPress/gutenberg#77000)
- Docs: Add Block List Readme (WordPress/gutenberg#69432)
- Docs: Add Block Lock Readme (WordPress/gutenberg#69434)
- Backport core fixes for finalize route (WordPress/gutenberg#81465)
- ESLint: Rename root eslint.config.cjs to eslint.config.mjs (WordPress/gutenberg#81468)
- Update 23.8 release branch  (WordPress/gutenberg#81486)
- RTC: Couple RTC and polling provider as an opt-in experiment (WordPress/gutenberg#80658)
- Align collaboration migration version markers with the 23.8.0 release (WordPress/gutenberg#81789)

Fixes #66066.
Built from https://develop.svn.wordpress.org/trunk@63534


git-svn-id: http://core.svn.wordpress.org/trunk@62710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
adamsilverstein added a commit that referenced this pull request Sep 9, 2026
The report-flaky-tests action runs its TypeScript sources directly under
Node 24, which resolves relative imports only with an explicit extension.
Trunk made this change in #81218, but the branch picked up the Node 24
action config from #82249 without it, so the "Render the flaky tests
report" step crashes with ERR_MODULE_NOT_FOUND whenever a test flaked.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrQHYVWEr61osMiYVd4AJG
draganescu pushed a commit that referenced this pull request Sep 10, 2026
The report-flaky-tests action runs its TypeScript sources directly under
Node 24, which resolves relative imports only with an explicit extension.
Trunk made this change in #81218, but the branch picked up the Node 24
action config from #82249 without it, so the "Render the flaky tests
report" step crashes with ERR_MODULE_NOT_FOUND whenever a test flaked.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrQHYVWEr61osMiYVd4AJG
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 10, 2026
`end2end-test.yml`'s `report-to-issues` job checks out `trunk` (`ref:
trunk`) instead of this branch's own tree, then runs `npm run
build:packages` to build `packages/report-flaky-tests` before invoking
it. Trunk's `package.json` no longer defines a `build:packages`
script — it was retired when the action was migrated to run straight
from TypeScript source via Node 24's native type stripping
(WordPress#81218, "Flaky tests: Report as a PR comment only,
stop creating issues"), so the checked-out step now fails with `npm
error Missing script: "build:packages"` whenever the job actually
runs.

Because the job always checks out live current trunk rather than this
frozen branch's own copy, this is a structural failure mode, not a
one-time regression: it will keep breaking as trunk's tooling keeps
evolving out from under it, independent of anything on `wp/6.7`
itself.

Retrofitting trunk's current implementation was considered and
rejected: trunk's replacement is not just a CI fix but a product-
policy change (flaky tests are now reported as a PR comment instead of
filed as GitHub issues), which is out of scope for a frozen, security-
maintenance-only branch. Removing the job only drops an automated
notification — no actual test-correctness signal depends on it, since
the underlying Playwright results and artifacts are unaffected.

The `has-flaky-test-report` output on `merge-artifacts` is removed
alongside it, as `report-to-issues` was its only consumer.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 11, 2026
The `report-to-issues` job checks out `ref: trunk` before building and
running `packages/report-flaky-tests`, so it always executes live current
trunk's copy of the action rather than this frozen branch's own. Trunk has
since retired the `npm run build:packages` script this job's "Npm build"
step calls, as part of migrating the action to run directly from
TypeScript source via Node 24's native type-stripping and changing flaky
test reporting to a PR-comment-only model
(WordPress#81218) — current trunk's `package.json` no longer
declares that script at all. The moment this job's `download-artifact`
step succeeds (i.e. any e2e job actually produces a `flaky-tests-report`
artifact), the subsequent `npm run build:packages` step will fail with
`npm error Missing script: "build:packages"`.

This is a structural failure mode, not a one-time regression: because the
job always tracks a moving target (trunk) instead of this branch's own
frozen copy of the action, it will keep breaking as trunk's tooling
continues to evolve out from under it.

Retrofitting trunk's current implementation was considered and rejected.
It's more than a CI repair for a frozen, security-maintenance-only
branch — trunk's version also carries a real product-policy change (flaky
tests become PR comments instead of GitHub issues), which is out of scope
here.

Removing the job only drops an automated notification; it has no effect
on actual test-correctness signal, since it only ever reports on flaky
tests after the fact and never gates a build.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 11, 2026
…2end-test.yml`.

The `report-to-issues` job in `end2end-test.yml` (display name "Report
to GitHub") always does `actions/checkout ... ref: trunk`, so it builds
and runs live current trunk's `packages/report-flaky-tests` action,
never this frozen branch's own copy. Trunk has since retired the
`build:packages` npm script this job's "Npm build" step calls, as part
of migrating the action to run straight from TypeScript source via
Node 24's native type-stripping (WordPress#81218, "Flaky
tests: Report as a PR comment only, stop creating issues"). Trunk's
current `package.json` has no `build:packages` script at all, so the
step will fail with `npm error Missing script: "build:packages"` the
moment it actually executes.

That step is gated behind a successful `actions/download-artifact` for
a `flaky-tests-report` artifact that `e2e-puppeteer` and
`e2e-playwright` only produce when a test genuinely flakes (fails, then
passes on retry); no `merge-artifacts`-style job or
`has-flaky-test-report` output exists on this branch to gate it
instead. In every `end2end-test.yml` run checked across this branch's
CI history, that precondition hadn't been met recently, so this exact
failure hasn't shown up live yet here. The mechanism is nonetheless
current and confirmed directly against trunk's `package.json`, and will
fire the next time a genuinely flaky test occurs on this branch.

Retrofitting the job to match trunk's current implementation was
considered and rejected: trunk's replacement is also a real
product-policy change (flaky tests become PR-comments-only, no more
GitHub issues filed), which is out of scope for a frozen,
security-maintenance-only branch. Removing the job only drops an
automated notification; no test-correctness signal depends on it.
`packages/report-flaky-tests` is left in place, now unused by any
workflow on this branch; removing the package itself is optional
cleanup out of scope here.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 11, 2026
…2end-test.yml`.

`report-to-issues` always checks out `ref: trunk` before building and running `./packages/report-flaky-tests`, so it never runs this branch's own frozen copy of the action — it runs whatever is on live current trunk at the time the job executes. Trunk has since retired the `npm run build:packages` script this job's "Npm build" step depends on, as part of migrating `report-flaky-tests` to run directly from TypeScript source via Node 24's native type-stripping (WordPress#81218, "Flaky tests: Report as a PR comment only, stop creating issues"). Reproducing the job's own command against trunk's current `package.json` confirms the exact failure:

    npm error Missing script: "build:packages"

Because the job tracks a moving target instead of this branch's own commit, it will keep breaking in step with trunk's tooling regardless of anything on this frozen, security-maintenance-only branch — this is a structural failure mode, not a one-time regression.

Retrofitting the job to match trunk's current implementation was considered and rejected: trunk's version is not just a CI fix but a product-policy change (flaky tests are now reported as PR comments instead of filed as GitHub issues), which is out of scope for a security-maintenance branch. Removing the job only drops an automated notification; it has no effect on actual test-correctness signal, since it only ever posted flaky-test summaries as GitHub issues and never gated the build.

The `has-flaky-test-report` output on `merge-artifacts` is also removed, since `report-to-issues` was its only consumer.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 11, 2026
`end2end-test.yml`'s `report-to-issues` job checks out `trunk` (`ref:
trunk`) instead of this branch's own tree, then runs `npm run
build:packages` to build `packages/report-flaky-tests` before invoking
it. Trunk's `package.json` no longer defines a `build:packages`
script — it was retired when the action was migrated to run straight
from TypeScript source via Node 24's native type stripping
(WordPress#81218, "Flaky tests: Report as a PR comment only,
stop creating issues"), so the checked-out step now fails with `npm
error Missing script: "build:packages"` whenever the job actually
runs.

Because the job always checks out live current trunk rather than this
frozen branch's own copy, this is a structural failure mode, not a
one-time regression: it will keep breaking as trunk's tooling keeps
evolving out from under it, independent of anything on `wp/6.7`
itself.

Retrofitting trunk's current implementation was considered and
rejected: trunk's replacement is not just a CI fix but a product-
policy change (flaky tests are now reported as a PR comment instead of
filed as GitHub issues), which is out of scope for a frozen, security-
maintenance-only branch. Removing the job only drops an automated
notification — no actual test-correctness signal depends on it, since
the underlying Playwright results and artifacts are unaffected.

The `has-flaky-test-report` output on `merge-artifacts` is removed
alongside it, as `report-to-issues` was its only consumer.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 11, 2026
…st.yml`.

The `report-to-issues` job checks out live `trunk` (not this branch) and
runs `npm run build:packages` against it before invoking
`./packages/report-flaky-tests`. Trunk retired that script as part of
migrating this action to Node 24's native TypeScript stripping
(WordPress#81218), so the job now fails outright with
`Missing script: "build:packages"` on every run. Because the job always
tracks trunk's current state rather than a fixed target, this isn't a
one-time regression — it will keep breaking as trunk's build tooling
continues to evolve, on every frozen branch that still has this job.

Retrofitting trunk's rewritten, build-free version of this action was
considered, but rejected for this frozen, security-maintenance-only
branch: it's a real, if minor, product-policy change (issues become
PR comments), not just a CI repair. Removing the job entirely only
drops an automated notification, not any actual test-correctness
signal, and the failure is otherwise silent — `if: needs.merge-artifacts.
outputs.has-flaky-test-report == 'true'` meant the job was skipped
whenever there was nothing to report, so this was easy to miss.

Also removes the now-unused `has-flaky-test-report` output it was the
sole consumer of. `packages/report-flaky-tests` itself is left in place,
now unused by any workflow on this branch.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 11, 2026
…st.yml`.

The `report-to-issues` job checks out live `trunk` (not this branch) and
runs `npm run build:packages` against it before invoking
`./packages/report-flaky-tests`. Trunk retired that script as part of
migrating this action to Node 24's native TypeScript stripping
(WordPress#81218), so the job now fails outright with
`Missing script: "build:packages"` on every run. Because the job always
tracks trunk's current state rather than a fixed target, this isn't a
one-time regression — it will keep breaking as trunk's build tooling
continues to evolve, on every frozen branch that still has this job.

Retrofitting trunk's rewritten, build-free version of this action was
considered, but rejected for this frozen, security-maintenance-only
branch: it's a real, if minor, product-policy change (issues become
PR comments), not just a CI repair. Removing the job entirely only
drops an automated notification, not any actual test-correctness
signal, and the failure is otherwise silent — `if: needs.merge-artifacts.
outputs.has-flaky-test-report == 'true'` meant the job was skipped
whenever there was nothing to report, so this was easy to miss.

Also removes the now-unused `has-flaky-test-report` output it was the
sole consumer of. `packages/report-flaky-tests` itself is left in place,
now unused by any workflow on this branch.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 13, 2026
…2end-test.yml`.

The `report-to-issues` job in `end2end-test.yml` (display name "Report
to GitHub") always does `actions/checkout ... ref: trunk`, so it builds
and runs live current trunk's `packages/report-flaky-tests` action,
never this frozen branch's own copy. Trunk has since retired the
`build:packages` npm script this job's "Npm build" step calls, as part
of migrating the action to run straight from TypeScript source via
Node 24's native type-stripping (WordPress#81218, "Flaky
tests: Report as a PR comment only, stop creating issues"). Trunk's
current `package.json` has no `build:packages` script at all, so the
step will fail with `npm error Missing script: "build:packages"` the
moment it actually executes.

That step is gated behind a successful `actions/download-artifact` for
a `flaky-tests-report` artifact that `e2e-puppeteer` and
`e2e-playwright` only produce when a test genuinely flakes (fails, then
passes on retry); no `merge-artifacts`-style job or
`has-flaky-test-report` output exists on this branch to gate it
instead. In every `end2end-test.yml` run checked across this branch's
CI history, that precondition hadn't been met recently, so this exact
failure hasn't shown up live yet here. The mechanism is nonetheless
current and confirmed directly against trunk's `package.json`, and will
fire the next time a genuinely flaky test occurs on this branch.

Retrofitting the job to match trunk's current implementation was
considered and rejected: trunk's replacement is also a real
product-policy change (flaky tests become PR-comments-only, no more
GitHub issues filed), which is out of scope for a frozen,
security-maintenance-only branch. Removing the job only drops an
automated notification; no test-correctness signal depends on it.
`packages/report-flaky-tests` is left in place, now unused by any
workflow on this branch; removing the package itself is optional
cleanup out of scope here.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 13, 2026
…2end-test.yml`.

The `report-to-issues` job in `end2end-test.yml` (display name "Report
to GitHub") always does `actions/checkout ... ref: trunk`, so it builds
and runs live current trunk's `packages/report-flaky-tests` action,
never this frozen branch's own copy. Trunk has since retired the
`build:packages` npm script this job's "Npm build" step calls, as part
of migrating the action to run straight from TypeScript source via
Node 24's native type-stripping (WordPress#81218, "Flaky
tests: Report as a PR comment only, stop creating issues"). Trunk's
current `package.json` has no `build:packages` script at all, so the
step will fail with `npm error Missing script: "build:packages"` the
moment it actually executes.

That step is gated behind a successful `actions/download-artifact` for
a `flaky-tests-report` artifact that `e2e-puppeteer` and
`e2e-playwright` only produce when a test genuinely flakes (fails, then
passes on retry); no `merge-artifacts`-style job or
`has-flaky-test-report` output exists on this branch to gate it
instead. In every `end2end-test.yml` run checked across this branch's
CI history, that precondition hadn't been met recently, so this exact
failure hasn't shown up live yet here. The mechanism is nonetheless
current and confirmed directly against trunk's `package.json`, and will
fire the next time a genuinely flaky test occurs on this branch.

Retrofitting the job to match trunk's current implementation was
considered and rejected: trunk's replacement is also a real
product-policy change (flaky tests become PR-comments-only, no more
GitHub issues filed), which is out of scope for a frozen,
security-maintenance-only branch. Removing the job only drops an
automated notification; no test-correctness signal depends on it.
`packages/report-flaky-tests` is left in place, now unused by any
workflow on this branch; removing the package itself is optional
cleanup out of scope here.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 13, 2026
The `report-to-issues` job checks out `ref: trunk` before building and
running `packages/report-flaky-tests`, so it always executes live current
trunk's copy of the action rather than this frozen branch's own. Trunk has
since retired the `npm run build:packages` script this job's "Npm build"
step calls, as part of migrating the action to run directly from
TypeScript source via Node 24's native type-stripping and changing flaky
test reporting to a PR-comment-only model
(WordPress#81218) — current trunk's `package.json` no longer
declares that script at all. The moment this job's `download-artifact`
step succeeds (i.e. any e2e job actually produces a `flaky-tests-report`
artifact), the subsequent `npm run build:packages` step will fail with
`npm error Missing script: "build:packages"`.

This is a structural failure mode, not a one-time regression: because the
job always tracks a moving target (trunk) instead of this branch's own
frozen copy of the action, it will keep breaking as trunk's tooling
continues to evolve out from under it.

Retrofitting trunk's current implementation was considered and rejected.
It's more than a CI repair for a frozen, security-maintenance-only
branch — trunk's version also carries a real product-policy change (flaky
tests become PR comments instead of GitHub issues), which is out of scope
here.

Removing the job only drops an automated notification; it has no effect
on actual test-correctness signal, since it only ever reports on flaky
tests after the fact and never gates a build.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
The `report-to-issues` job checks out `ref: trunk` before building and
running `packages/report-flaky-tests`, so it always executes live current
trunk's copy of the action rather than this frozen branch's own. Trunk has
since retired the `npm run build:packages` script this job's "Npm build"
step calls, as part of migrating the action to run directly from
TypeScript source via Node 24's native type-stripping and changing flaky
test reporting to a PR-comment-only model
(WordPress#81218) — current trunk's `package.json` no longer
declares that script at all. The moment this job's `download-artifact`
step succeeds (i.e. any e2e job actually produces a `flaky-tests-report`
artifact), the subsequent `npm run build:packages` step will fail with
`npm error Missing script: "build:packages"`.

This is a structural failure mode, not a one-time regression: because the
job always tracks a moving target (trunk) instead of this branch's own
frozen copy of the action, it will keep breaking as trunk's tooling
continues to evolve out from under it.

Retrofitting trunk's current implementation was considered and rejected.
It's more than a CI repair for a frozen, security-maintenance-only
branch — trunk's version also carries a real product-policy change (flaky
tests become PR comments instead of GitHub issues), which is out of scope
here.

Removing the job only drops an automated notification; it has no effect
on actual test-correctness signal, since it only ever reports on flaky
tests after the fact and never gates a build.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
`end2end-test.yml`'s `report-to-issues` job checks out `trunk` (`ref:
trunk`) instead of this branch's own tree, then runs `npm run
build:packages` to build `packages/report-flaky-tests` before invoking
it. Trunk's `package.json` no longer defines a `build:packages`
script — it was retired when the action was migrated to run straight
from TypeScript source via Node 24's native type stripping
(WordPress#81218, "Flaky tests: Report as a PR comment only,
stop creating issues"), so the checked-out step now fails with `npm
error Missing script: "build:packages"` whenever the job actually
runs.

Because the job always checks out live current trunk rather than this
frozen branch's own copy, this is a structural failure mode, not a
one-time regression: it will keep breaking as trunk's tooling keeps
evolving out from under it, independent of anything on `wp/6.7`
itself.

Retrofitting trunk's current implementation was considered and
rejected: trunk's replacement is not just a CI fix but a product-
policy change (flaky tests are now reported as a PR comment instead of
filed as GitHub issues), which is out of scope for a frozen, security-
maintenance-only branch. Removing the job only drops an automated
notification — no actual test-correctness signal depends on it, since
the underlying Playwright results and artifacts are unaffected.

The `has-flaky-test-report` output on `merge-artifacts` is removed
alongside it, as `report-to-issues` was its only consumer.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
…st.yml`.

The `report-to-issues` job checks out live `trunk` (not this branch) and
runs `npm run build:packages` against it before invoking
`./packages/report-flaky-tests`. Trunk retired that script as part of
migrating this action to Node 24's native TypeScript stripping
(WordPress#81218), so the job now fails outright with
`Missing script: "build:packages"` on every run. Because the job always
tracks trunk's current state rather than a fixed target, this isn't a
one-time regression — it will keep breaking as trunk's build tooling
continues to evolve, on every frozen branch that still has this job.

Retrofitting trunk's rewritten, build-free version of this action was
considered, but rejected for this frozen, security-maintenance-only
branch: it's a real, if minor, product-policy change (issues become
PR comments), not just a CI repair. Removing the job entirely only
drops an automated notification, not any actual test-correctness
signal, and the failure is otherwise silent — `if: needs.merge-artifacts.
outputs.has-flaky-test-report == 'true'` meant the job was skipped
whenever there was nothing to report, so this was easy to miss.

Also removes the now-unused `has-flaky-test-report` output it was the
sole consumer of. `packages/report-flaky-tests` itself is left in place,
now unused by any workflow on this branch.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
…2end-test.yml`.

The `report-to-issues` job in `end2end-test.yml` (display name "Report
to GitHub") always does `actions/checkout ... ref: trunk`, so it builds
and runs live current trunk's `packages/report-flaky-tests` action,
never this frozen branch's own copy. Trunk has since retired the
`build:packages` npm script this job's "Npm build" step calls, as part
of migrating the action to run straight from TypeScript source via
Node 24's native type-stripping (WordPress#81218, "Flaky
tests: Report as a PR comment only, stop creating issues"). Trunk's
current `package.json` has no `build:packages` script at all, so the
step will fail with `npm error Missing script: "build:packages"` the
moment it actually executes.

That step is gated behind a successful `actions/download-artifact` for
a `flaky-tests-report` artifact that `e2e-puppeteer` and
`e2e-playwright` only produce when a test genuinely flakes (fails, then
passes on retry); no `merge-artifacts`-style job or
`has-flaky-test-report` output exists on this branch to gate it
instead. In every `end2end-test.yml` run checked across this branch's
CI history, that precondition hadn't been met recently, so this exact
failure hasn't shown up live yet here. The mechanism is nonetheless
current and confirmed directly against trunk's `package.json`, and will
fire the next time a genuinely flaky test occurs on this branch.

Retrofitting the job to match trunk's current implementation was
considered and rejected: trunk's replacement is also a real
product-policy change (flaky tests become PR-comments-only, no more
GitHub issues filed), which is out of scope for a frozen,
security-maintenance-only branch. Removing the job only drops an
automated notification; no test-correctness signal depends on it.
`packages/report-flaky-tests` is left in place, now unused by any
workflow on this branch; removing the package itself is optional
cleanup out of scope here.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
`end2end-test.yml`'s `report-to-issues` job checks out `trunk` (`ref:
trunk`) instead of this branch's own tree, then runs `npm run
build:packages` to build `packages/report-flaky-tests` before invoking
it. Trunk's `package.json` no longer defines a `build:packages`
script — it was retired when the action was migrated to run straight
from TypeScript source via Node 24's native type stripping
(WordPress#81218, "Flaky tests: Report as a PR comment only,
stop creating issues"), so the checked-out step now fails with `npm
error Missing script: "build:packages"` whenever the job actually
runs.

Because the job always checks out live current trunk rather than this
frozen branch's own copy, this is a structural failure mode, not a
one-time regression: it will keep breaking as trunk's tooling keeps
evolving out from under it, independent of anything on `wp/6.7`
itself.

Retrofitting trunk's current implementation was considered and
rejected: trunk's replacement is not just a CI fix but a product-
policy change (flaky tests are now reported as a PR comment instead of
filed as GitHub issues), which is out of scope for a frozen, security-
maintenance-only branch. Removing the job only drops an automated
notification — no actual test-correctness signal depends on it, since
the underlying Playwright results and artifacts are unaffected.

The `has-flaky-test-report` output on `merge-artifacts` is removed
alongside it, as `report-to-issues` was its only consumer.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
…2end-test.yml`.

The `report-to-issues` job in `end2end-test.yml` (display name "Report
to GitHub") always does `actions/checkout ... ref: trunk`, so it builds
and runs live current trunk's `packages/report-flaky-tests` action,
never this frozen branch's own copy. Trunk has since retired the
`build:packages` npm script this job's "Npm build" step calls, as part
of migrating the action to run straight from TypeScript source via
Node 24's native type-stripping (WordPress#81218, "Flaky
tests: Report as a PR comment only, stop creating issues"). Trunk's
current `package.json` has no `build:packages` script at all, so the
step will fail with `npm error Missing script: "build:packages"` the
moment it actually executes.

That step is gated behind a successful `actions/download-artifact` for
a `flaky-tests-report` artifact that `e2e-puppeteer` and
`e2e-playwright` only produce when a test genuinely flakes (fails, then
passes on retry); no `merge-artifacts`-style job or
`has-flaky-test-report` output exists on this branch to gate it
instead. In every `end2end-test.yml` run checked across this branch's
CI history, that precondition hadn't been met recently, so this exact
failure hasn't shown up live yet here. The mechanism is nonetheless
current and confirmed directly against trunk's `package.json`, and will
fire the next time a genuinely flaky test occurs on this branch.

Retrofitting the job to match trunk's current implementation was
considered and rejected: trunk's replacement is also a real
product-policy change (flaky tests become PR-comments-only, no more
GitHub issues filed), which is out of scope for a frozen,
security-maintenance-only branch. Removing the job only drops an
automated notification; no test-correctness signal depends on it.
`packages/report-flaky-tests` is left in place, now unused by any
workflow on this branch; removing the package itself is optional
cleanup out of scope here.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
The `report-to-issues` job checks out `ref: trunk` before building and
running `packages/report-flaky-tests`, so it always executes live current
trunk's copy of the action rather than this frozen branch's own. Trunk has
since retired the `npm run build:packages` script this job's "Npm build"
step calls, as part of migrating the action to run directly from
TypeScript source via Node 24's native type-stripping and changing flaky
test reporting to a PR-comment-only model
(WordPress#81218) — current trunk's `package.json` no longer
declares that script at all. The moment this job's `download-artifact`
step succeeds (i.e. any e2e job actually produces a `flaky-tests-report`
artifact), the subsequent `npm run build:packages` step will fail with
`npm error Missing script: "build:packages"`.

This is a structural failure mode, not a one-time regression: because the
job always tracks a moving target (trunk) instead of this branch's own
frozen copy of the action, it will keep breaking as trunk's tooling
continues to evolve out from under it.

Retrofitting trunk's current implementation was considered and rejected.
It's more than a CI repair for a frozen, security-maintenance-only
branch — trunk's version also carries a real product-policy change (flaky
tests become PR comments instead of GitHub issues), which is out of scope
here.

Removing the job only drops an automated notification; it has no effect
on actual test-correctness signal, since it only ever reports on flaky
tests after the fact and never gates a build.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
…2end-test.yml`.

`report-to-issues` always checks out `ref: trunk` before building and running `./packages/report-flaky-tests`, so it never runs this branch's own frozen copy of the action — it runs whatever is on live current trunk at the time the job executes. Trunk has since retired the `npm run build:packages` script this job's "Npm build" step depends on, as part of migrating `report-flaky-tests` to run directly from TypeScript source via Node 24's native type-stripping (WordPress#81218, "Flaky tests: Report as a PR comment only, stop creating issues"). Reproducing the job's own command against trunk's current `package.json` confirms the exact failure:

    npm error Missing script: "build:packages"

Because the job tracks a moving target instead of this branch's own commit, it will keep breaking in step with trunk's tooling regardless of anything on this frozen, security-maintenance-only branch — this is a structural failure mode, not a one-time regression.

Retrofitting the job to match trunk's current implementation was considered and rejected: trunk's version is not just a CI fix but a product-policy change (flaky tests are now reported as PR comments instead of filed as GitHub issues), which is out of scope for a security-maintenance branch. Removing the job only drops an automated notification; it has no effect on actual test-correctness signal, since it only ever posted flaky-test summaries as GitHub issues and never gated the build.

The `has-flaky-test-report` output on `merge-artifacts` is also removed, since `report-to-issues` was its only consumer.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
…st.yml`.

The `report-to-issues` job checks out live `trunk` (not this branch) and
runs `npm run build:packages` against it before invoking
`./packages/report-flaky-tests`. Trunk retired that script as part of
migrating this action to Node 24's native TypeScript stripping
(WordPress#81218), so the job now fails outright with
`Missing script: "build:packages"` on every run. Because the job always
tracks trunk's current state rather than a fixed target, this isn't a
one-time regression — it will keep breaking as trunk's build tooling
continues to evolve, on every frozen branch that still has this job.

Retrofitting trunk's rewritten, build-free version of this action was
considered, but rejected for this frozen, security-maintenance-only
branch: it's a real, if minor, product-policy change (issues become
PR comments), not just a CI repair. Removing the job entirely only
drops an automated notification, not any actual test-correctness
signal, and the failure is otherwise silent — `if: needs.merge-artifacts.
outputs.has-flaky-test-report == 'true'` meant the job was skipped
whenever there was nothing to report, so this was easy to miss.

Also removes the now-unused `has-flaky-test-report` output it was the
sole consumer of. `packages/report-flaky-tests` itself is left in place,
now unused by any workflow on this branch.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
…st.yml`.

The `report-to-issues` job checks out live `trunk` (not this branch) and
runs `npm run build:packages` against it before invoking
`./packages/report-flaky-tests`. Trunk retired that script as part of
migrating this action to Node 24's native TypeScript stripping
(WordPress#81218), so the job now fails outright with
`Missing script: "build:packages"` on every run. Because the job always
tracks trunk's current state rather than a fixed target, this isn't a
one-time regression — it will keep breaking as trunk's build tooling
continues to evolve, on every frozen branch that still has this job.

Retrofitting trunk's rewritten, build-free version of this action was
considered, but rejected for this frozen, security-maintenance-only
branch: it's a real, if minor, product-policy change (issues become
PR comments), not just a CI repair. Removing the job entirely only
drops an automated notification, not any actual test-correctness
signal, and the failure is otherwise silent — `if: needs.merge-artifacts.
outputs.has-flaky-test-report == 'true'` meant the job was skipped
whenever there was nothing to report, so this was easy to miss.

Also removes the now-unused `has-flaky-test-report` output it was the
sole consumer of. `packages/report-flaky-tests` itself is left in place,
now unused by any workflow on this branch.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
`end2end-test.yml`'s `report-to-issues` job checks out `trunk` (`ref:
trunk`) instead of this branch's own tree, then runs `npm run
build:packages` to build `packages/report-flaky-tests` before invoking
it. Trunk's `package.json` no longer defines a `build:packages`
script — it was retired when the action was migrated to run straight
from TypeScript source via Node 24's native type stripping
(WordPress#81218, "Flaky tests: Report as a PR comment only,
stop creating issues"), so the checked-out step now fails with `npm
error Missing script: "build:packages"` whenever the job actually
runs.

Because the job always checks out live current trunk rather than this
frozen branch's own copy, this is a structural failure mode, not a
one-time regression: it will keep breaking as trunk's tooling keeps
evolving out from under it, independent of anything on `wp/6.7`
itself.

Retrofitting trunk's current implementation was considered and
rejected: trunk's replacement is not just a CI fix but a product-
policy change (flaky tests are now reported as a PR comment instead of
filed as GitHub issues), which is out of scope for a frozen, security-
maintenance-only branch. Removing the job only drops an automated
notification — no actual test-correctness signal depends on it, since
the underlying Playwright results and artifacts are unaffected.

The `has-flaky-test-report` output on `merge-artifacts` is removed
alongside it, as `report-to-issues` was its only consumer.
desrosj added a commit to desrosj/gutenberg that referenced this pull request Sep 14, 2026
…2end-test.yml`.

`report-to-issues` always checks out `ref: trunk` before building and running `./packages/report-flaky-tests`, so it never runs this branch's own frozen copy of the action — it runs whatever is on live current trunk at the time the job executes. Trunk has since retired the `npm run build:packages` script this job's "Npm build" step depends on, as part of migrating `report-flaky-tests` to run directly from TypeScript source via Node 24's native type-stripping (WordPress#81218, "Flaky tests: Report as a PR comment only, stop creating issues"). Reproducing the job's own command against trunk's current `package.json` confirms the exact failure:

    npm error Missing script: "build:packages"

Because the job tracks a moving target instead of this branch's own commit, it will keep breaking in step with trunk's tooling regardless of anything on this frozen, security-maintenance-only branch — this is a structural failure mode, not a one-time regression.

Retrofitting the job to match trunk's current implementation was considered and rejected: trunk's version is not just a CI fix but a product-policy change (flaky tests are now reported as PR comments instead of filed as GitHub issues), which is out of scope for a security-maintenance branch. Removing the job only drops an automated notification; it has no effect on actual test-correctness signal, since it only ever posted flaky-test summaries as GitHub issues and never gated the build.

The `has-flaky-test-report` output on `merge-artifacts` is also removed, since `report-to-issues` was its only consumer.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Type] Build Tooling Issues or PRs related to build tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant