Skip to content

Add more explicit test timeouts, reduce some default timeouts - #8

Merged
alecgeatches merged 6 commits into
trunkfrom
test/explicit-timeouts
Aug 12, 2026
Merged

alecgeatches merged 6 commits into
trunkfrom
test/explicit-timeouts

Conversation

@alecgeatches

Copy link
Copy Markdown
Collaborator

My first pull request #7 resulted in test failures, and because of the long default e2e timeouts this CI run was killed after exceeding 60 minutes. This isn't a good sign as we still want to add lots more tests, and failures shouldn't take a full hour. To start, reduce some default timeouts and be explicit in other places where long timeouts may be necessary.

@alecgeatches alecgeatches self-assigned this Aug 12, 2026
@alecgeatches

Copy link
Copy Markdown
Collaborator Author

The tests above still failed (after 42 minutes), but due to flakiness and not the timing changes. Trying to fix some of the other general test failure issues in the commits above.

@alecgeatches
alecgeatches merged commit 5f08cfd into trunk Aug 12, 2026
2 of 3 checks passed
@alecgeatches

Copy link
Copy Markdown
Collaborator Author

Still one fairly consistent failure in CI, but seems due to the typing-at-the-same-time limitation in the intent log engine. See comment in b2c72ef.

@alecgeatches
alecgeatches deleted the test/explicit-timeouts branch August 12, 2026 19:43
chriszarate added a commit that referenced this pull request Aug 24, 2026
83e144efc9 Sync: finish the trunk merge — drop two framework pieces this branch owns elsewhere
c6b266bc75 Rebuild package-lock.json on trunk's lock
2c50a5e9cd Sync: follow trunk's RTC experiment gate after the rebase
698a2fc7ca V1: integrated loop output, verified as a whole (#35)
13d1b3e154 Add more explicit test timeouts, reduce some default timeouts (#8)
cf93599113 Make intent-log the framework's default engine
0a9a170bdb Relocate the transport-specific e2e harness from the framework subtree
f683739358 Remove framework residue duplicated by or migrated to this plugin
7f36932c0d Sync: remove the framework's dual-homed intent-log frozen core
2149d22061 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
04d32960fd Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
1cd70e6820 Sync: backfill CHANGELOG for the framework/plugin split
7062018ff2 Docs: bring the sync architecture docs up to date for the framework/plugin split
98e8ba2fdf Sync: remove the built-in transports from the framework
14b9a11c67 Sync: remove the Yjs engine from the framework (step 4b)
cda266cad7 Sync: make connection retry transport-agnostic (E2)
00d42e9d76 Sync: make createSyncManager engine-neutral (step 4a)
f58a913289 Sync: route the collection path through the engine (step 3)
4008ded853 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
18ac9e5037 Sync: remove the intent-log engine from the framework (now plugin-only)
ce2d216dd6 Sync: expose registry test-support + session seam types for engine plugins
01111eee44 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
022ebd91e2 Sync: Make the collaboration framework engine/transport-less by default
8ac75c8cae Docs: Add an as-built architecture overview with mermaid diagrams
b3567fd4dc Sync: Add the WebSocket transport (daemon + codec-driven client)
276bd27a87 Sync: Make transports swappable; add HTTP long-polling
d0fb51470f Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
60eb412dfa Sync: Inline approval card for parked new-block proposals
08d3ecedcb Sync: Reserve Restore of requires-approval conflicts for capable users
5d24f4cc2c Sync: Stop dropping classic content; sync it as core/freeform
14a82d708b Sync: Sync Custom HTML blocks through the content field (raw-content model)
3be3b1c3e5 Sync: Fix the capture bug that silently blocked Custom HTML sync
65e8bf9369 Sync: Regression-test benign-to-protected attr value transitions
9983a07e54 Sync: Gate raw-attr markup at ingest; make block restore an approval
b63d141b62 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
bb4c4b9e9b Sync: Anchor collaboration conflicts to blocks in the canvas
11165044f7 Sync: Add the collaboration review panel to the document sidebar
ca51d70d4d Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
6a9357f463 Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
791a40e653 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
5149d9a9d3 Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
a71e3103c5 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
4dad221495 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
9668010b7b Docs: adversarial review of the intent-log branch (2026-08-05)
00f5867bf9 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
ffac7acf99 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
c070625a92 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
c27fb74ea7 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
86bb5d76ec Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
bbb0d851fe Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
1a108bb136 Sync: presence for the intent-log engine (Phase 2d-viii)
c8e9d59ae9 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
ffd4f44fb2 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
37456458bc Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
4146e4eb2c Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
bafedefbc6 Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
09c9ae78f2 Sync: never treat editor staleness as user intent (Phase 2d-iii)
bf2f8223ca Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
c03be224b9 Sync: record Phase 2d-i status in the architecture note
bf84dcd84a Collaboration: live two-browser intent-log editing (Phase 2d-i)
c6ffc0cf77 Sync: record Phase 2c status in the architecture note
12ba54f1f4 Sync: intent-log manager and adapter registration (Phase 2c-ii)
5bd6737e62 Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
46fb9020d3 Sync: record Phase 2a/2b status in the architecture note
76b516ded4 Sync: intent-log client session codec (Phase 2b)
c16d278721 Collaboration: unit tests for intent-log engine internals and adversarial ids
bbd1591b2d Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
312f3b3fe4 Sync: narrow transports to engine-opaque payloads (Phase 1c)
fb9af267ff Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
9276dc7c37 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
98365687c4 Collaboration: extract a swappable sync engine seam (Phase 0)
e61523237a Sync prototype: intent-log engine with field-scoped merge semantics
be1a0b58a2 UI: Add tooltips to Calendar and RangeCalendar navigation buttons (#81983)
db3254554c Pattern List: Import a pattern from JSON (#81919)
3bbdb29369 Fix: skip empty block markup in navigation to prevent split UL elements (#78793)
d13be36ff4 Fix: Line Break Tags Added to Scripts and Styles (#77542)
c96732f578 Styles Route: Reference the api-fetch and html-entities projects (#81989)
39088bf09a Block Styles: Refactor the variation UI to use ui/Button (#81833)
f8bec56d62 Extensible Site Editor: Add a theme preview page with global styles editing (#81954)
874959034f Boot: Mount the registered plugins (#81754)
086650feed Updated broken links in document files (#81961)
ec35342e1c Block Editor: Don't close inserter panel when inline quick inserter opens (#76241)
fd305b0fc6 Replace the Storybook test runner with the Vitest integration (#81918)
194f70eaa2 DataViews: Localize the date/datetime calendars from the site locale and direction (#81592)
fcf11dc55e DataViews: use `Menu` from `@wordpress/ui` (#81783)
cb20a4361e CollapsibleCard: Support multiple header descriptions (#81227)
094b1b094f Theme: Update Terrazzo packages to 2.7.1 (#81978)
0ae1399378 fix: Button rtl loader issue (#81901)
af8db520dc Components: migrate StyledLabel to SCSS module (#80001)
85b8c96615 UI: Add ValidatedInputControl component (#81627)
0e7546c0af Hide layout panel when no controls are available (#81968)
ca1b3fe1fe Docs: Align @PARAM tag columns in test/ docblocks (#81905)
8e57b0d27f Components: migrate GradientPicker, ColorPalette to SCSS module (#80473)
953a217f29 TypeScript: Bring the remaining route projects under the typecheck run (#81847)
6eddc656dd List: Add Align Support (#68002)
75768b4e6f UI: Accept locale codes in Calendar components (#81814)
87702decc4 DataViews: Fix date and datetime controls selecting the adjacent day (#81498)
a42b6775f4 Block editor: Move isElementVisible changelog entry to Unreleased (#81953)Co-authored-by: shail-mehta <shailu25@git.wordpress.org> Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
63b5d22cc1 Block Library: Fix failing test in playlist block (#81950)
009745b24e Playlist Track: Improve track upload error flows (#81878)
98047a5bf0 Automated Testing: Change Storybook default a11y test to error on failure (#81597)
f1b97bb6dc Playlist: Add bulk track metadata editing (#81441)
5b5c741de8 Dependency updates Aug 2026 (2) (#81906)
1e40a0d4a0 DataForm: Make the panel layout edit button the real field trigger (#80689)
5d097d5300 DataViews: Sync the displayed calendar month with external value changes (#81635)
f6e389d3a1 Update is-plain-object to 5.1.0 (#81926)
23ac1cdd11 Build Scripts: Force tsc --pretty so CI reports the project behind global diagnostics (#81937)
e5bc5a5fd1 Font library: Add skeleton loader for the font preview images (#81047)
d1e24d6340 Documentation: Update coding guidelines to recommend TypeScript (#81763)
b5e015d0c0 Storybook: Upgrade to 10.5 (#80692)
704b421e55 Use `WCInputControl` alias for legacy InputControl imports (#81830)
047dc276e2 SearchableChipSelect: Add grouped items support (#80989)
c836e0d30f Validation: update dependency-audit to 0.4.6 and ignore dataviews ./wp bundle (#81928)
57c278ca27 Editor: Migrate hierarchical term selector to @wordpress/ui (#81848)
c217b2698e Font Library: Fix the preview weight for variable fonts (#81748)
56897408ab Components: Improve text detection for button icon-with-text (#81521)
eaf986a580 Use `WCTextareaControl` alias for legacy TextareaControl imports (#81834)
54f9e9f675 chore: Update the combobox SCSS to have a breaking changes log (#81923)
5a675bf1d0 Update Ariakit packages (0.4.35 => 0.4.37) (#81080)
d76e6529dd UI: Update Base UI to 1.7.0 (#81390)
31f04b7159 Components: migrate ComboboxControl to SCSS module (#80471)
1d6106c233 Pre-publish panel: Remove the headings that repeat the panel title (#81806)
c49982dcb2 Editor: Set the width an entity opens at from the editor provider (#81750)
4ae7b44119 Global Styles: Close the revisions screen on the first back click (#81897)
c368c6810d Preserve layout and style attributes on Column transform (#81855)
e35b95c0ed Refactor parameter type hints and clean comments (#81898)
7f2be02a0b Try caching gutenberg_get_global_styles (#81889)
bfe2bf29ad Color Palette panel: Remove empty whitespace when there are no theme colors (#81894)
7cea1c72e1 Global Styles: Allow editing duotone palettes (#81605)
91e7ca7a59 Design System: Add portable agent skills (#80597)
eee4867232 Pattern: Disable visibility support (#81866)
c36cbd2cdd Storybook: Handle production module load failures (#81867)
d3f2c507db Global Styles: Group shadow editor rows as items (#81871)
4cbf437576 UI: add ControlWithError component (#81574)
70af7dbbb8 Fix/79641 rtc cursor hidden details block v2 (#81322)
f854b6b139 Storybook: Fix default background color for Example Application theme story (#81765)
157cff2ddd Editor: Announce publish date changes to screen readers (#81629)
da0bf8d33d UI: Mark Autocomplete, Field, and Fieldset as recommended (#80636)
0619247335 Core Data: Allow keyless entities to be addressed without a record ID (#81857)
3e52ca93e2 Dependencies: Dedupe, update adm-zip, nx (#81870)
e8aed3c82b Core Data: Validate the parsed-blocks cache against registered block types (#81809)
417261c052 Build: Emit TypeScript declarations with --noCheck (#81839)
06b9b58daf Boot: Migrate styles to CSS Modules (#81756)
d33e8a4154 Update save & submit docs (#81077)
427871b0cf Editor: Surface debugging details in the ErrorBoundary (#81642)
7deb3826a4 Theme: Add color warning diagnostics workbench (#81817)
a1e8d1dfaa UI: Expose keyboard shortcut presentation utilities (#81826)
04b2317c6b Editor: Remove FlexItem usage from NoteCard (#81851)
0b566e44b3 Add transform to Row for Columns block (#81802)
1b0671fbaf Add missing dependency to media-editor route (#81845)
23e8873b2c TypeScript: Put route projects under the typecheck run (#81829)
ee5da7178e Updated Aria Landmark Example URL (#81832)
f74762325c Fix MediaPlaceholder drag eligibility (#81431)
eba80d22a2 Docs: Fix broken skip ahead anchor on the custom block editor guide. (#81835)
442851efd6 Global Styles: Keep storing shadow presets as CSS variables when custom presets exist (#81346)
4d03cf0ed6 Bump astral-sh/setup-uv from 9.0.0 to 10.0.0 in /.github/workflows (#81823)
6106e2177b Components: migrate ResizableBox to SCSS module- #80720 (#81792)
c9e913d798 Storybook: Fix production build warnings (#81758)
a2d98c2883 Docs: Narrow the tsconfig split guidance to the standard layout (#81828)
94a108d3c9 UI: Add TextareaControl component (#81359)
e5039135ce Quick Inserter: Standardize the design of the Browse all button (#81827)
add1acd40f Docs: Fix broken link to the getEntityRecords selector reference. (#81791)
61121263ba Post Template: Fix mover arrows and labels for blocks inside the grid view (#81120)
321d5c87c7 UI: Mark Input-related components as recommended (#81658)
232cf07f1a UI: Add initial agents guidance mapping to contributing guidelines (#81400)
0aa2071fec Fix: Post Editor: 403 on /wp/v2/settings at boot for users without manage_options cap (#81813)
a0c83b4dd7 Add command: View post (#66720)
073b06862f add context to change "revisions code diff" (#81820)
3a5b8ad2dd Patterns explorer: Refactor the category sidebar to use Tabs (#81807)
eca76ad768 Menu: Add UI component (#79560)
8119bc827d Fields: migrate last remaining JS file to TS (#81808)
55f56985be Components: Fix Storybook accessibility issues in stories (#81777)
12fd2f5612 Playlist: Remove block toolbar sharing between parent and child blocks (#81432)
9359cf2bbf Rename the media editor toolbar button to 'Edit image' (#81705)
aee1d48442 Block Editor: Remove leftover files (#81793)
28c348acdf TypeScript: Require the typecheck run for type checking in CI (#81518)
f57b5d3bb6 Packages: Complete the tsconfig build and dev project split (#81517)
03211d47a7 Packages: Split story package tsconfigs into build and dev projects (#81516)
bce33cb4ff Editor: Debounce term filtering and announce results once (#81422)
15503fd5e5 Tests: Make PHPUnit tests independent of test config flags and theme root (#79159)
9d2c909e53 Docs: Fix broken link to the Document-Isolation-Policy explainer. (#81790)
2a59379cc1 Build Package: Use Core's boot module when a plugin has none (#81761)
038142b853 Update Changelog for 23.8.0
ca0444b218 Bump plugin version to 23.8.0
b0316b6134 Fix: Post Editor: Canvas animates from the left when switching mobile/tablet preview to desktop (#81484)
feb072be0e Media Editor Route: Add undo/redo and save/cancel actions to the header (#81563)
3abf43f1df Notes: Stop forcing capitalization of user names (#81788)
e16e4bbd88 Fix Broken Links in Package file (#81700)
42e91ce205 Command Palette: Allow commands to override the category icon (#81787)
3ba8bb1750 Components, DataViews, Editor, UI: Split tsconfigs into build and dev projects (#81515)
336666c980 Schemas: Document what the theme.json schema checks (#81773)
fdf5711313 More block: clarify description about excerpt vs full content (#80619)
96a6d41dc1 Theme: Improve color ramp contrast safeguards (#81185)
ab98811095 Dashboard Widgets: resolve widget types without a metadata module (#81738)
6e4cf9c292 Dashboard: add a Site Health detail page as the dashboard's second route (#81729)
e434463145 Align collaboration migration version markers with the 23.8.0 release (#81789)
bee1b17fb1 RTC: Add fallback identities when user profiles are unavailable (#81408)
894f273e9b Fix the failing e2e test (#81739)
e43dcaa48f Fields: Export the package stylesheet (#81769)
03811bd605 UI: Add Spinner component (#81358)
725b1f48e0 Fix DataViews list layout color token usage (#81074)
9a9d9c535a Notes: keep the note actions menu in view for long display names (#81414)
825d1789fb Update playlist track placeholder to match aria label (#81762)
939b3f3a92 ui/Card: Use the default neutral border (#81746)
a5e0b24f14 RTC: Couple RTC and polling provider as an opt-in experiment (#80658)
da621f2e6a Modal: Stop Escape key propagation on dismiss (#81785)
c00d0697de Tabs: Give tab IDs their own counter so numbering starts at 1 and never skips (#81781)
0ea2e57cb7 BoxControl: update the opposite side when ALT is held on the left or right input (#81530)
b6453f2621 Fix: Accordion: Anchored hash inside the accordion throws the malformed URL console error (#81780)
dc30b9dde7 Site editor: update template section description. (#81613)
a81f0474d9 Global styles: Register <label> as element (#81160)
cb8fc5f5c2 Block Editor: Add translator context to pseudo-state labels (#81770)
348c2da73c Fix: URL: normalizePath drops the rest of the query after a second "?" (#81612)
d889c67cbb Fix clipped focus outlines in the media editor Details sidebar (#81703)
87acb90b99 Prevent white screen crash during undo operations when Media Modal is open (#79898)
d1703e053a Global Styles: filter and indicate blocks that have custom styles (#81373)
8d862829e1 Media Editor Route: Make the route look like it's part of the media menu in the left-hand sidebar (#81565)
1bb4e5b157 Packages: Split tsconfigs for utility and mid-size packages (#81514)
4061b86a00 Enable axial gap for Group and restrict to flex and grid layouts. (#81476)
daf9c82168 Feat: support block spacing (#79689)
05abdcb349 Bump github/codeql-action/upload-sarif (#81436)
87826e5c9c Add `__unstable_wp_sync_storage` filter for pluggable storage backends (#81697)
1f6157810c UI: Collapse item-popup item sizing to default and small (#81354)
ba25994b47 Playlist: Add aria-label to prevent placeholder as label (#81654)
227aff3290 Components: Migrate DropdownContentWrapper to SCSS module (#81522)
75b9133222 Site Editor: Use inverted ThemeProvider seed for portaled UI (#81653)
4849c664c3 Update Terrazzo packages to 2.5.0 (#81082)
2f1563b9e0 Build Tools: Stop watcher process trees on shutdown (#81504)
262c721c8a Docs: Require site editor features to land in the extensible site editor too (#81752)
02aae3ab29 Boot: Preview the site where the canvas has nothing to open (#81749)
47e68c9f4c List View: Fix flaky global shortcut test and re-enable it (#81690)
ac1cf9e039 Lazy Editor: Keep the theme's editor styles on the canvas (#81747)
a2556e7201 Stop saving Table of Contents output (#80404)
5171671b5b Boot: Sync the editor's device preview with the URL (#81617)
ce19c147a8 RichText: Use the current record when handling Enter (#81696)
3f668616ac Editor: Simplify List View sidebar shortcut handling (#81693)
97a82266de Block API: Address review feedback on block keyboard shortcuts (#81621)
1b45b0780d Boot: Do not offer to edit a trashed entity (#81632)
e3187a5760 Edit Site Init: Seed the editor preferences the editor expects (#81628)
db5c14db14 Lazy Editor: Render the editor preferences modal (#81630)
090b2acc04 List View: Make focus on mount opt in (#81659)
137e908a9c Make Back button grid column flexible. (#81701)
cd0c368a2e Layout block supports: cast numeric grid attributes before use (#81560)
55dabd69d6 Inner Blocks: Fix bug that caused alignment controls to show in Image blocks within a Gallery (#81606)
d3c65d3a7e Admin UI: Fix the primary color of the Fresh admin color scheme (#81618)
2d9c286ac6 Playlist Track: Show upload spinner inline (#81445)
de9e36e54e Fix playlist track toolbar insertion (#81639)
614b3bf6b2 Editor: Refactor 'ErrorBoundary' to use the new recommended components (#81638)
0a886b47c9 Env: Fall back to cached docker images when the registry is unreachable (#81631)
ebd2ecafaa Boot: Warn before leaving with unsaved changes (#81625)
bff0a80003 Boot: Contain a surface failure to that surface (#81622)
f9913ca552 Perf: Report the first block selection as its own metric (#81616)
1c46b11820 Boot: Translate the canvas click-to-edit label (#81620)
0e92e54c99 Storybook: Add Story for  InnerBlocks (#68651)
f36f2bb2f3 Block API: Declare block keyboard shortcuts on variations and transforms (#81588)
476847df51 Boot: Let the editor canvas navigate between entity records (#81590)
11474d21bd Block Editor: Never spotlight blocks in a preview (#81615)
f3ec0c66e7 Storybook: Add Story for BlockPopover (#68681)
3bb6eb7a08 Global Styles: Expose additional elements in Typography and Colors (#80852)
ee35d7c8d3 Extensible Site Editor: Show only the style book on Styles for classic themes (#81579)
b65ede97c9 Storybook: Add Story for URLPopup component (#68449)
9f30bf7872 ComboboxControl: narrow `onChange` callback type to `string` | `null` (#81568)
560d975e66 Extensible Site Editor: Add the Identity route (#81576)
51d339f0d0 URL: Stop normalizePath throwing on a malformed percent sequence (#81086)
f3b8155a3b Fix parent inserter alignment with text labels enabled (#81608)
9aa7406203 url: clamp the truncated file name slice in filterURLForDisplay (#81529)
dbe1c1ccab Block editor: add an inserter to the parent selector (#81532)
aa50808db6 Fix viewport state values set by grid resizer (#81601)
6f26db48d8 Add Gutenberg version details for WordPress 7.1 (#81600)
be330310c5 Base Styles: Align `input-control` mixin to design system (#81357)
2b714533ed Components: Align legacy form control focus rings with WPDS (#80417)
4aa6912c04 Base styles: Streamline focus ring override (#81242)
b9cfc73f09 Editor: Register the editor keyboard shortcuts from the provider (#81580)
ab2550247a Extensible Site Editor: Gate theme screens on theme support (#81581)
3f15b6b806 Dashboard Widgets: promote high-relevance actions into a chrome footer (#81556)
fe89562bf1 Update waveform player dependency patch (#81454)
6bef42943e Vitest: Resolve @flakiness/vitest reporter to an absolute path (#81582)
b37473fe87 Packages: Split blob, grid, interactivity, and theme tsconfigs (#81509)
b228eebdfc TypeScript: Add typecheck script and split root tsconfig into build and dev solutions (#81499)
c099637b7b Extensible Site Editor: Preview the site on Home for classic themes (#81578)
1e6382df01 Editor: Speed up the hierarchical term selector for large taxonomies (#81376)
94c4e660bc Adds JSdoc for `avatar` block's edit.js (#68867)
a3aa0de472 Refactor: Convert `createColorHOC` to functional component (#70408)
9aee7c24d5 Adds JSdoc for `audio` block's edit.js (#68865)
78640e0317 Adds JSdoc for `column` and `columns` block's edit.js (#68873)
fe1c9d5c42 Docs: Fix broken links to the Block API reference guides. (#81571)
5b6431c6b6 Editor: Use PluginSidebar in GlobalStylesSidebar (#81570)
9fa0b67fb2 Docs: Add Block Editing Mode Readme. (#69411)
c4c5c62582 Release: Improve changelog categorization (#81475)
d4d4c4d7c5 DataViews: vendor `ValidatedToggleControl` (#81492)
150cd6da98 Media Editor Route Experiment: Override media edit links to point to the new experimental media editor (#81559)
0f61d4aa2e Writing flow: select next block on Enter key (#63484)
d033d614e5 Media editor: keep initial modal focus on the dialog frame (#81541)
07d89d593e Fix: Delete key on empty heading transforms following paragraph into heading (#78779)
e69ab441df In-between indicator: make symmetric (#68074)
f69e114ba8 DOM: treat a caret at a soft line wrap as an ambiguous position in Firefox (#81003)
c384568f21 Fix: getQueryArgs discards everything after the second = in a query argument value (#81066)
7455cde4fc Editor: Stop `:has()` selectors recalculating the whole document on every block selection (#81471)
08117d8685 DataForm: Fix the datetime control sending two updates per calendar interaction (#81440)
eb039018ff Fix: Term Description block skips display filters inside Terms Query. (#81290)
dd73b57749 Editor: Correctly mark ToolsMoreMenuGroup as a private SlotFill (#81503)
08e4e81221 Admin UI: Add Navigation component and Page navigation slot (#79746)
26eea2b99c Theme: Move changelog entry to unreleased (#81508)
7a8a56b1d0 Theme: Avoid root-level relational selectors (#81457)
9f798f32a5 Packages: Move unreleased changelog entries out of the 23.8 published versions (#81502)
cdff370d46 Storybook: Upgrade Vite to 8 (#81494)
2aacf5a578 BlockEditVisuallyButton: Update Developer Documentation (#68987)
c19909efaf Adds README for inspector-controls-tabs component (#69072)
d36bccf8ca Update 23.8 release changes on trunk (#81485)
b8315bfee4 DataViews: vendor `ValidatedToggleGroupControl` (#81450)
506584fc8d Docs: Fix dead link in the dynamic blocks tutorial (#81399)
dc8ce1ddca DataViews: vendor `ValidatedFormTokenField` (#81451)
a1d24c1308 Dimensions: Fix aspect ratio and scale controls not reflecting external updates (#80747)
d87ee650e3 Docs: Add Background image control Readme (#69409)
3c78efc964 Icon: Fix margin being applied twice in the editor (#81292)
86802246ac DataViews: vendor `ValidatedComboboxControl` (#81449)
2f9f8ce646 Update Changelog for 23.8.0-rc.1
485c71d2a1 InputControl: Vertically center date and time input values in Safari (#81361)
9045eadf0b Env: Update git to latest commit when `--update` passed (#81447)
3ceebb60e8 Bump plugin version to 23.8.0-rc.1
59965b3e00 ESLint: Rename root eslint.config.cjs to eslint.config.mjs (#81468)
f377cd0210 Backport core fixes for finalize route (#81465)
cc8e2c958b Docs: Add Block Lock Readme (#69434)
62f77b7dfd Docs: Add Block List Readme (#69432)
76300ee874 Fix empty list block with anchor persisting after backspace deletion (#77000)
7d63751ba6 Fix: flaky autosave shareable URL revisions e2e test. (#81455)
4d914a0bf5 Block editor: disclose the nested block count of a multi selection (#80745)
ac8de62e8a Docs: Add Block Actions Readme (#69408)
d90ebd76e8 Normalize block gap values in layout (#81460)
bc0a68e7ae Remove an unmodified wrapper when all its inner blocks are removed (#42503)
175d53c3e1 Writing flow: stop the caret on containers that do not merge with the text flow (#81456)
1bfda6cd3e Spacing Sizes Control: Make the control label translatable independently of the input aria label. (#81240)
c98049dbf4 Block editor: render a real default block in place of the default appender (#81231)
74dd7dc8ad UI: Upgrade React DayPicker to version 10 (#81439)
7f83800464 DataViews: vendor ValidatedRadioControl (#81434)
4c3f3f4f15 DataViews: vendor ValidatedCheckboxControl (#81435)
3c7745836d DataViews: vendor `ValidatedNumberControl` (#81433)
ab730b2236 Cover: Avoid passing null as the featured image size (#81444)
5abfd415e8 Components: Remove ValidatedTextControl private API (#80680)
a91983ca6c DataViews: Move the rich text control into the editor package (#81430)
13a0338a03 components/Menu: Restore Modal focus return when menu items close (#81164)
121e579189 Fix: Regression: Tabs block: Start with empty tab labels with placeholders (#81429)
11f6247b6a Navigation Overlay Close: Inherit typography and color from the overlay (#80751)
99aee654cc Docs: Fix broken link to the Node.js debugging guide. (#81398)
9e8d50d490 fix: order site identity changes predictably (#81283)
589bb11f9f Feature: Tabs block: consider using the tab title in the Document Overview instead of a generic "Tab" label (#81427)
637513a31f UI: Add `Calendar` and `RangeCalendar`, moved from `components` private APIs (#81337)
6e52fa407d DataViews: vendor `ValidatedSelectControl` (#81391)
cd08bc77ef Notes: Fix text wrapping for long usernames in collaboration sidebar (#81406)
04172b2c60 Interface: Let CSS own the ComplementaryArea width and use AnimatePresence custom for exit (#81363)
9f8d048a3b Test: Add private Vitest config and migrate a pilot test (#81037)
52eccd71b7 Update Changelog for 23.7.2
ae2290d8e7 Tools: Make agent setup a workspace (#81418)
70be075950 Bump plugin version to 23.7.2
126a840c69 DataForm: Fix hidden fields validation (#81377)
1a1b94c8a2 Widget Dashboard: host-tunable tile spacing via public custom properties (#81352)
79e0ed0693 Core Data: Fix post staying dirty after saving edited post meta with RTC enabled (#81392)
c381238065 Format Library: Remove unused CSS rule (#77831)
63bbebcaf0 Block Mover: Add the keyboard shortcut to the buttons' spoken description (#81380)
a370a8b6b7 Block Editor: Fix Escape from the block toolbar and stop redundant last focus dispatches (#81319)
746d5c31cd Dashboard Widgets: split action icons into wire and resolved forms (#81381)
7f8f873059 Global Styles: report border, shadow, outline, filter and dimension changes (#81407)
7dc85951fa Global Styles: Migrate shadows presets to use the preset management layer. (#79812)
445cf4af7e Scripts: Prevent a UTF-8 BOM in the middle of extracted CSS (#81383)
923807350e Changed Build Process Link and remove unused tags (#81360)
25fc9c1204 wp-build: Render the no-JS fallback in the generated page templates (#81365)
9cfdeddc7c Docs: Add error message guidance. (#81143)
1980b08d46 Fix: flaky list view paste block styles e2e test (#81229)
1bccb3ab9b Interface: Stop the secondary sidebar animating into place on page load (#81362)
07e90d6582 IconButton: Improve keyboard shortcut accessibility (#80402)
f8466c3adb Monitor all setup-related composite Actions. (#81192)
eb976a5434 Bump actions/stale from 10.4.0 to 11.0.0 in /.github/workflows (#81219)
150c61e445 Bump github/codeql-action/upload-sarif (#81287)
0f7b5c4eef DataViews:  Fix `array` field type validation for empty values (#81378)
4762fb7ab9 UI: Derive Base UI direction from WordPress i18n (#80399)
fb1241521f Try: Set post navigation link icon to next. (#81384)
ffd97c0bbb Playlist: Improve audio conversion and track selection (#80926)
be74d5d3f6 Dashboard Widgets: add icon and relevance to the widget action envelope (#81275)
107fb08d0e Editor: Keep the canvas height stable while resizing the canvas (#81163)
226f1e8da8 Remove content types experiment (#81340)
139cc8a248 New `kebab-case` package: extract utility and migrate private API calls (#81294)
260cd94a20 Scope breakpoint media queries to screen so printing does not look like a resize (#81367)
de4da84c1e Block Editor: Convert useBlockVisibility hook to TypeScript (#80390)
dd9abb6c0b Global Styles: Migrate font size presets to the shared preset layer (#79811)
c7cdb48157 Site editor: fix unreadable sidebar hover color (#81317)
341268f857 Playlist: Normalize Waveform Player configuration handling (#81342)
77e4d24585 Docs: Fix typo in block file structure guide (#81348)
c24e8b59bf Markdownlint: disable the MD033 (no-inline-html) rule project-wide (#81213)
949ba8754f Docs: Fix broken links to the removed JavaScript build setup guide. (#81232)
b7e4955ccf Keycodes: Make `withIgnoreIMEEvents` a public API (#81343)
3f224e67b0 Block Editor: Simplify InspectorControlsFill rendering logic (#81286)
354f66c7e1 Pert Tests: Avoid inflating interaction metrics with startTracing (#81264)
2fcd74717a DataViews: Use the public `@wordpress/ui` Badge instead of the private one (#81236)
91b373e707 Components: Migrate Spinner styles from Emotion to SCSS module (#80511)
8181ec4897 ESLint: Remove legacy import suppressions (#81338)
6b364aac1e Block Library: Document security patch releases (#81295)
7f43eafcce ESLint: Replace strict config with bulk suppressions (#81248)
a8adbd7a56 Block Editor: Bail out of hasSelectedInnerBlock when there is no clientId (#81315)
a17b59cd8a Theme: Colocate plugin tests with implementations (#81247)
4ee374307c Document editEntityRecord's options.isCached param (#81318)
8323351f39 Site Editor: Decode HTML entities in Identity fields (#81269)
2cb64f7ea2 Block Inspector: Disable the 'Edit original' button when the entity ID is missing (#81288)
1516e9bfce theme.json schema: allow responsive states on block style variations (#81309)
197c37094f theme.json schema: responsive states belong to blocks (#81253)
e89872315e Render viewport state element styles in the editor (#81307)
e574bb5827 Docs: remove breakpoint-only element style example from global styles guide (#81308)
102eb74ff8 Style states: Fix phantom pseudo element style output (#81291)
007f062fe5 Global styles: render element styles set only inside a breakpoint (#81265)
69b17c5e98 Packages: Recover July 29 npm release metadata (#81303)
53d9d2fa53 Update Changelog for 23.7.1
9379c90e79 Bump plugin version to 23.7.1
b7e98ae647 Fix missing return value in force_filtered_html_on_import footnotes filter (#81293)
3e0fe0ce05 Style states: fix state deselection when selecting the already selected block (#81277)
e8bc5cd3ca Navigation: Complete the DocBlocks for the responsive container and overlay style helpers (#80622)
7c36647bc4 Fix output for post date
57d90e1193 Ensure Content block tags always match available options.
63487665fa DataViews: Inline the kebabCase utility from components (#81284)
b1bad31b46 Latest Comments Block: Ensure latest comments can be viewed only for public posts
8d969332c5 fix: add optional chaining for empty reusable block (#81165) (#81177)
23b5b854ed Update phpcs, wpcs dependencies (#81279)
c476176cd1 Icons: move the inline image icon into the library (#81271)
a96cd78103 Block Directory: Make downloadable block item labels translatable. (#81237)
97894177e6 Dashboard Widgets: remove the Hello Dolly download action (#81272)
2dab68ff95 Flaky tests: Report as a PR comment only, stop creating issues (#81218)
7911b6ceaf ESLint: Define dependency import rules (#81246)
6e365e3537 Docs: Remove dependency group import guidance (#81245)
dc4a6a1c99 List View: Migrate label wrapper to UI Stack and drop Badge from the anchor (#81266)
ebab53f3d3 theme.json schema: fix block pseudo-classes and custom states (#81209)
5e2b7c1b1f Docs: explain how the theme.json schema fixtures work (#81263)
f889575799 Global Styles: Remove unused duplicate font family preview utilities (#81194)
1e267a50fa Block editor: unify what a new sibling block inherits (#81250)
b31639cc09 Footnotes: guard against invalid post meta values (#81201)
bb108741c2 Media: Cover client-side big image scaling and orphaned files (#81061)
9cd1367227 Storybook: Enable design system theme tool globally (#81116)
773a915066 Use p elements for callout alerts in components docs (#81234)
7212715749 Fix: Trunk e2e failures caused by the navigation spec leaving plain permalinks (#81238)
90f2bd5b96 Components: Deprecate Animate (#80931)
61e43986ac URLInput: Skip search requests while an IME composition is in progress (#80602)
2ef358f6cd AGENTS: Update development tips section (#81224)
01c037b1ff Blocks: Support static block templates in block type settings (#80027)
a152341f8f Docs: Fix broken Figma links on the design resources page. (#81166)
f8c8421e38 List View: Split the context and drop dead props to cut re-renders on expand and collapse (#81159)
c004e77c30 Block Editor: Fix Select all freezing on large posts (#81210)
1c5ff32abd Update Changelog for 23.7.0
bfd5303f9d DataViews: Fix the between `date` filter losing a manually typed date on blur (#81150)
943f0a62be Bump plugin version to 23.7.0
503dad4e4c Blocks: Update hpq to 1.4.0 and drop the ts-expect-error suppressions (#81199)
2cd1c4a58b Block Editor: Return false from isBlockSelected when there is no client ID (#81212)
acf17cde10 DataViews: Make grid and table item preview aspect ratio configurable (#79329)
f7f5670d56 DataViews: Pass only eligible items to a bulk action callback (#81198)
04f245f71d Ensure device preview is always accurate when window is zoomed in (#81193)
11bae0c3c0 Components: Add allowForms prop to SandBox component (#76471)
6b40482d0f Media Attached to: Fix issue with the popover unexpectedly flipping, tweak wording (#81206)
1eaeae76c3 Remove the editableRoot opt-in from the paragraph block (#81184)
3a96676bba PanelColorSettings: Restore the missing space below the panel header (#81155)
b8cb89c907 Widgets editor: Add ThemeProvider for admin color schemes (#81173)
625944407d Blocks: Declare the `@types/react-is` devDependency (#81203)
1908100a47 Customizer widgets: Add ThemeProvider for admin color schemes (#81174)
52c7652c34 List View: Reduce per-row store subscriptions (#81136)
95ca3f044e Edit Widgets: Fix header toolbar button focus ring (#81176)
bffdae3257 Notes: fix the mention notification email composition (#81187)
fa4eff0910 Button: turn on the width setting by default in theme.json (#81196)
f9306164a1 Types: Replace remaining `@ts-expect-error` suppressions with proper typing (#81200)
c1d8367952 ESLint: Ban `@ts-ignore` in favour of `@ts-expect-error` (#81148)
991a717425 Agents: Add a defensive data design skill and route to the copy guide (#81131)
09e1e7ada3 Fix/79643 rtc awareness mixed block selection (#79836)
214438c400 Bump astral-sh/setup-uv from 8.3.2 to 9.0.0 in /.github/workflows (#80964)
7a1e659744 fix(admin-ui): reset the wp-admin li margin that misaligns Breadcrumbs (#81134)
02fea5a045 Bump actions/setup-node from 6.4.0 to 7.0.0 in /.github/setup-node (#80963)
b281d24fb6 Bump docker/login-action (#80962)
4513b4226b Media Editor: Render sidebar tabs via ComplementaryArea's render prop (#81133)
fe2e582976 Video: clarify the Video variation description (#81181)
a5e3bb48d7 Video: Hide settings for the GIF variation (#81142)
a0642d18c4 Block Supports: Guard against non-string attribute values to avoid fatal errors (#80501)
415b6f4508 Media: Improve the HEIC upload error and keep any upload errors up until dismissed (#81130)
REVERT: 8fdde7f743 Sync: remove the framework's dual-homed intent-log frozen core
REVERT: 64444c5109 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
REVERT: bdb55c7385 Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
REVERT: b87dce07c4 Sync: backfill CHANGELOG for the framework/plugin split
REVERT: b7cf02e709 Docs: bring the sync architecture docs up to date for the framework/plugin split
REVERT: 0d08f16481 Sync: remove the built-in transports from the framework
REVERT: 897e974c36 Sync: remove the Yjs engine from the framework (step 4b)
REVERT: 6180c357c8 Sync: make connection retry transport-agnostic (E2)
REVERT: 901a2ba337 Sync: make createSyncManager engine-neutral (step 4a)
REVERT: d574f8d1fe Sync: route the collection path through the engine (step 3)
REVERT: 8af5069291 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
REVERT: 88b2a22cf2 Sync: remove the intent-log engine from the framework (now plugin-only)
REVERT: 8f2cc74969 Sync: expose registry test-support + session seam types for engine plugins
REVERT: bc1fcc6bc3 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
REVERT: df743b1a68 Sync: Make the collaboration framework engine/transport-less by default
REVERT: 523cadb3b4 Docs: Add an as-built architecture overview with mermaid diagrams
REVERT: 773340178d Sync: Add the WebSocket transport (daemon + codec-driven client)
REVERT: a89022d73a Sync: Make transports swappable; add HTTP long-polling
REVERT: d312ecce21 Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
REVERT: 660ae1b184 Sync: Inline approval card for parked new-block proposals
REVERT: dd19643e94 Sync: Reserve Restore of requires-approval conflicts for capable users
REVERT: cb2c50f4e6 Sync: Stop dropping classic content; sync it as core/freeform
REVERT: e8b70c2618 Sync: Sync Custom HTML blocks through the content field (raw-content model)
REVERT: 1ab2581641 Sync: Fix the capture bug that silently blocked Custom HTML sync
REVERT: 0af03d60d5 Sync: Regression-test benign-to-protected attr value transitions
REVERT: d0fdd1290b Sync: Gate raw-attr markup at ingest; make block restore an approval
REVERT: c1353269a8 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
REVERT: 0a1dc908bf Sync: Anchor collaboration conflicts to blocks in the canvas
REVERT: 3cc6837dde Sync: Add the collaboration review panel to the document sidebar
REVERT: 42f4414661 Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
REVERT: 91d7ecb57a Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
REVERT: a6d52fe0a7 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
REVERT: 3cf3eea27f Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
REVERT: 887baa76b6 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
REVERT: 8dbac3a784 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
REVERT: e943fe7ef5 Docs: adversarial review of the intent-log branch (2026-08-05)
REVERT: 7fd02053b5 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
REVERT: be5fe799a1 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
REVERT: 58d3696eb9 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
REVERT: 689df3c0b6 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
REVERT: 7f205989c6 Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
REVERT: 034a9851a1 Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
REVERT: 05f376da52 Sync: presence for the intent-log engine (Phase 2d-viii)
REVERT: 30573c2ba6 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
REVERT: 7f3fe44da7 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
REVERT: af4e398cec Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
REVERT: 81091c0de0 Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
REVERT: 7d8414c8ec Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
REVERT: e1778e094f Sync: never treat editor staleness as user intent (Phase 2d-iii)
REVERT: e9261e7785 Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
REVERT: 8b4125788a Sync: record Phase 2d-i status in the architecture note
REVERT: 6b71de6649 Collaboration: live two-browser intent-log editing (Phase 2d-i)
REVERT: 56a2ec4542 Sync: record Phase 2c status in the architecture note
REVERT: 2daebd226c Sync: intent-log manager and adapter registration (Phase 2c-ii)
REVERT: 748153187a Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
REVERT: 93b4c5710d Sync: record Phase 2a/2b status in the architecture note
REVERT: e664cd0fcb Sync: intent-log client session codec (Phase 2b)
REVERT: f21a254365 Collaboration: unit tests for intent-log engine internals and adversarial ids
REVERT: a007745cb2 Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
REVERT: b965e32f1d Sync: narrow transports to engine-opaque payloads (Phase 1c)
REVERT: 188ce3728c Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
REVERT: dfe2434194 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
REVERT: 9dc871f8f5 Collaboration: extract a swappable sync engine seam (Phase 0)
REVERT: 5a3fa0c64d Sync prototype: intent-log engine with field-scoped merge semantics

git-subtree-dir: gutenberg
git-subtree-split: 83e144efc9cb29d5a2cc0f203c3009549e4868f8
chriszarate added a commit that referenced this pull request Aug 24, 2026
83e144efc9 Sync: finish the trunk merge — drop two framework pieces this branch owns elsewhere
c6b266bc75 Rebuild package-lock.json on trunk's lock
2c50a5e9cd Sync: follow trunk's RTC experiment gate after the rebase
698a2fc7ca V1: integrated loop output, verified as a whole (#35)
13d1b3e154 Add more explicit test timeouts, reduce some default timeouts (#8)
cf93599113 Make intent-log the framework's default engine
0a9a170bdb Relocate the transport-specific e2e harness from the framework subtree
f683739358 Remove framework residue duplicated by or migrated to this plugin
7f36932c0d Sync: remove the framework's dual-homed intent-log frozen core
2149d22061 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
04d32960fd Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
1cd70e6820 Sync: backfill CHANGELOG for the framework/plugin split
7062018ff2 Docs: bring the sync architecture docs up to date for the framework/plugin split
98e8ba2fdf Sync: remove the built-in transports from the framework
14b9a11c67 Sync: remove the Yjs engine from the framework (step 4b)
cda266cad7 Sync: make connection retry transport-agnostic (E2)
00d42e9d76 Sync: make createSyncManager engine-neutral (step 4a)
f58a913289 Sync: route the collection path through the engine (step 3)
4008ded853 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
18ac9e5037 Sync: remove the intent-log engine from the framework (now plugin-only)
ce2d216dd6 Sync: expose registry test-support + session seam types for engine plugins
01111eee44 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
022ebd91e2 Sync: Make the collaboration framework engine/transport-less by default
8ac75c8cae Docs: Add an as-built architecture overview with mermaid diagrams
b3567fd4dc Sync: Add the WebSocket transport (daemon + codec-driven client)
276bd27a87 Sync: Make transports swappable; add HTTP long-polling
d0fb51470f Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
60eb412dfa Sync: Inline approval card for parked new-block proposals
08d3ecedcb Sync: Reserve Restore of requires-approval conflicts for capable users
5d24f4cc2c Sync: Stop dropping classic content; sync it as core/freeform
14a82d708b Sync: Sync Custom HTML blocks through the content field (raw-content model)
3be3b1c3e5 Sync: Fix the capture bug that silently blocked Custom HTML sync
65e8bf9369 Sync: Regression-test benign-to-protected attr value transitions
9983a07e54 Sync: Gate raw-attr markup at ingest; make block restore an approval
b63d141b62 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
bb4c4b9e9b Sync: Anchor collaboration conflicts to blocks in the canvas
11165044f7 Sync: Add the collaboration review panel to the document sidebar
ca51d70d4d Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
6a9357f463 Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
791a40e653 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
5149d9a9d3 Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
a71e3103c5 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
4dad221495 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
9668010b7b Docs: adversarial review of the intent-log branch (2026-08-05)
00f5867bf9 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
ffac7acf99 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
c070625a92 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
c27fb74ea7 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
86bb5d76ec Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
bbb0d851fe Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
1a108bb136 Sync: presence for the intent-log engine (Phase 2d-viii)
c8e9d59ae9 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
ffd4f44fb2 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
37456458bc Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
4146e4eb2c Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
bafedefbc6 Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
09c9ae78f2 Sync: never treat editor staleness as user intent (Phase 2d-iii)
bf2f8223ca Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
c03be224b9 Sync: record Phase 2d-i status in the architecture note
bf84dcd84a Collaboration: live two-browser intent-log editing (Phase 2d-i)
c6ffc0cf77 Sync: record Phase 2c status in the architecture note
12ba54f1f4 Sync: intent-log manager and adapter registration (Phase 2c-ii)
5bd6737e62 Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
46fb9020d3 Sync: record Phase 2a/2b status in the architecture note
76b516ded4 Sync: intent-log client session codec (Phase 2b)
c16d278721 Collaboration: unit tests for intent-log engine internals and adversarial ids
bbd1591b2d Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
312f3b3fe4 Sync: narrow transports to engine-opaque payloads (Phase 1c)
fb9af267ff Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
9276dc7c37 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
98365687c4 Collaboration: extract a swappable sync engine seam (Phase 0)
e61523237a Sync prototype: intent-log engine with field-scoped merge semantics
be1a0b58a2 UI: Add tooltips to Calendar and RangeCalendar navigation buttons (#81983)
db3254554c Pattern List: Import a pattern from JSON (#81919)
3bbdb29369 Fix: skip empty block markup in navigation to prevent split UL elements (#78793)
d13be36ff4 Fix: Line Break Tags Added to Scripts and Styles (#77542)
c96732f578 Styles Route: Reference the api-fetch and html-entities projects (#81989)
39088bf09a Block Styles: Refactor the variation UI to use ui/Button (#81833)
f8bec56d62 Extensible Site Editor: Add a theme preview page with global styles editing (#81954)
874959034f Boot: Mount the registered plugins (#81754)
086650feed Updated broken links in document files (#81961)
ec35342e1c Block Editor: Don't close inserter panel when inline quick inserter opens (#76241)
fd305b0fc6 Replace the Storybook test runner with the Vitest integration (#81918)
194f70eaa2 DataViews: Localize the date/datetime calendars from the site locale and direction (#81592)
fcf11dc55e DataViews: use `Menu` from `@wordpress/ui` (#81783)
cb20a4361e CollapsibleCard: Support multiple header descriptions (#81227)
094b1b094f Theme: Update Terrazzo packages to 2.7.1 (#81978)
0ae1399378 fix: Button rtl loader issue (#81901)
af8db520dc Components: migrate StyledLabel to SCSS module (#80001)
85b8c96615 UI: Add ValidatedInputControl component (#81627)
0e7546c0af Hide layout panel when no controls are available (#81968)
ca1b3fe1fe Docs: Align @PARAM tag columns in test/ docblocks (#81905)
8e57b0d27f Components: migrate GradientPicker, ColorPalette to SCSS module (#80473)
953a217f29 TypeScript: Bring the remaining route projects under the typecheck run (#81847)
6eddc656dd List: Add Align Support (#68002)
75768b4e6f UI: Accept locale codes in Calendar components (#81814)
87702decc4 DataViews: Fix date and datetime controls selecting the adjacent day (#81498)
a42b6775f4 Block editor: Move isElementVisible changelog entry to Unreleased (#81953)Co-authored-by: shail-mehta <shailu25@git.wordpress.org> Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
63b5d22cc1 Block Library: Fix failing test in playlist block (#81950)
009745b24e Playlist Track: Improve track upload error flows (#81878)
98047a5bf0 Automated Testing: Change Storybook default a11y test to error on failure (#81597)
f1b97bb6dc Playlist: Add bulk track metadata editing (#81441)
5b5c741de8 Dependency updates Aug 2026 (2) (#81906)
1e40a0d4a0 DataForm: Make the panel layout edit button the real field trigger (#80689)
5d097d5300 DataViews: Sync the displayed calendar month with external value changes (#81635)
f6e389d3a1 Update is-plain-object to 5.1.0 (#81926)
23ac1cdd11 Build Scripts: Force tsc --pretty so CI reports the project behind global diagnostics (#81937)
e5bc5a5fd1 Font library: Add skeleton loader for the font preview images (#81047)
d1e24d6340 Documentation: Update coding guidelines to recommend TypeScript (#81763)
b5e015d0c0 Storybook: Upgrade to 10.5 (#80692)
704b421e55 Use `WCInputControl` alias for legacy InputControl imports (#81830)
047dc276e2 SearchableChipSelect: Add grouped items support (#80989)
c836e0d30f Validation: update dependency-audit to 0.4.6 and ignore dataviews ./wp bundle (#81928)
57c278ca27 Editor: Migrate hierarchical term selector to @wordpress/ui (#81848)
c217b2698e Font Library: Fix the preview weight for variable fonts (#81748)
56897408ab Components: Improve text detection for button icon-with-text (#81521)
eaf986a580 Use `WCTextareaControl` alias for legacy TextareaControl imports (#81834)
54f9e9f675 chore: Update the combobox SCSS to have a breaking changes log (#81923)
5a675bf1d0 Update Ariakit packages (0.4.35 => 0.4.37) (#81080)
d76e6529dd UI: Update Base UI to 1.7.0 (#81390)
31f04b7159 Components: migrate ComboboxControl to SCSS module (#80471)
1d6106c233 Pre-publish panel: Remove the headings that repeat the panel title (#81806)
c49982dcb2 Editor: Set the width an entity opens at from the editor provider (#81750)
4ae7b44119 Global Styles: Close the revisions screen on the first back click (#81897)
c368c6810d Preserve layout and style attributes on Column transform (#81855)
e35b95c0ed Refactor parameter type hints and clean comments (#81898)
7f2be02a0b Try caching gutenberg_get_global_styles (#81889)
bfe2bf29ad Color Palette panel: Remove empty whitespace when there are no theme colors (#81894)
7cea1c72e1 Global Styles: Allow editing duotone palettes (#81605)
91e7ca7a59 Design System: Add portable agent skills (#80597)
eee4867232 Pattern: Disable visibility support (#81866)
c36cbd2cdd Storybook: Handle production module load failures (#81867)
d3f2c507db Global Styles: Group shadow editor rows as items (#81871)
4cbf437576 UI: add ControlWithError component (#81574)
70af7dbbb8 Fix/79641 rtc cursor hidden details block v2 (#81322)
f854b6b139 Storybook: Fix default background color for Example Application theme story (#81765)
157cff2ddd Editor: Announce publish date changes to screen readers (#81629)
da0bf8d33d UI: Mark Autocomplete, Field, and Fieldset as recommended (#80636)
0619247335 Core Data: Allow keyless entities to be addressed without a record ID (#81857)
3e52ca93e2 Dependencies: Dedupe, update adm-zip, nx (#81870)
e8aed3c82b Core Data: Validate the parsed-blocks cache against registered block types (#81809)
417261c052 Build: Emit TypeScript declarations with --noCheck (#81839)
06b9b58daf Boot: Migrate styles to CSS Modules (#81756)
d33e8a4154 Update save & submit docs (#81077)
427871b0cf Editor: Surface debugging details in the ErrorBoundary (#81642)
7deb3826a4 Theme: Add color warning diagnostics workbench (#81817)
a1e8d1dfaa UI: Expose keyboard shortcut presentation utilities (#81826)
04b2317c6b Editor: Remove FlexItem usage from NoteCard (#81851)
0b566e44b3 Add transform to Row for Columns block (#81802)
1b0671fbaf Add missing dependency to media-editor route (#81845)
23e8873b2c TypeScript: Put route projects under the typecheck run (#81829)
ee5da7178e Updated Aria Landmark Example URL (#81832)
f74762325c Fix MediaPlaceholder drag eligibility (#81431)
eba80d22a2 Docs: Fix broken skip ahead anchor on the custom block editor guide. (#81835)
442851efd6 Global Styles: Keep storing shadow presets as CSS variables when custom presets exist (#81346)
4d03cf0ed6 Bump astral-sh/setup-uv from 9.0.0 to 10.0.0 in /.github/workflows (#81823)
6106e2177b Components: migrate ResizableBox to SCSS module- #80720 (#81792)
c9e913d798 Storybook: Fix production build warnings (#81758)
a2d98c2883 Docs: Narrow the tsconfig split guidance to the standard layout (#81828)
94a108d3c9 UI: Add TextareaControl component (#81359)
e5039135ce Quick Inserter: Standardize the design of the Browse all button (#81827)
add1acd40f Docs: Fix broken link to the getEntityRecords selector reference. (#81791)
61121263ba Post Template: Fix mover arrows and labels for blocks inside the grid view (#81120)
321d5c87c7 UI: Mark Input-related components as recommended (#81658)
232cf07f1a UI: Add initial agents guidance mapping to contributing guidelines (#81400)
0aa2071fec Fix: Post Editor: 403 on /wp/v2/settings at boot for users without manage_options cap (#81813)
a0c83b4dd7 Add command: View post (#66720)
073b06862f add context to change "revisions code diff" (#81820)
3a5b8ad2dd Patterns explorer: Refactor the category sidebar to use Tabs (#81807)
eca76ad768 Menu: Add UI component (#79560)
8119bc827d Fields: migrate last remaining JS file to TS (#81808)
55f56985be Components: Fix Storybook accessibility issues in stories (#81777)
12fd2f5612 Playlist: Remove block toolbar sharing between parent and child blocks (#81432)
9359cf2bbf Rename the media editor toolbar button to 'Edit image' (#81705)
aee1d48442 Block Editor: Remove leftover files (#81793)
28c348acdf TypeScript: Require the typecheck run for type checking in CI (#81518)
f57b5d3bb6 Packages: Complete the tsconfig build and dev project split (#81517)
03211d47a7 Packages: Split story package tsconfigs into build and dev projects (#81516)
bce33cb4ff Editor: Debounce term filtering and announce results once (#81422)
15503fd5e5 Tests: Make PHPUnit tests independent of test config flags and theme root (#79159)
9d2c909e53 Docs: Fix broken link to the Document-Isolation-Policy explainer. (#81790)
2a59379cc1 Build Package: Use Core's boot module when a plugin has none (#81761)
038142b853 Update Changelog for 23.8.0
ca0444b218 Bump plugin version to 23.8.0
b0316b6134 Fix: Post Editor: Canvas animates from the left when switching mobile/tablet preview to desktop (#81484)
feb072be0e Media Editor Route: Add undo/redo and save/cancel actions to the header (#81563)
3abf43f1df Notes: Stop forcing capitalization of user names (#81788)
e16e4bbd88 Fix Broken Links in Package file (#81700)
42e91ce205 Command Palette: Allow commands to override the category icon (#81787)
3ba8bb1750 Components, DataViews, Editor, UI: Split tsconfigs into build and dev projects (#81515)
336666c980 Schemas: Document what the theme.json schema checks (#81773)
fdf5711313 More block: clarify description about excerpt vs full content (#80619)
96a6d41dc1 Theme: Improve color ramp contrast safeguards (#81185)
ab98811095 Dashboard Widgets: resolve widget types without a metadata module (#81738)
6e4cf9c292 Dashboard: add a Site Health detail page as the dashboard's second route (#81729)
e434463145 Align collaboration migration version markers with the 23.8.0 release (#81789)
bee1b17fb1 RTC: Add fallback identities when user profiles are unavailable (#81408)
894f273e9b Fix the failing e2e test (#81739)
e43dcaa48f Fields: Export the package stylesheet (#81769)
03811bd605 UI: Add Spinner component (#81358)
725b1f48e0 Fix DataViews list layout color token usage (#81074)
9a9d9c535a Notes: keep the note actions menu in view for long display names (#81414)
825d1789fb Update playlist track placeholder to match aria label (#81762)
939b3f3a92 ui/Card: Use the default neutral border (#81746)
a5e0b24f14 RTC: Couple RTC and polling provider as an opt-in experiment (#80658)
da621f2e6a Modal: Stop Escape key propagation on dismiss (#81785)
c00d0697de Tabs: Give tab IDs their own counter so numbering starts at 1 and never skips (#81781)
0ea2e57cb7 BoxControl: update the opposite side when ALT is held on the left or right input (#81530)
b6453f2621 Fix: Accordion: Anchored hash inside the accordion throws the malformed URL console error (#81780)
dc30b9dde7 Site editor: update template section description. (#81613)
a81f0474d9 Global styles: Register <label> as element (#81160)
cb8fc5f5c2 Block Editor: Add translator context to pseudo-state labels (#81770)
348c2da73c Fix: URL: normalizePath drops the rest of the query after a second "?" (#81612)
d889c67cbb Fix clipped focus outlines in the media editor Details sidebar (#81703)
87acb90b99 Prevent white screen crash during undo operations when Media Modal is open (#79898)
d1703e053a Global Styles: filter and indicate blocks that have custom styles (#81373)
8d862829e1 Media Editor Route: Make the route look like it's part of the media menu in the left-hand sidebar (#81565)
1bb4e5b157 Packages: Split tsconfigs for utility and mid-size packages (#81514)
4061b86a00 Enable axial gap for Group and restrict to flex and grid layouts. (#81476)
daf9c82168 Feat: support block spacing (#79689)
05abdcb349 Bump github/codeql-action/upload-sarif (#81436)
87826e5c9c Add `__unstable_wp_sync_storage` filter for pluggable storage backends (#81697)
1f6157810c UI: Collapse item-popup item sizing to default and small (#81354)
ba25994b47 Playlist: Add aria-label to prevent placeholder as label (#81654)
227aff3290 Components: Migrate DropdownContentWrapper to SCSS module (#81522)
75b9133222 Site Editor: Use inverted ThemeProvider seed for portaled UI (#81653)
4849c664c3 Update Terrazzo packages to 2.5.0 (#81082)
2f1563b9e0 Build Tools: Stop watcher process trees on shutdown (#81504)
262c721c8a Docs: Require site editor features to land in the extensible site editor too (#81752)
02aae3ab29 Boot: Preview the site where the canvas has nothing to open (#81749)
47e68c9f4c List View: Fix flaky global shortcut test and re-enable it (#81690)
ac1cf9e039 Lazy Editor: Keep the theme's editor styles on the canvas (#81747)
a2556e7201 Stop saving Table of Contents output (#80404)
5171671b5b Boot: Sync the editor's device preview with the URL (#81617)
ce19c147a8 RichText: Use the current record when handling Enter (#81696)
3f668616ac Editor: Simplify List View sidebar shortcut handling (#81693)
97a82266de Block API: Address review feedback on block keyboard shortcuts (#81621)
1b45b0780d Boot: Do not offer to edit a trashed entity (#81632)
e3187a5760 Edit Site Init: Seed the editor preferences the editor expects (#81628)
db5c14db14 Lazy Editor: Render the editor preferences modal (#81630)
090b2acc04 List View: Make focus on mount opt in (#81659)
137e908a9c Make Back button grid column flexible. (#81701)
cd0c368a2e Layout block supports: cast numeric grid attributes before use (#81560)
55dabd69d6 Inner Blocks: Fix bug that caused alignment controls to show in Image blocks within a Gallery (#81606)
d3c65d3a7e Admin UI: Fix the primary color of the Fresh admin color scheme (#81618)
2d9c286ac6 Playlist Track: Show upload spinner inline (#81445)
de9e36e54e Fix playlist track toolbar insertion (#81639)
614b3bf6b2 Editor: Refactor 'ErrorBoundary' to use the new recommended components (#81638)
0a886b47c9 Env: Fall back to cached docker images when the registry is unreachable (#81631)
ebd2ecafaa Boot: Warn before leaving with unsaved changes (#81625)
bff0a80003 Boot: Contain a surface failure to that surface (#81622)
f9913ca552 Perf: Report the first block selection as its own metric (#81616)
1c46b11820 Boot: Translate the canvas click-to-edit label (#81620)
0e92e54c99 Storybook: Add Story for  InnerBlocks (#68651)
f36f2bb2f3 Block API: Declare block keyboard shortcuts on variations and transforms (#81588)
476847df51 Boot: Let the editor canvas navigate between entity records (#81590)
11474d21bd Block Editor: Never spotlight blocks in a preview (#81615)
f3ec0c66e7 Storybook: Add Story for BlockPopover (#68681)
3bb6eb7a08 Global Styles: Expose additional elements in Typography and Colors (#80852)
ee35d7c8d3 Extensible Site Editor: Show only the style book on Styles for classic themes (#81579)
b65ede97c9 Storybook: Add Story for URLPopup component (#68449)
9f30bf7872 ComboboxControl: narrow `onChange` callback type to `string` | `null` (#81568)
560d975e66 Extensible Site Editor: Add the Identity route (#81576)
51d339f0d0 URL: Stop normalizePath throwing on a malformed percent sequence (#81086)
f3b8155a3b Fix parent inserter alignment with text labels enabled (#81608)
9aa7406203 url: clamp the truncated file name slice in filterURLForDisplay (#81529)
dbe1c1ccab Block editor: add an inserter to the parent selector (#81532)
aa50808db6 Fix viewport state values set by grid resizer (#81601)
6f26db48d8 Add Gutenberg version details for WordPress 7.1 (#81600)
be330310c5 Base Styles: Align `input-control` mixin to design system (#81357)
2b714533ed Components: Align legacy form control focus rings with WPDS (#80417)
4aa6912c04 Base styles: Streamline focus ring override (#81242)
b9cfc73f09 Editor: Register the editor keyboard shortcuts from the provider (#81580)
ab2550247a Extensible Site Editor: Gate theme screens on theme support (#81581)
3f15b6b806 Dashboard Widgets: promote high-relevance actions into a chrome footer (#81556)
fe89562bf1 Update waveform player dependency patch (#81454)
6bef42943e Vitest: Resolve @flakiness/vitest reporter to an absolute path (#81582)
b37473fe87 Packages: Split blob, grid, interactivity, and theme tsconfigs (#81509)
b228eebdfc TypeScript: Add typecheck script and split root tsconfig into build and dev solutions (#81499)
c099637b7b Extensible Site Editor: Preview the site on Home for classic themes (#81578)
1e6382df01 Editor: Speed up the hierarchical term selector for large taxonomies (#81376)
94c4e660bc Adds JSdoc for `avatar` block's edit.js (#68867)
a3aa0de472 Refactor: Convert `createColorHOC` to functional component (#70408)
9aee7c24d5 Adds JSdoc for `audio` block's edit.js (#68865)
78640e0317 Adds JSdoc for `column` and `columns` block's edit.js (#68873)
fe1c9d5c42 Docs: Fix broken links to the Block API reference guides. (#81571)
5b6431c6b6 Editor: Use PluginSidebar in GlobalStylesSidebar (#81570)
9fa0b67fb2 Docs: Add Block Editing Mode Readme. (#69411)
c4c5c62582 Release: Improve changelog categorization (#81475)
d4d4c4d7c5 DataViews: vendor `ValidatedToggleControl` (#81492)
150cd6da98 Media Editor Route Experiment: Override media edit links to point to the new experimental media editor (#81559)
0f61d4aa2e Writing flow: select next block on Enter key (#63484)
d033d614e5 Media editor: keep initial modal focus on the dialog frame (#81541)
07d89d593e Fix: Delete key on empty heading transforms following paragraph into heading (#78779)
e69ab441df In-between indicator: make symmetric (#68074)
f69e114ba8 DOM: treat a caret at a soft line wrap as an ambiguous position in Firefox (#81003)
c384568f21 Fix: getQueryArgs discards everything after the second = in a query argument value (#81066)
7455cde4fc Editor: Stop `:has()` selectors recalculating the whole document on every block selection (#81471)
08117d8685 DataForm: Fix the datetime control sending two updates per calendar interaction (#81440)
eb039018ff Fix: Term Description block skips display filters inside Terms Query. (#81290)
dd73b57749 Editor: Correctly mark ToolsMoreMenuGroup as a private SlotFill (#81503)
08e4e81221 Admin UI: Add Navigation component and Page navigation slot (#79746)
26eea2b99c Theme: Move changelog entry to unreleased (#81508)
7a8a56b1d0 Theme: Avoid root-level relational selectors (#81457)
9f798f32a5 Packages: Move unreleased changelog entries out of the 23.8 published versions (#81502)
cdff370d46 Storybook: Upgrade Vite to 8 (#81494)
2aacf5a578 BlockEditVisuallyButton: Update Developer Documentation (#68987)
c19909efaf Adds README for inspector-controls-tabs component (#69072)
d36bccf8ca Update 23.8 release changes on trunk (#81485)
b8315bfee4 DataViews: vendor `ValidatedToggleGroupControl` (#81450)
506584fc8d Docs: Fix dead link in the dynamic blocks tutorial (#81399)
dc8ce1ddca DataViews: vendor `ValidatedFormTokenField` (#81451)
a1d24c1308 Dimensions: Fix aspect ratio and scale controls not reflecting external updates (#80747)
d87ee650e3 Docs: Add Background image control Readme (#69409)
3c78efc964 Icon: Fix margin being applied twice in the editor (#81292)
86802246ac DataViews: vendor `ValidatedComboboxControl` (#81449)
2f9f8ce646 Update Changelog for 23.8.0-rc.1
485c71d2a1 InputControl: Vertically center date and time input values in Safari (#81361)
9045eadf0b Env: Update git to latest commit when `--update` passed (#81447)
3ceebb60e8 Bump plugin version to 23.8.0-rc.1
59965b3e00 ESLint: Rename root eslint.config.cjs to eslint.config.mjs (#81468)
f377cd0210 Backport core fixes for finalize route (#81465)
cc8e2c958b Docs: Add Block Lock Readme (#69434)
62f77b7dfd Docs: Add Block List Readme (#69432)
76300ee874 Fix empty list block with anchor persisting after backspace deletion (#77000)
7d63751ba6 Fix: flaky autosave shareable URL revisions e2e test. (#81455)
4d914a0bf5 Block editor: disclose the nested block count of a multi selection (#80745)
ac8de62e8a Docs: Add Block Actions Readme (#69408)
d90ebd76e8 Normalize block gap values in layout (#81460)
bc0a68e7ae Remove an unmodified wrapper when all its inner blocks are removed (#42503)
175d53c3e1 Writing flow: stop the caret on containers that do not merge with the text flow (#81456)
1bfda6cd3e Spacing Sizes Control: Make the control label translatable independently of the input aria label. (#81240)
c98049dbf4 Block editor: render a real default block in place of the default appender (#81231)
74dd7dc8ad UI: Upgrade React DayPicker to version 10 (#81439)
7f83800464 DataViews: vendor ValidatedRadioControl (#81434)
4c3f3f4f15 DataViews: vendor ValidatedCheckboxControl (#81435)
3c7745836d DataViews: vendor `ValidatedNumberControl` (#81433)
ab730b2236 Cover: Avoid passing null as the featured image size (#81444)
5abfd415e8 Components: Remove ValidatedTextControl private API (#80680)
a91983ca6c DataViews: Move the rich text control into the editor package (#81430)
13a0338a03 components/Menu: Restore Modal focus return when menu items close (#81164)
121e579189 Fix: Regression: Tabs block: Start with empty tab labels with placeholders (#81429)
11f6247b6a Navigation Overlay Close: Inherit typography and color from the overlay (#80751)
99aee654cc Docs: Fix broken link to the Node.js debugging guide. (#81398)
9e8d50d490 fix: order site identity changes predictably (#81283)
589bb11f9f Feature: Tabs block: consider using the tab title in the Document Overview instead of a generic "Tab" label (#81427)
637513a31f UI: Add `Calendar` and `RangeCalendar`, moved from `components` private APIs (#81337)
6e52fa407d DataViews: vendor `ValidatedSelectControl` (#81391)
cd08bc77ef Notes: Fix text wrapping for long usernames in collaboration sidebar (#81406)
04172b2c60 Interface: Let CSS own the ComplementaryArea width and use AnimatePresence custom for exit (#81363)
9f8d048a3b Test: Add private Vitest config and migrate a pilot test (#81037)
52eccd71b7 Update Changelog for 23.7.2
ae2290d8e7 Tools: Make agent setup a workspace (#81418)
70be075950 Bump plugin version to 23.7.2
126a840c69 DataForm: Fix hidden fields validation (#81377)
1a1b94c8a2 Widget Dashboard: host-tunable tile spacing via public custom properties (#81352)
79e0ed0693 Core Data: Fix post staying dirty after saving edited post meta with RTC enabled (#81392)
c381238065 Format Library: Remove unused CSS rule (#77831)
63bbebcaf0 Block Mover: Add the keyboard shortcut to the buttons' spoken description (#81380)
a370a8b6b7 Block Editor: Fix Escape from the block toolbar and stop redundant last focus dispatches (#81319)
746d5c31cd Dashboard Widgets: split action icons into wire and resolved forms (#81381)
7f8f873059 Global Styles: report border, shadow, outline, filter and dimension changes (#81407)
7dc85951fa Global Styles: Migrate shadows presets to use the preset management layer. (#79812)
445cf4af7e Scripts: Prevent a UTF-8 BOM in the middle of extracted CSS (#81383)
923807350e Changed Build Process Link and remove unused tags (#81360)
25fc9c1204 wp-build: Render the no-JS fallback in the generated page templates (#81365)
9cfdeddc7c Docs: Add error message guidance. (#81143)
1980b08d46 Fix: flaky list view paste block styles e2e test (#81229)
1bccb3ab9b Interface: Stop the secondary sidebar animating into place on page load (#81362)
07e90d6582 IconButton: Improve keyboard shortcut accessibility (#80402)
f8466c3adb Monitor all setup-related composite Actions. (#81192)
eb976a5434 Bump actions/stale from 10.4.0 to 11.0.0 in /.github/workflows (#81219)
150c61e445 Bump github/codeql-action/upload-sarif (#81287)
0f7b5c4eef DataViews:  Fix `array` field type validation for empty values (#81378)
4762fb7ab9 UI: Derive Base UI direction from WordPress i18n (#80399)
fb1241521f Try: Set post navigation link icon to next. (#81384)
ffd97c0bbb Playlist: Improve audio conversion and track selection (#80926)
be74d5d3f6 Dashboard Widgets: add icon and relevance to the widget action envelope (#81275)
107fb08d0e Editor: Keep the canvas height stable while resizing the canvas (#81163)
226f1e8da8 Remove content types experiment (#81340)
139cc8a248 New `kebab-case` package: extract utility and migrate private API calls (#81294)
260cd94a20 Scope breakpoint media queries to screen so printing does not look like a resize (#81367)
de4da84c1e Block Editor: Convert useBlockVisibility hook to TypeScript (#80390)
dd9abb6c0b Global Styles: Migrate font size presets to the shared preset layer (#79811)
c7cdb48157 Site editor: fix unreadable sidebar hover color (#81317)
341268f857 Playlist: Normalize Waveform Player configuration handling (#81342)
77e4d24585 Docs: Fix typo in block file structure guide (#81348)
c24e8b59bf Markdownlint: disable the MD033 (no-inline-html) rule project-wide (#81213)
949ba8754f Docs: Fix broken links to the removed JavaScript build setup guide. (#81232)
b7e4955ccf Keycodes: Make `withIgnoreIMEEvents` a public API (#81343)
3f224e67b0 Block Editor: Simplify InspectorControlsFill rendering logic (#81286)
354f66c7e1 Pert Tests: Avoid inflating interaction metrics with startTracing (#81264)
2fcd74717a DataViews: Use the public `@wordpress/ui` Badge instead of the private one (#81236)
91b373e707 Components: Migrate Spinner styles from Emotion to SCSS module (#80511)
8181ec4897 ESLint: Remove legacy import suppressions (#81338)
6b364aac1e Block Library: Document security patch releases (#81295)
7f43eafcce ESLint: Replace strict config with bulk suppressions (#81248)
a8adbd7a56 Block Editor: Bail out of hasSelectedInnerBlock when there is no clientId (#81315)
a17b59cd8a Theme: Colocate plugin tests with implementations (#81247)
4ee374307c Document editEntityRecord's options.isCached param (#81318)
8323351f39 Site Editor: Decode HTML entities in Identity fields (#81269)
2cb64f7ea2 Block Inspector: Disable the 'Edit original' button when the entity ID is missing (#81288)
1516e9bfce theme.json schema: allow responsive states on block style variations (#81309)
197c37094f theme.json schema: responsive states belong to blocks (#81253)
e89872315e Render viewport state element styles in the editor (#81307)
e574bb5827 Docs: remove breakpoint-only element style example from global styles guide (#81308)
102eb74ff8 Style states: Fix phantom pseudo element style output (#81291)
007f062fe5 Global styles: render element styles set only inside a breakpoint (#81265)
69b17c5e98 Packages: Recover July 29 npm release metadata (#81303)
53d9d2fa53 Update Changelog for 23.7.1
9379c90e79 Bump plugin version to 23.7.1
b7e98ae647 Fix missing return value in force_filtered_html_on_import footnotes filter (#81293)
3e0fe0ce05 Style states: fix state deselection when selecting the already selected block (#81277)
e8bc5cd3ca Navigation: Complete the DocBlocks for the responsive container and overlay style helpers (#80622)
7c36647bc4 Fix output for post date
57d90e1193 Ensure Content block tags always match available options.
63487665fa DataViews: Inline the kebabCase utility from components (#81284)
b1bad31b46 Latest Comments Block: Ensure latest comments can be viewed only for public posts
8d969332c5 fix: add optional chaining for empty reusable block (#81165) (#81177)
23b5b854ed Update phpcs, wpcs dependencies (#81279)
c476176cd1 Icons: move the inline image icon into the library (#81271)
a96cd78103 Block Directory: Make downloadable block item labels translatable. (#81237)
97894177e6 Dashboard Widgets: remove the Hello Dolly download action (#81272)
2dab68ff95 Flaky tests: Report as a PR comment only, stop creating issues (#81218)
7911b6ceaf ESLint: Define dependency import rules (#81246)
6e365e3537 Docs: Remove dependency group import guidance (#81245)
dc4a6a1c99 List View: Migrate label wrapper to UI Stack and drop Badge from the anchor (#81266)
ebab53f3d3 theme.json schema: fix block pseudo-classes and custom states (#81209)
5e2b7c1b1f Docs: explain how the theme.json schema fixtures work (#81263)
f889575799 Global Styles: Remove unused duplicate font family preview utilities (#81194)
1e267a50fa Block editor: unify what a new sibling block inherits (#81250)
b31639cc09 Footnotes: guard against invalid post meta values (#81201)
bb108741c2 Media: Cover client-side big image scaling and orphaned files (#81061)
9cd1367227 Storybook: Enable design system theme tool globally (#81116)
773a915066 Use p elements for callout alerts in components docs (#81234)
7212715749 Fix: Trunk e2e failures caused by the navigation spec leaving plain permalinks (#81238)
90f2bd5b96 Components: Deprecate Animate (#80931)
61e43986ac URLInput: Skip search requests while an IME composition is in progress (#80602)
2ef358f6cd AGENTS: Update development tips section (#81224)
01c037b1ff Blocks: Support static block templates in block type settings (#80027)
a152341f8f Docs: Fix broken Figma links on the design resources page. (#81166)
f8c8421e38 List View: Split the context and drop dead props to cut re-renders on expand and collapse (#81159)
c004e77c30 Block Editor: Fix Select all freezing on large posts (#81210)
1c5ff32abd Update Changelog for 23.7.0
bfd5303f9d DataViews: Fix the between `date` filter losing a manually typed date on blur (#81150)
943f0a62be Bump plugin version to 23.7.0
503dad4e4c Blocks: Update hpq to 1.4.0 and drop the ts-expect-error suppressions (#81199)
2cd1c4a58b Block Editor: Return false from isBlockSelected when there is no client ID (#81212)
acf17cde10 DataViews: Make grid and table item preview aspect ratio configurable (#79329)
f7f5670d56 DataViews: Pass only eligible items to a bulk action callback (#81198)
04f245f71d Ensure device preview is always accurate when window is zoomed in (#81193)
11bae0c3c0 Components: Add allowForms prop to SandBox component (#76471)
6b40482d0f Media Attached to: Fix issue with the popover unexpectedly flipping, tweak wording (#81206)
1eaeae76c3 Remove the editableRoot opt-in from the paragraph block (#81184)
3a96676bba PanelColorSettings: Restore the missing space below the panel header (#81155)
b8cb89c907 Widgets editor: Add ThemeProvider for admin color schemes (#81173)
625944407d Blocks: Declare the `@types/react-is` devDependency (#81203)
1908100a47 Customizer widgets: Add ThemeProvider for admin color schemes (#81174)
52c7652c34 List View: Reduce per-row store subscriptions (#81136)
95ca3f044e Edit Widgets: Fix header toolbar button focus ring (#81176)
bffdae3257 Notes: fix the mention notification email composition (#81187)
fa4eff0910 Button: turn on the width setting by default in theme.json (#81196)
f9306164a1 Types: Replace remaining `@ts-expect-error` suppressions with proper typing (#81200)
c1d8367952 ESLint: Ban `@ts-ignore` in favour of `@ts-expect-error` (#81148)
991a717425 Agents: Add a defensive data design skill and route to the copy guide (#81131)
09e1e7ada3 Fix/79643 rtc awareness mixed block selection (#79836)
214438c400 Bump astral-sh/setup-uv from 8.3.2 to 9.0.0 in /.github/workflows (#80964)
7a1e659744 fix(admin-ui): reset the wp-admin li margin that misaligns Breadcrumbs (#81134)
02fea5a045 Bump actions/setup-node from 6.4.0 to 7.0.0 in /.github/setup-node (#80963)
b281d24fb6 Bump docker/login-action (#80962)
4513b4226b Media Editor: Render sidebar tabs via ComplementaryArea's render prop (#81133)
fe2e582976 Video: clarify the Video variation description (#81181)
a5e3bb48d7 Video: Hide settings for the GIF variation (#81142)
a0642d18c4 Block Supports: Guard against non-string attribute values to avoid fatal errors (#80501)
415b6f4508 Media: Improve the HEIC upload error and keep any upload errors up until dismissed (#81130)
REVERT: 8fdde7f743 Sync: remove the framework's dual-homed intent-log frozen core
REVERT: 64444c5109 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
REVERT: bdb55c7385 Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
REVERT: b87dce07c4 Sync: backfill CHANGELOG for the framework/plugin split
REVERT: b7cf02e709 Docs: bring the sync architecture docs up to date for the framework/plugin split
REVERT: 0d08f16481 Sync: remove the built-in transports from the framework
REVERT: 897e974c36 Sync: remove the Yjs engine from the framework (step 4b)
REVERT: 6180c357c8 Sync: make connection retry transport-agnostic (E2)
REVERT: 901a2ba337 Sync: make createSyncManager engine-neutral (step 4a)
REVERT: d574f8d1fe Sync: route the collection path through the engine (step 3)
REVERT: 8af5069291 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
REVERT: 88b2a22cf2 Sync: remove the intent-log engine from the framework (now plugin-only)
REVERT: 8f2cc74969 Sync: expose registry test-support + session seam types for engine plugins
REVERT: bc1fcc6bc3 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
REVERT: df743b1a68 Sync: Make the collaboration framework engine/transport-less by default
REVERT: 523cadb3b4 Docs: Add an as-built architecture overview with mermaid diagrams
REVERT: 773340178d Sync: Add the WebSocket transport (daemon + codec-driven client)
REVERT: a89022d73a Sync: Make transports swappable; add HTTP long-polling
REVERT: d312ecce21 Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
REVERT: 660ae1b184 Sync: Inline approval card for parked new-block proposals
REVERT: dd19643e94 Sync: Reserve Restore of requires-approval conflicts for capable users
REVERT: cb2c50f4e6 Sync: Stop dropping classic content; sync it as core/freeform
REVERT: e8b70c2618 Sync: Sync Custom HTML blocks through the content field (raw-content model)
REVERT: 1ab2581641 Sync: Fix the capture bug that silently blocked Custom HTML sync
REVERT: 0af03d60d5 Sync: Regression-test benign-to-protected attr value transitions
REVERT: d0fdd1290b Sync: Gate raw-attr markup at ingest; make block restore an approval
REVERT: c1353269a8 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
REVERT: 0a1dc908bf Sync: Anchor collaboration conflicts to blocks in the canvas
REVERT: 3cc6837dde Sync: Add the collaboration review panel to the document sidebar
REVERT: 42f4414661 Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
REVERT: 91d7ecb57a Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
REVERT: a6d52fe0a7 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
REVERT: 3cf3eea27f Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
REVERT: 887baa76b6 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
REVERT: 8dbac3a784 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
REVERT: e943fe7ef5 Docs: adversarial review of the intent-log branch (2026-08-05)
REVERT: 7fd02053b5 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
REVERT: be5fe799a1 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
REVERT: 58d3696eb9 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
REVERT: 689df3c0b6 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
REVERT: 7f205989c6 Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
REVERT: 034a9851a1 Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
REVERT: 05f376da52 Sync: presence for the intent-log engine (Phase 2d-viii)
REVERT: 30573c2ba6 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
REVERT: 7f3fe44da7 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
REVERT: af4e398cec Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
REVERT: 81091c0de0 Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
REVERT: 7d8414c8ec Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
REVERT: e1778e094f Sync: never treat editor staleness as user intent (Phase 2d-iii)
REVERT: e9261e7785 Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
REVERT: 8b4125788a Sync: record Phase 2d-i status in the architecture note
REVERT: 6b71de6649 Collaboration: live two-browser intent-log editing (Phase 2d-i)
REVERT: 56a2ec4542 Sync: record Phase 2c status in the architecture note
REVERT: 2daebd226c Sync: intent-log manager and adapter registration (Phase 2c-ii)
REVERT: 748153187a Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
REVERT: 93b4c5710d Sync: record Phase 2a/2b status in the architecture note
REVERT: e664cd0fcb Sync: intent-log client session codec (Phase 2b)
REVERT: f21a254365 Collaboration: unit tests for intent-log engine internals and adversarial ids
REVERT: a007745cb2 Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
REVERT: b965e32f1d Sync: narrow transports to engine-opaque payloads (Phase 1c)
REVERT: 188ce3728c Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
REVERT: dfe2434194 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
REVERT: 9dc871f8f5 Collaboration: extract a swappable sync engine seam (Phase 0)
REVERT: 5a3fa0c64d Sync prototype: intent-log engine with field-scoped merge semantics

git-subtree-dir: gutenberg
git-subtree-split: 83e144efc9cb29d5a2cc0f203c3009549e4868f8
chriszarate added a commit that referenced this pull request Aug 24, 2026
638392d908 Fix lint violations in the sync-engine and review-panel files
afe0e5cad7 Sync: update getSyncManager tests to the engine-adapter API
a095509c0a Docs: sync engine architecture notes, integration guide, and reviews
5f56443ec1 Relocate the transport-specific e2e harness to the engines plugin
c36a86a669 Editor: collaboration review panel — sidebar, canvas anchors, inline approval
a1fd6e57bc Sync: escalation review lifecycle — store, actionable notices, restore/discard
c0ad64b8e1 Sync: rich-text and raw-content block config — classic and Custom HTML sync
00171d2487 Sync: mirror block save markup into the shared doc
44dd11d3e3 Sync: presence for engines without a shared Y.Doc
7446e5dee0 Sync: enforce the engine handshake; degrade to post locking, not silence
1021f39c64 Sync: client-side engine seam — SPI, registries, engine-neutral manager
fc96d7b5ac Collaboration: server-side engine/transport seam, empty by default
REVERT: 83e144efc9 Sync: finish the trunk merge — drop two framework pieces this branch owns elsewhere
REVERT: c6b266bc75 Rebuild package-lock.json on trunk's lock
REVERT: 2c50a5e9cd Sync: follow trunk's RTC experiment gate after the rebase
REVERT: 698a2fc7ca V1: integrated loop output, verified as a whole (#35)
REVERT: 13d1b3e154 Add more explicit test timeouts, reduce some default timeouts (#8)
REVERT: cf93599113 Make intent-log the framework's default engine
REVERT: 0a9a170bdb Relocate the transport-specific e2e harness from the framework subtree
REVERT: f683739358 Remove framework residue duplicated by or migrated to this plugin
REVERT: 7f36932c0d Sync: remove the framework's dual-homed intent-log frozen core
REVERT: 2149d22061 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
REVERT: 04d32960fd Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
REVERT: 1cd70e6820 Sync: backfill CHANGELOG for the framework/plugin split
REVERT: 7062018ff2 Docs: bring the sync architecture docs up to date for the framework/plugin split
REVERT: 98e8ba2fdf Sync: remove the built-in transports from the framework
REVERT: 14b9a11c67 Sync: remove the Yjs engine from the framework (step 4b)
REVERT: cda266cad7 Sync: make connection retry transport-agnostic (E2)
REVERT: 00d42e9d76 Sync: make createSyncManager engine-neutral (step 4a)
REVERT: f58a913289 Sync: route the collection path through the engine (step 3)
REVERT: 4008ded853 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
REVERT: 18ac9e5037 Sync: remove the intent-log engine from the framework (now plugin-only)
REVERT: ce2d216dd6 Sync: expose registry test-support + session seam types for engine plugins
REVERT: 01111eee44 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
REVERT: 022ebd91e2 Sync: Make the collaboration framework engine/transport-less by default
REVERT: 8ac75c8cae Docs: Add an as-built architecture overview with mermaid diagrams
REVERT: b3567fd4dc Sync: Add the WebSocket transport (daemon + codec-driven client)
REVERT: 276bd27a87 Sync: Make transports swappable; add HTTP long-polling
REVERT: d0fb51470f Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
REVERT: 60eb412dfa Sync: Inline approval card for parked new-block proposals
REVERT: 08d3ecedcb Sync: Reserve Restore of requires-approval conflicts for capable users
REVERT: 5d24f4cc2c Sync: Stop dropping classic content; sync it as core/freeform
REVERT: 14a82d708b Sync: Sync Custom HTML blocks through the content field (raw-content model)
REVERT: 3be3b1c3e5 Sync: Fix the capture bug that silently blocked Custom HTML sync
REVERT: 65e8bf9369 Sync: Regression-test benign-to-protected attr value transitions
REVERT: 9983a07e54 Sync: Gate raw-attr markup at ingest; make block restore an approval
REVERT: b63d141b62 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
REVERT: bb4c4b9e9b Sync: Anchor collaboration conflicts to blocks in the canvas
REVERT: 11165044f7 Sync: Add the collaboration review panel to the document sidebar
REVERT: ca51d70d4d Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
REVERT: 6a9357f463 Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
REVERT: 791a40e653 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
REVERT: 5149d9a9d3 Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
REVERT: a71e3103c5 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
REVERT: 4dad221495 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
REVERT: 9668010b7b Docs: adversarial review of the intent-log branch (2026-08-05)
REVERT: 00f5867bf9 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
REVERT: ffac7acf99 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
REVERT: c070625a92 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
REVERT: c27fb74ea7 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
REVERT: 86bb5d76ec Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
REVERT: bbb0d851fe Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
REVERT: 1a108bb136 Sync: presence for the intent-log engine (Phase 2d-viii)
REVERT: c8e9d59ae9 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
REVERT: ffd4f44fb2 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
REVERT: 37456458bc Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
REVERT: 4146e4eb2c Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
REVERT: bafedefbc6 Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
REVERT: 09c9ae78f2 Sync: never treat editor staleness as user intent (Phase 2d-iii)
REVERT: bf2f8223ca Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
REVERT: c03be224b9 Sync: record Phase 2d-i status in the architecture note
REVERT: bf84dcd84a Collaboration: live two-browser intent-log editing (Phase 2d-i)
REVERT: c6ffc0cf77 Sync: record Phase 2c status in the architecture note
REVERT: 12ba54f1f4 Sync: intent-log manager and adapter registration (Phase 2c-ii)
REVERT: 5bd6737e62 Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
REVERT: 46fb9020d3 Sync: record Phase 2a/2b status in the architecture note
REVERT: 76b516ded4 Sync: intent-log client session codec (Phase 2b)
REVERT: c16d278721 Collaboration: unit tests for intent-log engine internals and adversarial ids
REVERT: bbd1591b2d Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
REVERT: 312f3b3fe4 Sync: narrow transports to engine-opaque payloads (Phase 1c)
REVERT: fb9af267ff Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
REVERT: 9276dc7c37 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
REVERT: 98365687c4 Collaboration: extract a swappable sync engine seam (Phase 0)
REVERT: e61523237a Sync prototype: intent-log engine with field-scoped merge semantics

git-subtree-dir: gutenberg
git-subtree-split: 638392d90882a9f65bbf4a7b1dbaf23036980bfb
chriszarate added a commit that referenced this pull request Aug 24, 2026
…runk (#25)

* Follow the framework's move of RTC behind a Gutenberg experiment

WordPress/gutenberg#80658 replaced the `wp_collaboration_enabled` option (and
its Settings → Writing checkbox) with the `gutenberg-real-time-collaboration`
experiment, and renamed the client flag to
`window.__experimentalEnableRealTimeCollaboration`. Gutenberg deletes the old
option on upgrade, so every place here that read or wrote it was silently
looking at nothing.

Server: the de-rtc autosave-commit guard and the websocket sync-server CLI
command now ask `wp_is_collaboration_enabled()`, which is the framework's own
question. The websocket command's old guard was doubly dead — it called
`wp_is_collaboration_allowed()`, which no longer exists, behind a
`function_exists` check that quietly skipped the whole test.

Tests and tooling: PHPUnit fixtures, the Jest manager tests, the fuzzer, the
transport benchmark, and `rtc-dev.mjs` (including `npm run doctor`) all flip
or read the experiment instead. The e2e fixtures need no change — the
subtree's `setCollaboration` already sets the experiment.

* Squashed 'gutenberg/' changes from 8fdde7f743..83e144efc9

83e144efc9 Sync: finish the trunk merge — drop two framework pieces this branch owns elsewhere
c6b266bc75 Rebuild package-lock.json on trunk's lock
2c50a5e9cd Sync: follow trunk's RTC experiment gate after the rebase
698a2fc7ca V1: integrated loop output, verified as a whole (#35)
13d1b3e154 Add more explicit test timeouts, reduce some default timeouts (#8)
cf93599113 Make intent-log the framework's default engine
0a9a170bdb Relocate the transport-specific e2e harness from the framework subtree
f683739358 Remove framework residue duplicated by or migrated to this plugin
7f36932c0d Sync: remove the framework's dual-homed intent-log frozen core
2149d22061 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
04d32960fd Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
1cd70e6820 Sync: backfill CHANGELOG for the framework/plugin split
7062018ff2 Docs: bring the sync architecture docs up to date for the framework/plugin split
98e8ba2fdf Sync: remove the built-in transports from the framework
14b9a11c67 Sync: remove the Yjs engine from the framework (step 4b)
cda266cad7 Sync: make connection retry transport-agnostic (E2)
00d42e9d76 Sync: make createSyncManager engine-neutral (step 4a)
f58a913289 Sync: route the collection path through the engine (step 3)
4008ded853 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
18ac9e5037 Sync: remove the intent-log engine from the framework (now plugin-only)
ce2d216dd6 Sync: expose registry test-support + session seam types for engine plugins
01111eee44 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
022ebd91e2 Sync: Make the collaboration framework engine/transport-less by default
8ac75c8cae Docs: Add an as-built architecture overview with mermaid diagrams
b3567fd4dc Sync: Add the WebSocket transport (daemon + codec-driven client)
276bd27a87 Sync: Make transports swappable; add HTTP long-polling
d0fb51470f Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
60eb412dfa Sync: Inline approval card for parked new-block proposals
08d3ecedcb Sync: Reserve Restore of requires-approval conflicts for capable users
5d24f4cc2c Sync: Stop dropping classic content; sync it as core/freeform
14a82d708b Sync: Sync Custom HTML blocks through the content field (raw-content model)
3be3b1c3e5 Sync: Fix the capture bug that silently blocked Custom HTML sync
65e8bf9369 Sync: Regression-test benign-to-protected attr value transitions
9983a07e54 Sync: Gate raw-attr markup at ingest; make block restore an approval
b63d141b62 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
bb4c4b9e9b Sync: Anchor collaboration conflicts to blocks in the canvas
11165044f7 Sync: Add the collaboration review panel to the document sidebar
ca51d70d4d Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
6a9357f463 Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
791a40e653 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
5149d9a9d3 Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
a71e3103c5 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
4dad221495 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
9668010b7b Docs: adversarial review of the intent-log branch (2026-08-05)
00f5867bf9 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
ffac7acf99 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
c070625a92 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
c27fb74ea7 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
86bb5d76ec Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
bbb0d851fe Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
1a108bb136 Sync: presence for the intent-log engine (Phase 2d-viii)
c8e9d59ae9 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
ffd4f44fb2 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
37456458bc Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
4146e4eb2c Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
bafedefbc6 Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
09c9ae78f2 Sync: never treat editor staleness as user intent (Phase 2d-iii)
bf2f8223ca Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
c03be224b9 Sync: record Phase 2d-i status in the architecture note
bf84dcd84a Collaboration: live two-browser intent-log editing (Phase 2d-i)
c6ffc0cf77 Sync: record Phase 2c status in the architecture note
12ba54f1f4 Sync: intent-log manager and adapter registration (Phase 2c-ii)
5bd6737e62 Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
46fb9020d3 Sync: record Phase 2a/2b status in the architecture note
76b516ded4 Sync: intent-log client session codec (Phase 2b)
c16d278721 Collaboration: unit tests for intent-log engine internals and adversarial ids
bbd1591b2d Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
312f3b3fe4 Sync: narrow transports to engine-opaque payloads (Phase 1c)
fb9af267ff Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
9276dc7c37 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
98365687c4 Collaboration: extract a swappable sync engine seam (Phase 0)
e61523237a Sync prototype: intent-log engine with field-scoped merge semantics
be1a0b58a2 UI: Add tooltips to Calendar and RangeCalendar navigation buttons (#81983)
db3254554c Pattern List: Import a pattern from JSON (#81919)
3bbdb29369 Fix: skip empty block markup in navigation to prevent split UL elements (#78793)
d13be36ff4 Fix: Line Break Tags Added to Scripts and Styles (#77542)
c96732f578 Styles Route: Reference the api-fetch and html-entities projects (#81989)
39088bf09a Block Styles: Refactor the variation UI to use ui/Button (#81833)
f8bec56d62 Extensible Site Editor: Add a theme preview page with global styles editing (#81954)
874959034f Boot: Mount the registered plugins (#81754)
086650feed Updated broken links in document files (#81961)
ec35342e1c Block Editor: Don't close inserter panel when inline quick inserter opens (#76241)
fd305b0fc6 Replace the Storybook test runner with the Vitest integration (#81918)
194f70eaa2 DataViews: Localize the date/datetime calendars from the site locale and direction (#81592)
fcf11dc55e DataViews: use `Menu` from `@wordpress/ui` (#81783)
cb20a4361e CollapsibleCard: Support multiple header descriptions (#81227)
094b1b094f Theme: Update Terrazzo packages to 2.7.1 (#81978)
0ae1399378 fix: Button rtl loader issue (#81901)
af8db520dc Components: migrate StyledLabel to SCSS module (#80001)
85b8c96615 UI: Add ValidatedInputControl component (#81627)
0e7546c0af Hide layout panel when no controls are available (#81968)
ca1b3fe1fe Docs: Align @param tag columns in test/ docblocks (#81905)
8e57b0d27f Components: migrate GradientPicker, ColorPalette to SCSS module (#80473)
953a217f29 TypeScript: Bring the remaining route projects under the typecheck run (#81847)
6eddc656dd List: Add Align Support (#68002)
75768b4e6f UI: Accept locale codes in Calendar components (#81814)
87702decc4 DataViews: Fix date and datetime controls selecting the adjacent day (#81498)
a42b6775f4 Block editor: Move isElementVisible changelog entry to Unreleased (#81953)Co-authored-by: shail-mehta <shailu25@git.wordpress.org> Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
63b5d22cc1 Block Library: Fix failing test in playlist block (#81950)
009745b24e Playlist Track: Improve track upload error flows (#81878)
98047a5bf0 Automated Testing: Change Storybook default a11y test to error on failure (#81597)
f1b97bb6dc Playlist: Add bulk track metadata editing (#81441)
5b5c741de8 Dependency updates Aug 2026 (2) (#81906)
1e40a0d4a0 DataForm: Make the panel layout edit button the real field trigger (#80689)
5d097d5300 DataViews: Sync the displayed calendar month with external value changes (#81635)
f6e389d3a1 Update is-plain-object to 5.1.0 (#81926)
23ac1cdd11 Build Scripts: Force tsc --pretty so CI reports the project behind global diagnostics (#81937)
e5bc5a5fd1 Font library: Add skeleton loader for the font preview images (#81047)
d1e24d6340 Documentation: Update coding guidelines to recommend TypeScript (#81763)
b5e015d0c0 Storybook: Upgrade to 10.5 (#80692)
704b421e55 Use `WCInputControl` alias for legacy InputControl imports (#81830)
047dc276e2 SearchableChipSelect: Add grouped items support (#80989)
c836e0d30f Validation: update dependency-audit to 0.4.6 and ignore dataviews ./wp bundle (#81928)
57c278ca27 Editor: Migrate hierarchical term selector to @wordpress/ui (#81848)
c217b2698e Font Library: Fix the preview weight for variable fonts (#81748)
56897408ab Components: Improve text detection for button icon-with-text (#81521)
eaf986a580 Use `WCTextareaControl` alias for legacy TextareaControl imports (#81834)
54f9e9f675 chore: Update the combobox SCSS to have a breaking changes log (#81923)
5a675bf1d0 Update Ariakit packages (0.4.35 => 0.4.37) (#81080)
d76e6529dd UI: Update Base UI to 1.7.0 (#81390)
31f04b7159 Components: migrate ComboboxControl to SCSS module (#80471)
1d6106c233 Pre-publish panel: Remove the headings that repeat the panel title (#81806)
c49982dcb2 Editor: Set the width an entity opens at from the editor provider (#81750)
4ae7b44119 Global Styles: Close the revisions screen on the first back click (#81897)
c368c6810d Preserve layout and style attributes on Column transform (#81855)
e35b95c0ed Refactor parameter type hints and clean comments (#81898)
7f2be02a0b Try caching gutenberg_get_global_styles (#81889)
bfe2bf29ad Color Palette panel: Remove empty whitespace when there are no theme colors (#81894)
7cea1c72e1 Global Styles: Allow editing duotone palettes (#81605)
91e7ca7a59 Design System: Add portable agent skills (#80597)
eee4867232 Pattern: Disable visibility support (#81866)
c36cbd2cdd Storybook: Handle production module load failures (#81867)
d3f2c507db Global Styles: Group shadow editor rows as items (#81871)
4cbf437576 UI: add ControlWithError component (#81574)
70af7dbbb8 Fix/79641 rtc cursor hidden details block v2 (#81322)
f854b6b139 Storybook: Fix default background color for Example Application theme story (#81765)
157cff2ddd Editor: Announce publish date changes to screen readers (#81629)
da0bf8d33d UI: Mark Autocomplete, Field, and Fieldset as recommended (#80636)
0619247335 Core Data: Allow keyless entities to be addressed without a record ID (#81857)
3e52ca93e2 Dependencies: Dedupe, update adm-zip, nx (#81870)
e8aed3c82b Core Data: Validate the parsed-blocks cache against registered block types (#81809)
417261c052 Build: Emit TypeScript declarations with --noCheck (#81839)
06b9b58daf Boot: Migrate styles to CSS Modules (#81756)
d33e8a4154 Update save & submit docs (#81077)
427871b0cf Editor: Surface debugging details in the ErrorBoundary (#81642)
7deb3826a4 Theme: Add color warning diagnostics workbench (#81817)
a1e8d1dfaa UI: Expose keyboard shortcut presentation utilities (#81826)
04b2317c6b Editor: Remove FlexItem usage from NoteCard (#81851)
0b566e44b3 Add transform to Row for Columns block (#81802)
1b0671fbaf Add missing dependency to media-editor route (#81845)
23e8873b2c TypeScript: Put route projects under the typecheck run (#81829)
ee5da7178e Updated Aria Landmark Example URL (#81832)
f74762325c Fix MediaPlaceholder drag eligibility (#81431)
eba80d22a2 Docs: Fix broken skip ahead anchor on the custom block editor guide. (#81835)
442851efd6 Global Styles: Keep storing shadow presets as CSS variables when custom presets exist (#81346)
4d03cf0ed6 Bump astral-sh/setup-uv from 9.0.0 to 10.0.0 in /.github/workflows (#81823)
6106e2177b Components: migrate ResizableBox to SCSS module- #80720 (#81792)
c9e913d798 Storybook: Fix production build warnings (#81758)
a2d98c2883 Docs: Narrow the tsconfig split guidance to the standard layout (#81828)
94a108d3c9 UI: Add TextareaControl component (#81359)
e5039135ce Quick Inserter: Standardize the design of the Browse all button (#81827)
add1acd40f Docs: Fix broken link to the getEntityRecords selector reference. (#81791)
61121263ba Post Template: Fix mover arrows and labels for blocks inside the grid view (#81120)
321d5c87c7 UI: Mark Input-related components as recommended (#81658)
232cf07f1a UI: Add initial agents guidance mapping to contributing guidelines (#81400)
0aa2071fec Fix: Post Editor: 403 on /wp/v2/settings at boot for users without manage_options cap (#81813)
a0c83b4dd7 Add command: View post (#66720)
073b06862f add context to change "revisions code diff" (#81820)
3a5b8ad2dd Patterns explorer: Refactor the category sidebar to use Tabs (#81807)
eca76ad768 Menu: Add UI component (#79560)
8119bc827d Fields: migrate last remaining JS file to TS (#81808)
55f56985be Components: Fix Storybook accessibility issues in stories (#81777)
12fd2f5612 Playlist: Remove block toolbar sharing between parent and child blocks (#81432)
9359cf2bbf Rename the media editor toolbar button to 'Edit image' (#81705)
aee1d48442 Block Editor: Remove leftover files (#81793)
28c348acdf TypeScript: Require the typecheck run for type checking in CI (#81518)
f57b5d3bb6 Packages: Complete the tsconfig build and dev project split (#81517)
03211d47a7 Packages: Split story package tsconfigs into build and dev projects (#81516)
bce33cb4ff Editor: Debounce term filtering and announce results once (#81422)
15503fd5e5 Tests: Make PHPUnit tests independent of test config flags and theme root (#79159)
9d2c909e53 Docs: Fix broken link to the Document-Isolation-Policy explainer. (#81790)
2a59379cc1 Build Package: Use Core's boot module when a plugin has none (#81761)
038142b853 Update Changelog for 23.8.0
ca0444b218 Bump plugin version to 23.8.0
b0316b6134 Fix: Post Editor: Canvas animates from the left when switching mobile/tablet preview to desktop (#81484)
feb072be0e Media Editor Route: Add undo/redo and save/cancel actions to the header (#81563)
3abf43f1df Notes: Stop forcing capitalization of user names (#81788)
e16e4bbd88 Fix Broken Links in Package file (#81700)
42e91ce205 Command Palette: Allow commands to override the category icon (#81787)
3ba8bb1750 Components, DataViews, Editor, UI: Split tsconfigs into build and dev projects (#81515)
336666c980 Schemas: Document what the theme.json schema checks (#81773)
fdf5711313 More block: clarify description about excerpt vs full content (#80619)
96a6d41dc1 Theme: Improve color ramp contrast safeguards (#81185)
ab98811095 Dashboard Widgets: resolve widget types without a metadata module (#81738)
6e4cf9c292 Dashboard: add a Site Health detail page as the dashboard's second route (#81729)
e434463145 Align collaboration migration version markers with the 23.8.0 release (#81789)
bee1b17fb1 RTC: Add fallback identities when user profiles are unavailable (#81408)
894f273e9b Fix the failing e2e test (#81739)
e43dcaa48f Fields: Export the package stylesheet (#81769)
03811bd605 UI: Add Spinner component (#81358)
725b1f48e0 Fix DataViews list layout color token usage (#81074)
9a9d9c535a Notes: keep the note actions menu in view for long display names (#81414)
825d1789fb Update playlist track placeholder to match aria label (#81762)
939b3f3a92 ui/Card: Use the default neutral border (#81746)
a5e0b24f14 RTC: Couple RTC and polling provider as an opt-in experiment (#80658)
da621f2e6a Modal: Stop Escape key propagation on dismiss (#81785)
c00d0697de Tabs: Give tab IDs their own counter so numbering starts at 1 and never skips (#81781)
0ea2e57cb7 BoxControl: update the opposite side when ALT is held on the left or right input (#81530)
b6453f2621 Fix: Accordion: Anchored hash inside the accordion throws the malformed URL console error (#81780)
dc30b9dde7 Site editor: update template section description. (#81613)
a81f0474d9 Global styles: Register <label> as element (#81160)
cb8fc5f5c2 Block Editor: Add translator context to pseudo-state labels (#81770)
348c2da73c Fix: URL: normalizePath drops the rest of the query after a second "?" (#81612)
d889c67cbb Fix clipped focus outlines in the media editor Details sidebar (#81703)
87acb90b99 Prevent white screen crash during undo operations when Media Modal is open (#79898)
d1703e053a Global Styles: filter and indicate blocks that have custom styles (#81373)
8d862829e1 Media Editor Route: Make the route look like it's part of the media menu in the left-hand sidebar (#81565)
1bb4e5b157 Packages: Split tsconfigs for utility and mid-size packages (#81514)
4061b86a00 Enable axial gap for Group and restrict to flex and grid layouts. (#81476)
daf9c82168 Feat: support block spacing (#79689)
05abdcb349 Bump github/codeql-action/upload-sarif (#81436)
87826e5c9c Add `__unstable_wp_sync_storage` filter for pluggable storage backends (#81697)
1f6157810c UI: Collapse item-popup item sizing to default and small (#81354)
ba25994b47 Playlist: Add aria-label to prevent placeholder as label (#81654)
227aff3290 Components: Migrate DropdownContentWrapper to SCSS module (#81522)
75b9133222 Site Editor: Use inverted ThemeProvider seed for portaled UI (#81653)
4849c664c3 Update Terrazzo packages to 2.5.0 (#81082)
2f1563b9e0 Build Tools: Stop watcher process trees on shutdown (#81504)
262c721c8a Docs: Require site editor features to land in the extensible site editor too (#81752)
02aae3ab29 Boot: Preview the site where the canvas has nothing to open (#81749)
47e68c9f4c List View: Fix flaky global shortcut test and re-enable it (#81690)
ac1cf9e039 Lazy Editor: Keep the theme's editor styles on the canvas (#81747)
a2556e7201 Stop saving Table of Contents output (#80404)
5171671b5b Boot: Sync the editor's device preview with the URL (#81617)
ce19c147a8 RichText: Use the current record when handling Enter (#81696)
3f668616ac Editor: Simplify List View sidebar shortcut handling (#81693)
97a82266de Block API: Address review feedback on block keyboard shortcuts (#81621)
1b45b0780d Boot: Do not offer to edit a trashed entity (#81632)
e3187a5760 Edit Site Init: Seed the editor preferences the editor expects (#81628)
db5c14db14 Lazy Editor: Render the editor preferences modal (#81630)
090b2acc04 List View: Make focus on mount opt in (#81659)
137e908a9c Make Back button grid column flexible. (#81701)
cd0c368a2e Layout block supports: cast numeric grid attributes before use (#81560)
55dabd69d6 Inner Blocks: Fix bug that caused alignment controls to show in Image blocks within a Gallery (#81606)
d3c65d3a7e Admin UI: Fix the primary color of the Fresh admin color scheme (#81618)
2d9c286ac6 Playlist Track: Show upload spinner inline (#81445)
de9e36e54e Fix playlist track toolbar insertion (#81639)
614b3bf6b2 Editor: Refactor 'ErrorBoundary' to use the new recommended components (#81638)
0a886b47c9 Env: Fall back to cached docker images when the registry is unreachable (#81631)
ebd2ecafaa Boot: Warn before leaving with unsaved changes (#81625)
bff0a80003 Boot: Contain a surface failure to that surface (#81622)
f9913ca552 Perf: Report the first block selection as its own metric (#81616)
1c46b11820 Boot: Translate the canvas click-to-edit label (#81620)
0e92e54c99 Storybook: Add Story for  InnerBlocks (#68651)
f36f2bb2f3 Block API: Declare block keyboard shortcuts on variations and transforms (#81588)
476847df51 Boot: Let the editor canvas navigate between entity records (#81590)
11474d21bd Block Editor: Never spotlight blocks in a preview (#81615)
f3ec0c66e7 Storybook: Add Story for BlockPopover (#68681)
3bb6eb7a08 Global Styles: Expose additional elements in Typography and Colors (#80852)
ee35d7c8d3 Extensible Site Editor: Show only the style book on Styles for classic themes (#81579)
b65ede97c9 Storybook: Add Story for URLPopup component (#68449)
9f30bf7872 ComboboxControl: narrow `onChange` callback type to `string` | `null` (#81568)
560d975e66 Extensible Site Editor: Add the Identity route (#81576)
51d339f0d0 URL: Stop normalizePath throwing on a malformed percent sequence (#81086)
f3b8155a3b Fix parent inserter alignment with text labels enabled (#81608)
9aa7406203 url: clamp the truncated file name slice in filterURLForDisplay (#81529)
dbe1c1ccab Block editor: add an inserter to the parent selector (#81532)
aa50808db6 Fix viewport state values set by grid resizer (#81601)
6f26db48d8 Add Gutenberg version details for WordPress 7.1 (#81600)
be330310c5 Base Styles: Align `input-control` mixin to design system (#81357)
2b714533ed Components: Align legacy form control focus rings with WPDS (#80417)
4aa6912c04 Base styles: Streamline focus ring override (#81242)
b9cfc73f09 Editor: Register the editor keyboard shortcuts from the provider (#81580)
ab2550247a Extensible Site Editor: Gate theme screens on theme support (#81581)
3f15b6b806 Dashboard Widgets: promote high-relevance actions into a chrome footer (#81556)
fe89562bf1 Update waveform player dependency patch (#81454)
6bef42943e Vitest: Resolve @flakiness/vitest reporter to an absolute path (#81582)
b37473fe87 Packages: Split blob, grid, interactivity, and theme tsconfigs (#81509)
b228eebdfc TypeScript: Add typecheck script and split root tsconfig into build and dev solutions (#81499)
c099637b7b Extensible Site Editor: Preview the site on Home for classic themes (#81578)
1e6382df01 Editor: Speed up the hierarchical term selector for large taxonomies (#81376)
94c4e660bc Adds JSdoc for `avatar` block's edit.js (#68867)
a3aa0de472 Refactor: Convert `createColorHOC` to functional component (#70408)
9aee7c24d5 Adds JSdoc for `audio` block's edit.js (#68865)
78640e0317 Adds JSdoc for `column` and `columns` block's edit.js (#68873)
fe1c9d5c42 Docs: Fix broken links to the Block API reference guides. (#81571)
5b6431c6b6 Editor: Use PluginSidebar in GlobalStylesSidebar (#81570)
9fa0b67fb2 Docs: Add Block Editing Mode Readme. (#69411)
c4c5c62582 Release: Improve changelog categorization (#81475)
d4d4c4d7c5 DataViews: vendor `ValidatedToggleControl` (#81492)
150cd6da98 Media Editor Route Experiment: Override media edit links to point to the new experimental media editor (#81559)
0f61d4aa2e Writing flow: select next block on Enter key (#63484)
d033d614e5 Media editor: keep initial modal focus on the dialog frame (#81541)
07d89d593e Fix: Delete key on empty heading transforms following paragraph into heading (#78779)
e69ab441df In-between indicator: make symmetric (#68074)
f69e114ba8 DOM: treat a caret at a soft line wrap as an ambiguous position in Firefox (#81003)
c384568f21 Fix: getQueryArgs discards everything after the second = in a query argument value (#81066)
7455cde4fc Editor: Stop `:has()` selectors recalculating the whole document on every block selection (#81471)
08117d8685 DataForm: Fix the datetime control sending two updates per calendar interaction (#81440)
eb039018ff Fix: Term Description block skips display filters inside Terms Query. (#81290)
dd73b57749 Editor: Correctly mark ToolsMoreMenuGroup as a private SlotFill (#81503)
08e4e81221 Admin UI: Add Navigation component and Page navigation slot (#79746)
26eea2b99c Theme: Move changelog entry to unreleased (#81508)
7a8a56b1d0 Theme: Avoid root-level relational selectors (#81457)
9f798f32a5 Packages: Move unreleased changelog entries out of the 23.8 published versions (#81502)
cdff370d46 Storybook: Upgrade Vite to 8 (#81494)
2aacf5a578 BlockEditVisuallyButton: Update Developer Documentation (#68987)
c19909efaf Adds README for inspector-controls-tabs component (#69072)
d36bccf8ca Update 23.8 release changes on trunk (#81485)
b8315bfee4 DataViews: vendor `ValidatedToggleGroupControl` (#81450)
506584fc8d Docs: Fix dead link in the dynamic blocks tutorial (#81399)
dc8ce1ddca DataViews: vendor `ValidatedFormTokenField` (#81451)
a1d24c1308 Dimensions: Fix aspect ratio and scale controls not reflecting external updates (#80747)
d87ee650e3 Docs: Add Background image control Readme (#69409)
3c78efc964 Icon: Fix margin being applied twice in the editor (#81292)
86802246ac DataViews: vendor `ValidatedComboboxControl` (#81449)
2f9f8ce646 Update Changelog for 23.8.0-rc.1
485c71d2a1 InputControl: Vertically center date and time input values in Safari (#81361)
9045eadf0b Env: Update git to latest commit when `--update` passed (#81447)
3ceebb60e8 Bump plugin version to 23.8.0-rc.1
59965b3e00 ESLint: Rename root eslint.config.cjs to eslint.config.mjs (#81468)
f377cd0210 Backport core fixes for finalize route (#81465)
cc8e2c958b Docs: Add Block Lock Readme (#69434)
62f77b7dfd Docs: Add Block List Readme (#69432)
76300ee874 Fix empty list block with anchor persisting after backspace deletion (#77000)
7d63751ba6 Fix: flaky autosave shareable URL revisions e2e test. (#81455)
4d914a0bf5 Block editor: disclose the nested block count of a multi selection (#80745)
ac8de62e8a Docs: Add Block Actions Readme (#69408)
d90ebd76e8 Normalize block gap values in layout (#81460)
bc0a68e7ae Remove an unmodified wrapper when all its inner blocks are removed (#42503)
175d53c3e1 Writing flow: stop the caret on containers that do not merge with the text flow (#81456)
1bfda6cd3e Spacing Sizes Control: Make the control label translatable independently of the input aria label. (#81240)
c98049dbf4 Block editor: render a real default block in place of the default appender (#81231)
74dd7dc8ad UI: Upgrade React DayPicker to version 10 (#81439)
7f83800464 DataViews: vendor ValidatedRadioControl (#81434)
4c3f3f4f15 DataViews: vendor ValidatedCheckboxControl (#81435)
3c7745836d DataViews: vendor `ValidatedNumberControl` (#81433)
ab730b2236 Cover: Avoid passing null as the featured image size (#81444)
5abfd415e8 Components: Remove ValidatedTextControl private API (#80680)
a91983ca6c DataViews: Move the rich text control into the editor package (#81430)
13a0338a03 components/Menu: Restore Modal focus return when menu items close (#81164)
121e579189 Fix: Regression: Tabs block: Start with empty tab labels with placeholders (#81429)
11f6247b6a Navigation Overlay Close: Inherit typography and color from the overlay (#80751)
99aee654cc Docs: Fix broken link to the Node.js debugging guide. (#81398)
9e8d50d490 fix: order site identity changes predictably (#81283)
589bb11f9f Feature: Tabs block: consider using the tab title in the Document Overview instead of a generic "Tab" label (#81427)
637513a31f UI: Add `Calendar` and `RangeCalendar`, moved from `components` private APIs (#81337)
6e52fa407d DataViews: vendor `ValidatedSelectControl` (#81391)
cd08bc77ef Notes: Fix text wrapping for long usernames in collaboration sidebar (#81406)
04172b2c60 Interface: Let CSS own the ComplementaryArea width and use AnimatePresence custom for exit (#81363)
9f8d048a3b Test: Add private Vitest config and migrate a pilot test (#81037)
52eccd71b7 Update Changelog for 23.7.2
ae2290d8e7 Tools: Make agent setup a workspace (#81418)
70be075950 Bump plugin version to 23.7.2
126a840c69 DataForm: Fix hidden fields validation (#81377)
1a1b94c8a2 Widget Dashboard: host-tunable tile spacing via public custom properties (#81352)
79e0ed0693 Core Data: Fix post staying dirty after saving edited post meta with RTC enabled (#81392)
c381238065 Format Library: Remove unused CSS rule (#77831)
63bbebcaf0 Block Mover: Add the keyboard shortcut to the buttons' spoken description (#81380)
a370a8b6b7 Block Editor: Fix Escape from the block toolbar and stop redundant last focus dispatches (#81319)
746d5c31cd Dashboard Widgets: split action icons into wire and resolved forms (#81381)
7f8f873059 Global Styles: report border, shadow, outline, filter and dimension changes (#81407)
7dc85951fa Global Styles: Migrate shadows presets to use the preset management layer. (#79812)
445cf4af7e Scripts: Prevent a UTF-8 BOM in the middle of extracted CSS (#81383)
923807350e Changed Build Process Link and remove unused tags (#81360)
25fc9c1204 wp-build: Render the no-JS fallback in the generated page templates (#81365)
9cfdeddc7c Docs: Add error message guidance. (#81143)
1980b08d46 Fix: flaky list view paste block styles e2e test (#81229)
1bccb3ab9b Interface: Stop the secondary sidebar animating into place on page load (#81362)
07e90d6582 IconButton: Improve keyboard shortcut accessibility (#80402)
f8466c3adb Monitor all setup-related composite Actions. (#81192)
eb976a5434 Bump actions/stale from 10.4.0 to 11.0.0 in /.github/workflows (#81219)
150c61e445 Bump github/codeql-action/upload-sarif (#81287)
0f7b5c4eef DataViews:  Fix `array` field type validation for empty values (#81378)
4762fb7ab9 UI: Derive Base UI direction from WordPress i18n (#80399)
fb1241521f Try: Set post navigation link icon to next. (#81384)
ffd97c0bbb Playlist: Improve audio conversion and track selection (#80926)
be74d5d3f6 Dashboard Widgets: add icon and relevance to the widget action envelope (#81275)
107fb08d0e Editor: Keep the canvas height stable while resizing the canvas (#81163)
226f1e8da8 Remove content types experiment (#81340)
139cc8a248 New `kebab-case` package: extract utility and migrate private API calls (#81294)
260cd94a20 Scope breakpoint media queries to screen so printing does not look like a resize (#81367)
de4da84c1e Block Editor: Convert useBlockVisibility hook to TypeScript (#80390)
dd9abb6c0b Global Styles: Migrate font size presets to the shared preset layer (#79811)
c7cdb48157 Site editor: fix unreadable sidebar hover color (#81317)
341268f857 Playlist: Normalize Waveform Player configuration handling (#81342)
77e4d24585 Docs: Fix typo in block file structure guide (#81348)
c24e8b59bf Markdownlint: disable the MD033 (no-inline-html) rule project-wide (#81213)
949ba8754f Docs: Fix broken links to the removed JavaScript build setup guide. (#81232)
b7e4955ccf Keycodes: Make `withIgnoreIMEEvents` a public API (#81343)
3f224e67b0 Block Editor: Simplify InspectorControlsFill rendering logic (#81286)
354f66c7e1 Pert Tests: Avoid inflating interaction metrics with startTracing (#81264)
2fcd74717a DataViews: Use the public `@wordpress/ui` Badge instead of the private one (#81236)
91b373e707 Components: Migrate Spinner styles from Emotion to SCSS module (#80511)
8181ec4897 ESLint: Remove legacy import suppressions (#81338)
6b364aac1e Block Library: Document security patch releases (#81295)
7f43eafcce ESLint: Replace strict config with bulk suppressions (#81248)
a8adbd7a56 Block Editor: Bail out of hasSelectedInnerBlock when there is no clientId (#81315)
a17b59cd8a Theme: Colocate plugin tests with implementations (#81247)
4ee374307c Document editEntityRecord's options.isCached param (#81318)
8323351f39 Site Editor: Decode HTML entities in Identity fields (#81269)
2cb64f7ea2 Block Inspector: Disable the 'Edit original' button when the entity ID is missing (#81288)
1516e9bfce theme.json schema: allow responsive states on block style variations (#81309)
197c37094f theme.json schema: responsive states belong to blocks (#81253)
e89872315e Render viewport state element styles in the editor (#81307)
e574bb5827 Docs: remove breakpoint-only element style example from global styles guide (#81308)
102eb74ff8 Style states: Fix phantom pseudo element style output (#81291)
007f062fe5 Global styles: render element styles set only inside a breakpoint (#81265)
69b17c5e98 Packages: Recover July 29 npm release metadata (#81303)
53d9d2fa53 Update Changelog for 23.7.1
9379c90e79 Bump plugin version to 23.7.1
b7e98ae647 Fix missing return value in force_filtered_html_on_import footnotes filter (#81293)
3e0fe0ce05 Style states: fix state deselection when selecting the already selected block (#81277)
e8bc5cd3ca Navigation: Complete the DocBlocks for the responsive container and overlay style helpers (#80622)
7c36647bc4 Fix output for post date
57d90e1193 Ensure Content block tags always match available options.
63487665fa DataViews: Inline the kebabCase utility from components (#81284)
b1bad31b46 Latest Comments Block: Ensure latest comments can be viewed only for public posts
8d969332c5 fix: add optional chaining for empty reusable block (#81165) (#81177)
23b5b854ed Update phpcs, wpcs dependencies (#81279)
c476176cd1 Icons: move the inline image icon into the library (#81271)
a96cd78103 Block Directory: Make downloadable block item labels translatable. (#81237)
97894177e6 Dashboard Widgets: remove the Hello Dolly download action (#81272)
2dab68ff95 Flaky tests: Report as a PR comment only, stop creating issues (#81218)
7911b6ceaf ESLint: Define dependency import rules (#81246)
6e365e3537 Docs: Remove dependency group import guidance (#81245)
dc4a6a1c99 List View: Migrate label wrapper to UI Stack and drop Badge from the anchor (#81266)
ebab53f3d3 theme.json schema: fix block pseudo-classes and custom states (#81209)
5e2b7c1b1f Docs: explain how the theme.json schema fixtures work (#81263)
f889575799 Global Styles: Remove unused duplicate font family preview utilities (#81194)
1e267a50fa Block editor: unify what a new sibling block inherits (#81250)
b31639cc09 Footnotes: guard against invalid post meta values (#81201)
bb108741c2 Media: Cover client-side big image scaling and orphaned files (#81061)
9cd1367227 Storybook: Enable design system theme tool globally (#81116)
773a915066 Use p elements for callout alerts in components docs (#81234)
7212715749 Fix: Trunk e2e failures caused by the navigation spec leaving plain permalinks (#81238)
90f2bd5b96 Components: Deprecate Animate (#80931)
61e43986ac URLInput: Skip search requests while an IME composition is in progress (#80602)
2ef358f6cd AGENTS: Update development tips section (#81224)
01c037b1ff Blocks: Support static block templates in block type settings (#80027)
a152341f8f Docs: Fix broken Figma links on the design resources page. (#81166)
f8c8421e38 List View: Split the context and drop dead props to cut re-renders on expand and collapse (#81159)
c004e77c30 Block Editor: Fix Select all freezing on large posts (#81210)
1c5ff32abd Update Changelog for 23.7.0
bfd5303f9d DataViews: Fix the between `date` filter losing a manually typed date on blur (#81150)
943f0a62be Bump plugin version to 23.7.0
503dad4e4c Blocks: Update hpq to 1.4.0 and drop the ts-expect-error suppressions (#81199)
2cd1c4a58b Block Editor: Return false from isBlockSelected when there is no client ID (#81212)
acf17cde10 DataViews: Make grid and table item preview aspect ratio configurable (#79329)
f7f5670d56 DataViews: Pass only eligible items to a bulk action callback (#81198)
04f245f71d Ensure device preview is always accurate when window is zoomed in (#81193)
11bae0c3c0 Components: Add allowForms prop to SandBox component (#76471)
6b40482d0f Media Attached to: Fix issue with the popover unexpectedly flipping, tweak wording (#81206)
1eaeae76c3 Remove the editableRoot opt-in from the paragraph block (#81184)
3a96676bba PanelColorSettings: Restore the missing space below the panel header (#81155)
b8cb89c907 Widgets editor: Add ThemeProvider for admin color schemes (#81173)
625944407d Blocks: Declare the `@types/react-is` devDependency (#81203)
1908100a47 Customizer widgets: Add ThemeProvider for admin color schemes (#81174)
52c7652c34 List View: Reduce per-row store subscriptions (#81136)
95ca3f044e Edit Widgets: Fix header toolbar button focus ring (#81176)
bffdae3257 Notes: fix the mention notification email composition (#81187)
fa4eff0910 Button: turn on the width setting by default in theme.json (#81196)
f9306164a1 Types: Replace remaining `@ts-expect-error` suppressions with proper typing (#81200)
c1d8367952 ESLint: Ban `@ts-ignore` in favour of `@ts-expect-error` (#81148)
991a717425 Agents: Add a defensive data design skill and route to the copy guide (#81131)
09e1e7ada3 Fix/79643 rtc awareness mixed block selection (#79836)
214438c400 Bump astral-sh/setup-uv from 8.3.2 to 9.0.0 in /.github/workflows (#80964)
7a1e659744 fix(admin-ui): reset the wp-admin li margin that misaligns Breadcrumbs (#81134)
02fea5a045 Bump actions/setup-node from 6.4.0 to 7.0.0 in /.github/setup-node (#80963)
b281d24fb6 Bump docker/login-action (#80962)
4513b4226b Media Editor: Render sidebar tabs via ComplementaryArea's render prop (#81133)
fe2e582976 Video: clarify the Video variation description (#81181)
a5e3bb48d7 Video: Hide settings for the GIF variation (#81142)
a0642d18c4 Block Supports: Guard against non-string attribute values to avoid fatal errors (#80501)
415b6f4508 Media: Improve the HEIC upload error and keep any upload errors up until dismissed (#81130)
REVERT: 8fdde7f743 Sync: remove the framework's dual-homed intent-log frozen core
REVERT: 64444c5109 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
REVERT: bdb55c7385 Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
REVERT: b87dce07c4 Sync: backfill CHANGELOG for the framework/plugin split
REVERT: b7cf02e709 Docs: bring the sync architecture docs up to date for the framework/plugin split
REVERT: 0d08f16481 Sync: remove the built-in transports from the framework
REVERT: 897e974c36 Sync: remove the Yjs engine from the framework (step 4b)
REVERT: 6180c357c8 Sync: make connection retry transport-agnostic (E2)
REVERT: 901a2ba337 Sync: make createSyncManager engine-neutral (step 4a)
REVERT: d574f8d1fe Sync: route the collection path through the engine (step 3)
REVERT: 8af5069291 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
REVERT: 88b2a22cf2 Sync: remove the intent-log engine from the framework (now plugin-only)
REVERT: 8f2cc74969 Sync: expose registry test-support + session seam types for engine plugins
REVERT: bc1fcc6bc3 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
REVERT: df743b1a68 Sync: Make the collaboration framework engine/transport-less by default
REVERT: 523cadb3b4 Docs: Add an as-built architecture overview with mermaid diagrams
REVERT: 773340178d Sync: Add the WebSocket transport (daemon + codec-driven client)
REVERT: a89022d73a Sync: Make transports swappable; add HTTP long-polling
REVERT: d312ecce21 Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
REVERT: 660ae1b184 Sync: Inline approval card for parked new-block proposals
REVERT: dd19643e94 Sync: Reserve Restore of requires-approval conflicts for capable users
REVERT: cb2c50f4e6 Sync: Stop dropping classic content; sync it as core/freeform
REVERT: e8b70c2618 Sync: Sync Custom HTML blocks through the content field (raw-content model)
REVERT: 1ab2581641 Sync: Fix the capture bug that silently blocked Custom HTML sync
REVERT: 0af03d60d5 Sync: Regression-test benign-to-protected attr value transitions
REVERT: d0fdd1290b Sync: Gate raw-attr markup at ingest; make block restore an approval
REVERT: c1353269a8 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
REVERT: 0a1dc908bf Sync: Anchor collaboration conflicts to blocks in the canvas
REVERT: 3cc6837dde Sync: Add the collaboration review panel to the document sidebar
REVERT: 42f4414661 Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
REVERT: 91d7ecb57a Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
REVERT: a6d52fe0a7 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
REVERT: 3cf3eea27f Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
REVERT: 887baa76b6 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
REVERT: 8dbac3a784 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
REVERT: e943fe7ef5 Docs: adversarial review of the intent-log branch (2026-08-05)
REVERT: 7fd02053b5 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
REVERT: be5fe799a1 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
REVERT: 58d3696eb9 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
REVERT: 689df3c0b6 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
REVERT: 7f205989c6 Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
REVERT: 034a9851a1 Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
REVERT: 05f376da52 Sync: presence for the intent-log engine (Phase 2d-viii)
REVERT: 30573c2ba6 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
REVERT: 7f3fe44da7 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
REVERT: af4e398cec Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
REVERT: 81091c0de0 Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
REVERT: 7d8414c8ec Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
REVERT: e1778e094f Sync: never treat editor staleness as user intent (Phase 2d-iii)
REVERT: e9261e7785 Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
REVERT: 8b4125788a Sync: record Phase 2d-i status in the architecture note
REVERT: 6b71de6649 Collaboration: live two-browser intent-log editing (Phase 2d-i)
REVERT: 56a2ec4542 Sync: record Phase 2c status in the architecture note
REVERT: 2daebd226c Sync: intent-log manager and adapter registration (Phase 2c-ii)
REVERT: 748153187a Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
REVERT: 93b4c5710d Sync: record Phase 2a/2b status in the architecture note
REVERT: e664cd0fcb Sync: intent-log client session codec (Phase 2b)
REVERT: f21a254365 Collaboration: unit tests for intent-log engine internals and adversarial ids
REVERT: a007745cb2 Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
REVERT: b965e32f1d Sync: narrow transports to engine-opaque payloads (Phase 1c)
REVERT: 188ce3728c Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
REVERT: dfe2434194 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
REVERT: 9dc871f8f5 Collaboration: extract a swappable sync engine seam (Phase 0)
REVERT: 5a3fa0c64d Sync prototype: intent-log engine with field-scoped merge semantics

git-subtree-dir: gutenberg
git-subtree-split: 83e144efc9cb29d5a2cc0f203c3009549e4868f8

* Turn the collaboration experiment on for the whole PHPUnit suite

The framework consults `wp_is_collaboration_enabled()` on `init` (registering
the `wp_sync_storage` post type and the CRDT post meta) and again on
`rest_api_init` (the transport routes), both of which fire before any test's
set_up. So the gate has to be flipped in the bootstrap, not per class.

This restores the posture the suite always had — the retired
`wp_collaboration_enabled` option was registered with a default of true, so
collaboration was on for every test without anyone asking. Per-class option
juggling comes out; one class's teardown deleting the experiment would
otherwise have switched collaboration off for every class after it.

* Say so on the settings screen when collaboration is off

Real-time collaboration used to default ON and had a visible Settings →
Writing checkbox. Now it defaults OFF behind a Gutenberg experiment, so it is
easy to land on Settings → Collaboration, pick an engine, save, and see
nothing happen. Show a notice pointing at the experiments screen in that
state.

* e2e: follow Gutenberg's empty-post appender to the ghost block

Gutenberg no longer renders a button appender on an empty post. It renders a
"ghost" paragraph — a real block element with role=document and the
accessible name "Add default block" — which materializes into the store on
the first pointerdown or focus. Every spec that started an empty post was
clicking `role=button[name="Add default block"]`, which no longer exists, so
they all timed out before typing a character. This is what was failing e2e on
this branch.

Switch to `getByRole( 'document', { name: 'Add default block' } )`, the same
locator the subtree's own collaboration specs use. Behavior is unchanged: the
ghost is not in the block store until the click, exactly like the old
appender. Same fix in the two-tab observer and the transport benchmarks.

* e2e: enable collaboration before the websocket daemon starts

Playwright starts webServers before global setup, so when
rtc-real-ws-daemon.mjs launches `wp collaboration sync-server` the suite's own
setCollaboration has not run yet. That was harmless while the CLI command's
guard was dead code; now that it really asks whether collaboration is enabled,
the daemon would refuse to start and take the websocket suite with it. Enable
the experiment in the launcher, before the daemon.

* Regenerate package-lock.json for the bumped subtree

The plugin depends on the framework through the subtree
(`@wordpress/sync: file:./gutenberg/packages/sync`), so the root lock embeds
the subtree workspace manifests. Bumping the subtree moved those packages to
1.53.0 and added a `@types/jest` devDependency, which put the lock out of sync
with `package.json` — `npm ci` refuses that outright, so every CI job died at
its install step before running a thing.

Also drops a stale `extraneous` entry pointing at an unrelated local worktree
(`../workspaces/gutenberg/try-intent-log/packages/sync`) that had no business
being committed.

* Squashed 'gutenberg/' changes from 83e144efc9..638392d908

638392d908 Fix lint violations in the sync-engine and review-panel files
afe0e5cad7 Sync: update getSyncManager tests to the engine-adapter API
a095509c0a Docs: sync engine architecture notes, integration guide, and reviews
5f56443ec1 Relocate the transport-specific e2e harness to the engines plugin
c36a86a669 Editor: collaboration review panel — sidebar, canvas anchors, inline approval
a1fd6e57bc Sync: escalation review lifecycle — store, actionable notices, restore/discard
c0ad64b8e1 Sync: rich-text and raw-content block config — classic and Custom HTML sync
00171d2487 Sync: mirror block save markup into the shared doc
44dd11d3e3 Sync: presence for engines without a shared Y.Doc
7446e5dee0 Sync: enforce the engine handshake; degrade to post locking, not silence
1021f39c64 Sync: client-side engine seam — SPI, registries, engine-neutral manager
fc96d7b5ac Collaboration: server-side engine/transport seam, empty by default
REVERT: 83e144efc9 Sync: finish the trunk merge — drop two framework pieces this branch owns elsewhere
REVERT: c6b266bc75 Rebuild package-lock.json on trunk's lock
REVERT: 2c50a5e9cd Sync: follow trunk's RTC experiment gate after the rebase
REVERT: 698a2fc7ca V1: integrated loop output, verified as a whole (#35)
REVERT: 13d1b3e154 Add more explicit test timeouts, reduce some default timeouts (#8)
REVERT: cf93599113 Make intent-log the framework's default engine
REVERT: 0a9a170bdb Relocate the transport-specific e2e harness from the framework subtree
REVERT: f683739358 Remove framework residue duplicated by or migrated to this plugin
REVERT: 7f36932c0d Sync: remove the framework's dual-homed intent-log frozen core
REVERT: 2149d22061 Docs: reflect the undo relocation (engine-provided undo; framework carries none)
REVERT: 04d32960fd Sync: make undo engine-provided and relocate the Yjs undo manager to the plugin
REVERT: 1cd70e6820 Sync: backfill CHANGELOG for the framework/plugin split
REVERT: 7062018ff2 Docs: bring the sync architecture docs up to date for the framework/plugin split
REVERT: 98e8ba2fdf Sync: remove the built-in transports from the framework
REVERT: 14b9a11c67 Sync: remove the Yjs engine from the framework (step 4b)
REVERT: cda266cad7 Sync: make connection retry transport-agnostic (E2)
REVERT: 00d42e9d76 Sync: make createSyncManager engine-neutral (step 4a)
REVERT: f58a913289 Sync: route the collection path through the engine (step 3)
REVERT: 4008ded853 Sync: extract an engine-neutral seam from the sync manager (steps 1-2)
REVERT: 18ac9e5037 Sync: remove the intent-log engine from the framework (now plugin-only)
REVERT: ce2d216dd6 Sync: expose registry test-support + session seam types for engine plugins
REVERT: 01111eee44 Sync: Expose registerSyncEngine / registerSyncTransport private APIs
REVERT: 022ebd91e2 Sync: Make the collaboration framework engine/transport-less by default
REVERT: 8ac75c8cae Docs: Add an as-built architecture overview with mermaid diagrams
REVERT: b3567fd4dc Sync: Add the WebSocket transport (daemon + codec-driven client)
REVERT: 276bd27a87 Sync: Make transports swappable; add HTTP long-polling
REVERT: d0fb51470f Sync: Benchmark harness through the WP_Sync_Engine seam (Phase 3)
REVERT: 60eb412dfa Sync: Inline approval card for parked new-block proposals
REVERT: 08d3ecedcb Sync: Reserve Restore of requires-approval conflicts for capable users
REVERT: 5d24f4cc2c Sync: Stop dropping classic content; sync it as core/freeform
REVERT: 14a82d708b Sync: Sync Custom HTML blocks through the content field (raw-content model)
REVERT: 3be3b1c3e5 Sync: Fix the capture bug that silently blocked Custom HTML sync
REVERT: 65e8bf9369 Sync: Regression-test benign-to-protected attr value transitions
REVERT: 9983a07e54 Sync: Gate raw-attr markup at ingest; make block restore an approval
REVERT: b63d141b62 Sync: Enforce unfiltered_html at intent ingest (requires-approval lane)
REVERT: bb4c4b9e9b Sync: Anchor collaboration conflicts to blocks in the canvas
REVERT: 11165044f7 Sync: Add the collaboration review panel to the document sidebar
REVERT: ca51d70d4d Sync: opt-in wire inspector, server debug envelopes, and Query Monitor breadcrumbs
REVERT: 6a9357f463 Sync: proposal read API and resolution lifecycle (review finding 1.3b complete)
REVERT: 791a40e653 Sync: rewrite intent-log capture onto rich-text coordinates (review finding 1.4)
REVERT: 5149d9a9d3 Sync: bound intent-log growth with compaction checkpoints (review finding 1.6)
REVERT: a71e3103c5 Sync: serialize ingest, pin UTF-16 coordinates, and close the planner policy holes (review findings 1.3a, 1.5, 1.8, 1.9, 3.2, 3.4)
REVERT: 4dad221495 Sync: codec-driven transport recovery and a real lock posture for bootstrap engine mismatch (review findings 1.1, 1.2)
REVERT: 9668010b7b Docs: adversarial review of the intent-log branch (2026-08-05)
REVERT: 00f5867bf9 Sync: deterministic client-side genesis ids (Phase 2d-xiii)
REVERT: ffac7acf99 Sync: title sync for the intent-log engine via an entity property family (Phase 2d-xii)
REVERT: c070625a92 Docs: record Phase 2d-ix through 2d-xi status in ARCHITECTURE.md
REVERT: c27fb74ea7 Sync: verify the intent-log save flow end to end (Phase 2d-xi)
REVERT: 86bb5d76ec Sync: surface intent-log escalations as an editor notice (Phase 2d-x)
REVERT: bbb0d851fe Sync: client-side 409 engine-mismatch handling (Phase 2d-ix)
REVERT: 1a108bb136 Sync: presence for the intent-log engine (Phase 2d-viii)
REVERT: c8e9d59ae9 Sync: cement durable-identity behavior — tests, tooling, and two masked defects (Phase 2d-vii)
REVERT: ffd4f44fb2 Collaboration: durable block identity — stamper, duplicate re-mint, unknown-id adoption (Phase 2d-vi)
REVERT: 37456458bc Sync: content-aware identity adoption — splits no longer steal sibling identity (Phase 2d-v)
REVERT: 4146e4eb2c Sync: give editor-pushed blocks stable clientIds (Phase 2d-iv)
REVERT: bafedefbc6 Sync: e2e coverage for passive-reader and reader-first intent-log scenarios
REVERT: 09c9ae78f2 Sync: never treat editor staleness as user intent (Phase 2d-iii)
REVERT: bf2f8223ca Sync: fix intent-log identity churn and genesis wrapper mismatch (Phase 2d-ii)
REVERT: c03be224b9 Sync: record Phase 2d-i status in the architecture note
REVERT: bf84dcd84a Collaboration: live two-browser intent-log editing (Phase 2d-i)
REVERT: c6ffc0cf77 Sync: record Phase 2c status in the architecture note
REVERT: 12ba54f1f4 Sync: intent-log manager and adapter registration (Phase 2c-ii)
REVERT: 5bd6737e62 Sync: intent-log capture bridge — block trees in, verified intents out (Phase 2c-i)
REVERT: 46fb9020d3 Sync: record Phase 2a/2b status in the architecture note
REVERT: 76b516ded4 Sync: intent-log client session codec (Phase 2b)
REVERT: c16d278721 Collaboration: unit tests for intent-log engine internals and adversarial ids
REVERT: bbd1591b2d Collaboration: WP_Intent_Log_Engine — intents over the polling transport (Phase 2a)
REVERT: 312f3b3fe4 Sync: narrow transports to engine-opaque payloads (Phase 1c)
REVERT: fb9af267ff Sync: graduate the intent-log engine core into packages/sync (Phase 1b)
REVERT: 9276dc7c37 Collaboration: intent-log planner PHP twin with frozen transcript vectors (Phase 1a)
REVERT: 98365687c4 Collaboration: extract a swappable sync engine seam (Phase 0)
REVERT: e61523237a Sync prototype: intent-log engine with field-scoped merge semantics

git-subtree-dir: gutenberg
git-subtree-split: 638392d90882a9f65bbf4a7b1dbaf23036980bfb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant