Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
54c9647
Add setting to enable real-time collaboration
chriszarate Feb 10, 2026
79c7f35
Register collaboration post meta
chriszarate Feb 10, 2026
82a4b36
Add sync provider endpoints
chriszarate Feb 10, 2026
9a2578f
Bugfix: When collaboration is enabled, always target autosave revision
chriszarate Feb 10, 2026
2c1e87d
Move post meta registration to wp_create_initial_post_meta
chriszarate Feb 10, 2026
b9d2caf
Move post type registration to create_initial_post_types
chriszarate Feb 10, 2026
312e944
Update REST namespace to match convention
chriszarate Feb 10, 2026
c7aff9e
Add localization
chriszarate Feb 10, 2026
9a3351b
Use array property notation instead of get_param
chriszarate Feb 10, 2026
43bc989
Miscellaneous type fixes
chriszarate Feb 10, 2026
757091d
Update storage mechanism
chriszarate Feb 10, 2026
b503cef
Fix type hint
chriszarate Feb 13, 2026
e8b2c0d
Tests: Add enable_real_time_collaboration to REST settings test expec…
pkevan Feb 17, 2026
5608aa1
Type hint and annotation updates
chriszarate Feb 17, 2026
d7038cf
Add missing label
chriszarate Feb 17, 2026
db677de
Improve room input validation
chriszarate Feb 17, 2026
81b9a8d
Change const name to remove unit
chriszarate Feb 17, 2026
374181b
Add static keyword
chriszarate Feb 17, 2026
2becd6c
Remove object coercion
chriszarate Feb 17, 2026
9f1339b
Return boolean from storage class methods that mutate data
chriszarate Feb 17, 2026
0b3d1a7
Improve entity handling around object IDs
chriszarate Feb 17, 2026
0226f6a
Account for empty awareness array
chriszarate Feb 17, 2026
d2abae1
Simplify timestamp sort
chriszarate Feb 17, 2026
93f97f3
Add missing @since markers
chriszarate Feb 17, 2026
ba49b8a
Remove unused storage initializer
chriszarate Feb 17, 2026
0ab36f5
Update test mocks
chriszarate Feb 17, 2026
ec89531
Improve return types
chriszarate Feb 17, 2026
bc1245f
Add unit tests
chriszarate Feb 18, 2026
00f63cc
Guard setAccessible()
chriszarate Feb 18, 2026
c254d4d
Backport should_compact change from Gutenberg
chriszarate Feb 18, 2026
7669983
Backport cap check from Gutenberg
chriszarate Feb 18, 2026
12cf2f1
Guard registration of post type and REST endpoints if option is not e…
chriszarate Feb 18, 2026
f001552
Remove unnecessary is_wp_error check
chriszarate Feb 18, 2026
3e8e22b
Improvements from static analysis
chriszarate Feb 18, 2026
0c2cdad
Update fixture now that endpoint is optional
chriszarate Feb 18, 2026
5c5821f
Remove text domain
chriszarate Feb 18, 2026
3e64196
Error code updates
chriszarate Feb 18, 2026
d95ee6c
Filter and validate updates from post meta
chriszarate Feb 18, 2026
392bd7c
Prefer (int) coercion instead of absint
chriszarate Feb 18, 2026
20cfe6c
Improve docblocks
chriszarate Feb 18, 2026
f6fdbd3
Create one sync storage post per room
chriszarate Feb 18, 2026
571ecd2
Add cap check for single taxonomy term entities
chriszarate Feb 19, 2026
04782a0
PHPStan level 9
chriszarate Feb 19, 2026
c90ca32
Prefer const for static value
chriszarate Feb 19, 2026
e7c9ecb
Create one sync storage post per room
chriszarate Feb 19, 2026
057e50d
Merge branch 'trunk' into add/collaboration-functionality
ellatrix Feb 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/wp-admin/includes/schema.php
Original file line number Diff line number Diff line change
Expand Up @@ -563,6 +563,9 @@ function populate_options( array $options = array() ) {

// 6.9.0
'wp_notes_notify' => 1,

// 7.0.0
'enable_real_time_collaboration' => 0,
Copy link

Choose a reason for hiding this comment

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

Suggested change
'enable_real_time_collaboration' => 0,
'enable_real_time_collaboration' => 1,

switch on for beta1

Copy link
Author

Choose a reason for hiding this comment

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

I've implemented this in a separate branch that can be merged in this one or separately into trunk:

chriszarate#2

);

// 3.3.0
Expand Down
7 changes: 7 additions & 0 deletions src/wp-admin/options-writing.php
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@
</select>
</td>
</tr>
<tr>
<th scope="row"><label for="enable_real_time_collaboration"><?php _e( 'Collaboration' ); ?></label></th>
<td>
<input name="enable_real_time_collaboration" type="checkbox" id="enable_real_time_collaboration" value="1" <?php checked( '1', get_option( 'enable_real_time_collaboration' ) ); ?> />
<label for="enable_real_time_collaboration"><?php _e( 'Enable real-time collaboration' ); ?></label>
</td>
</tr>
<?php
if ( get_option( 'link_manager_enabled' ) ) :
?>
Expand Down
1 change: 1 addition & 0 deletions src/wp-admin/options.php
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@
'default_email_category',
'default_link_category',
'default_post_format',
'enable_real_time_collaboration',
),
);
$allowed_options['misc'] = array();
Expand Down
24 changes: 24 additions & 0 deletions src/wp-includes/collaboration.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php
/**
* Bootstraps collaborative editing.
*
* @package WordPress
* @since 7.0.0
*/

/**
* Injects the real-time collaboration setting into a global variable.
*
* @since 7.0.0
*
* @access private
*/
function wp_collaboration_inject_setting() {
if ( get_option( 'enable_real_time_collaboration' ) ) {
wp_add_inline_script(
'wp-core-data',
'window._wpCollaborationEnabled = true;',
'after'
);
}
}
Loading
Loading