RTC: Predefined retry schedules for disconnect dialog, make more lenient#76966
Conversation
…ts to fix while disconnected
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
|
Size Change: +159 B (0%) Total Size: 7.74 MB
ℹ️ View Unchanged
|
|
Flaky tests detected in c73fee2. 🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/23868299497
|
…Don't reset the timing intervals on retry
…r the next request
…ent (#76966) * Increase disconnected timeout to disconnect dialog, allow more requests to fix while disconnected * Show disconnected modal only after a failure, not mid-cycle * Decrease disconncted debounce to 25 to allow for the next-try to succeed at roughly 30s * Reduce DISCONNECTED_DEBOUNCE_MS to 16s * Replace backoff system with predefined poll intervals for easier reasoning * Simplify manual retry, reset failure counter * In "Retry" dialog, ensure "Retrying..." stays up for at least 500ms. Don't reset the timing intervals on retry * Change manual retry on the disconnect dialog reset the time to 15s for the next request * Rename isSubsequentRetry to hasRetried * Minor refactor, remove isConnected, showModal ternary * Fix disconnection unit tests Co-authored-by: alecgeatches <alecgeatches@git.wordpress.org> Co-authored-by: chriszarate <czarate@git.wordpress.org> Co-authored-by: ingeniumed <ingeniumed@git.wordpress.org> Co-authored-by: maxschmeling <maxschmeling@git.wordpress.org>
|
I just cherry-picked this PR to the wp/7.0 branch to get it included in the next release: 03a3d23 |
…ent (#76966) * Increase disconnected timeout to disconnect dialog, allow more requests to fix while disconnected * Show disconnected modal only after a failure, not mid-cycle * Decrease disconncted debounce to 25 to allow for the next-try to succeed at roughly 30s * Reduce DISCONNECTED_DEBOUNCE_MS to 16s * Replace backoff system with predefined poll intervals for easier reasoning * Simplify manual retry, reset failure counter * In "Retry" dialog, ensure "Retrying..." stays up for at least 500ms. Don't reset the timing intervals on retry * Change manual retry on the disconnect dialog reset the time to 15s for the next request * Rename isSubsequentRetry to hasRetried * Minor refactor, remove isConnected, showModal ternary * Fix disconnection unit tests Co-authored-by: alecgeatches <alecgeatches@git.wordpress.org> Co-authored-by: chriszarate <czarate@git.wordpress.org> Co-authored-by: ingeniumed <ingeniumed@git.wordpress.org> Co-authored-by: maxschmeling <maxschmeling@git.wordpress.org>
This updates the pinned hash from the `gutenberg` from `e2970ba736edb99e08fb369d4fb0c378189468ee ` to `c15cef1d6b07f666df28dac0383bafb0edfe0914`. The following changes are included: - RTC: Predefined retry schedules for disconnect dialog, make more lenient (WordPress/gutenberg#76966) - Block Editor: Prevent Enter key from inserting paragraphs in contentOnly sections (WordPress/gutenberg#76989) - Cover block: fix embed video background Error 153 in editor (WordPress/gutenberg#76904) - Restore original template registration tests alongside activation variants (WordPress/gutenberg#77068) - Avoid stale values in core/cover block for RTC compatibility (WordPress/gutenberg#76916) - Bump oras-project/setup-oras (WordPress/gutenberg#77096) (WordPress/gutenberg#77110) - RTC: Change SyncConnectionModal to isSyncConnectionErrorHandled filter and drop IS_GUTENBERG_PLUGIN check (WordPress/gutenberg#76853) - contentOnly template lock: Fix block insertion and removal rules (WordPress/gutenberg#77119) - Global Styles Revisions: Fix footer overflow (WordPress/gutenberg#77103) - Revision: Fix 'Show changes' button reset state (WordPress/gutenberg#77122) - Link picker: Decode HTML entities in link preview title (WordPress/gutenberg#77170) - Connectors: don't clobber third-party custom render in registerDefaultConnectors (WordPress/gutenberg#77116) - Connectors: Replace speak() with notice store for state changes (WordPress/gutenberg#77174) - Core Data: Fix 'useEntityProp' for raw attributes (WordPress/gutenberg#77120) - Fix PatternsActions prop name from postType to type (WordPress/gutenberg#77251) - Fix: restore editor canvas padding in classic themes (WordPress/gutenberg#76864) - RTC: Add filterable flag for meta box RTC compatibility (WordPress/gutenberg#76939) - Fix failing 'WP_HTTP_Polling_Sync_Server' unit test (WordPress/gutenberg#77025) (WordPress/gutenberg#77325) - Edit Post: Fix warning in 'useMetaBoxInitialization' hook (WordPress/gutenberg#77311) - Update the page slug we link to for the AI plugin after the plugin has been installed and activated (WordPress/gutenberg#77336) - Test: Connectors Point to the righ page. (WordPress/gutenberg#77272) - Post Editor: Store metaboxes RTC-compatible flag on location entries (WordPress/gutenberg#77361) - Core Abilities: Export initialization promise as `ready` (WordPress/gutenberg#77254) - Block Editor: Strip per-block custom CSS on save for users without edit_css (WordPress/gutenberg#76650) - Add heading level 1 for the fonts page (WordPress/gutenberg#77482) - Connectors: Treat network-active plugins as active in plugin status check (WordPress/gutenberg#77661) - RTC: Fix disconnect dialog due to uneditable entity (WordPress/gutenberg#77242) - RTC: Fix "Connection Lost" dialog when too many entities are loaded (WordPress/gutenberg#77631) - RTC: Fix "Edit as HTML" content reset during collaboration (WordPress/gutenberg#77043) - RTC: Add optional `shouldSync` function to entity sync config (WordPress/gutenberg#76947) - RTC: Fixed orphaned meta causing dirty editor state (WordPress/gutenberg#77529) - Ensure "Retry" button is stable during retries (WordPress/gutenberg#77234) - Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713) - Template parts: make 'Detach' context menu item consistent across patterns and template parts (WordPress/gutenberg#77581) - Remove sandbox `allow-same-origin` for core/html blocks (Merge WordPress/gutenberg#77212 to `wp/7.0`) (WordPress/gutenberg#77699) - Added Context for Next/Prev Enlarge Image (WordPress/gutenberg#76967) - Backport: Writing Flow: fix arrow keys skipping paragraph containing link (WordPress/gutenberg#77478) - Revisions: Improve screen reader accessibility for diff markers region and slider (WordPress/gutenberg#77660) - Connectors: Add role="list" wrapper to connector cards for valid ARIA structure (WordPress/gutenberg#77689) - Command Palette: Fix macOs label for sites unable to determine UA via PHP (WordPress/gutenberg#77638) - RTC: Fix inline inserter reset on update sync (WordPress/gutenberg#76980) (WordPress/gutenberg#77706) - Connectors: keep focus on action Button during install (WordPress/gutenberg#77544) - Added Translator Context for Reply (WordPress/gutenberg#77891) - Editor: Improve revisions diff pairing performance (WordPress/gutenberg#77126) - Core Data: Treat single-item responses specially (WordPress/gutenberg#76318) - Site editor: preserve non-global styles in pattern previews (WordPress/gutenberg#77957) - RTC: Fix divergence when two offline users reconnect (WordPress/gutenberg#77980) - RTC: Fix compaction unit test (WordPress/gutenberg#77986) - Connectors: Stop e2e capability restriction from leaking across specs (WordPress/gutenberg#77857) - Connectors: Clarify AI plugin callout copy (WordPress/gutenberg#78043) - Fix: Only auto register settings if the plugin the connector references is installed and active. (WordPress/gutenberg#77273) - Connectors: Add is_active callback support to plugin registration (WordPress/gutenberg#77897) - RTC: Fix race condition on room creation which can cause a split update log (WordPress/gutenberg#77675) - RTC: Fix find_canonical_storage_post_id() always returning null (WordPress/gutenberg#78053) - i18n: add context to scale (WordPress/gutenberg#76917) - Revisions: Simplify fetching (WordPress/gutenberg#77086) - e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923) - Editor: Paginate revisions slider by 100 per page (WordPress/gutenberg#77200) (WordPress/gutenberg#78070) - Revisions: Add diagonal stripe patterns to diff markers to avoid color-only distinction (WordPress/gutenberg#77904) - Revision: Fix failing e2e test (WordPress/gutenberg#78079) - Real-time collaboration: Bundle @wordpress/sync instead of exposing as wp.sync (WordPress/gutenberg#78085) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/e2970ba736edb99e08fb369d4fb0c378189468ee…c15cef1d6b07f666df28dac0383bafb0edfe0914. Log created with: git log --reverse --format="- %s" e2970ba736edb99e08fb369d4fb0c378189468ee..c15cef1d6b07f666df28dac0383bafb0edfe0914 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy See #64595. git-svn-id: https://develop.svn.wordpress.org/trunk@62333 602fd350-edb4-49c9-b593-d223f7449a82
This updates the pinned hash from the `gutenberg` from `e2970ba736edb99e08fb369d4fb0c378189468ee ` to `c15cef1d6b07f666df28dac0383bafb0edfe0914`. The following changes are included: - RTC: Predefined retry schedules for disconnect dialog, make more lenient (WordPress/gutenberg#76966) - Block Editor: Prevent Enter key from inserting paragraphs in contentOnly sections (WordPress/gutenberg#76989) - Cover block: fix embed video background Error 153 in editor (WordPress/gutenberg#76904) - Restore original template registration tests alongside activation variants (WordPress/gutenberg#77068) - Avoid stale values in core/cover block for RTC compatibility (WordPress/gutenberg#76916) - Bump oras-project/setup-oras (WordPress/gutenberg#77096) (WordPress/gutenberg#77110) - RTC: Change SyncConnectionModal to isSyncConnectionErrorHandled filter and drop IS_GUTENBERG_PLUGIN check (WordPress/gutenberg#76853) - contentOnly template lock: Fix block insertion and removal rules (WordPress/gutenberg#77119) - Global Styles Revisions: Fix footer overflow (WordPress/gutenberg#77103) - Revision: Fix 'Show changes' button reset state (WordPress/gutenberg#77122) - Link picker: Decode HTML entities in link preview title (WordPress/gutenberg#77170) - Connectors: don't clobber third-party custom render in registerDefaultConnectors (WordPress/gutenberg#77116) - Connectors: Replace speak() with notice store for state changes (WordPress/gutenberg#77174) - Core Data: Fix 'useEntityProp' for raw attributes (WordPress/gutenberg#77120) - Fix PatternsActions prop name from postType to type (WordPress/gutenberg#77251) - Fix: restore editor canvas padding in classic themes (WordPress/gutenberg#76864) - RTC: Add filterable flag for meta box RTC compatibility (WordPress/gutenberg#76939) - Fix failing 'WP_HTTP_Polling_Sync_Server' unit test (WordPress/gutenberg#77025) (WordPress/gutenberg#77325) - Edit Post: Fix warning in 'useMetaBoxInitialization' hook (WordPress/gutenberg#77311) - Update the page slug we link to for the AI plugin after the plugin has been installed and activated (WordPress/gutenberg#77336) - Test: Connectors Point to the righ page. (WordPress/gutenberg#77272) - Post Editor: Store metaboxes RTC-compatible flag on location entries (WordPress/gutenberg#77361) - Core Abilities: Export initialization promise as `ready` (WordPress/gutenberg#77254) - Block Editor: Strip per-block custom CSS on save for users without edit_css (WordPress/gutenberg#76650) - Add heading level 1 for the fonts page (WordPress/gutenberg#77482) - Connectors: Treat network-active plugins as active in plugin status check (WordPress/gutenberg#77661) - RTC: Fix disconnect dialog due to uneditable entity (WordPress/gutenberg#77242) - RTC: Fix "Connection Lost" dialog when too many entities are loaded (WordPress/gutenberg#77631) - RTC: Fix "Edit as HTML" content reset during collaboration (WordPress/gutenberg#77043) - RTC: Add optional `shouldSync` function to entity sync config (WordPress/gutenberg#76947) - RTC: Fixed orphaned meta causing dirty editor state (WordPress/gutenberg#77529) - Ensure "Retry" button is stable during retries (WordPress/gutenberg#77234) - Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713) - Template parts: make 'Detach' context menu item consistent across patterns and template parts (WordPress/gutenberg#77581) - Remove sandbox `allow-same-origin` for core/html blocks (Merge WordPress/gutenberg#77212 to `wp/7.0`) (WordPress/gutenberg#77699) - Added Context for Next/Prev Enlarge Image (WordPress/gutenberg#76967) - Backport: Writing Flow: fix arrow keys skipping paragraph containing link (WordPress/gutenberg#77478) - Revisions: Improve screen reader accessibility for diff markers region and slider (WordPress/gutenberg#77660) - Connectors: Add role="list" wrapper to connector cards for valid ARIA structure (WordPress/gutenberg#77689) - Command Palette: Fix macOs label for sites unable to determine UA via PHP (WordPress/gutenberg#77638) - RTC: Fix inline inserter reset on update sync (WordPress/gutenberg#76980) (WordPress/gutenberg#77706) - Connectors: keep focus on action Button during install (WordPress/gutenberg#77544) - Added Translator Context for Reply (WordPress/gutenberg#77891) - Editor: Improve revisions diff pairing performance (WordPress/gutenberg#77126) - Core Data: Treat single-item responses specially (WordPress/gutenberg#76318) - Site editor: preserve non-global styles in pattern previews (WordPress/gutenberg#77957) - RTC: Fix divergence when two offline users reconnect (WordPress/gutenberg#77980) - RTC: Fix compaction unit test (WordPress/gutenberg#77986) - Connectors: Stop e2e capability restriction from leaking across specs (WordPress/gutenberg#77857) - Connectors: Clarify AI plugin callout copy (WordPress/gutenberg#78043) - Fix: Only auto register settings if the plugin the connector references is installed and active. (WordPress/gutenberg#77273) - Connectors: Add is_active callback support to plugin registration (WordPress/gutenberg#77897) - RTC: Fix race condition on room creation which can cause a split update log (WordPress/gutenberg#77675) - RTC: Fix find_canonical_storage_post_id() always returning null (WordPress/gutenberg#78053) - i18n: add context to scale (WordPress/gutenberg#76917) - Revisions: Simplify fetching (WordPress/gutenberg#77086) - e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923) - Editor: Paginate revisions slider by 100 per page (WordPress/gutenberg#77200) (WordPress/gutenberg#78070) - Revisions: Add diagonal stripe patterns to diff markers to avoid color-only distinction (WordPress/gutenberg#77904) - Revision: Fix failing e2e test (WordPress/gutenberg#78079) - Real-time collaboration: Bundle @wordpress/sync instead of exposing as wp.sync (WordPress/gutenberg#78085) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/e2970ba736edb99e08fb369d4fb0c378189468ee…c15cef1d6b07f666df28dac0383bafb0edfe0914. Log created with: git log --reverse --format="- %s" e2970ba736edb99e08fb369d4fb0c378189468ee..c15cef1d6b07f666df28dac0383bafb0edfe0914 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy See #64595. Built from https://develop.svn.wordpress.org/trunk@62333 git-svn-id: http://core.svn.wordpress.org/trunk@61614 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This updates the pinned hash from the `gutenberg` from `e2970ba736edb99e08fb369d4fb0c378189468ee ` to `c15cef1d6b07f666df28dac0383bafb0edfe0914`. The following changes are included: - RTC: Predefined retry schedules for disconnect dialog, make more lenient (WordPress/gutenberg#76966) - Block Editor: Prevent Enter key from inserting paragraphs in contentOnly sections (WordPress/gutenberg#76989) - Cover block: fix embed video background Error 153 in editor (WordPress/gutenberg#76904) - Restore original template registration tests alongside activation variants (WordPress/gutenberg#77068) - Avoid stale values in core/cover block for RTC compatibility (WordPress/gutenberg#76916) - Bump oras-project/setup-oras (WordPress/gutenberg#77096) (WordPress/gutenberg#77110) - RTC: Change SyncConnectionModal to isSyncConnectionErrorHandled filter and drop IS_GUTENBERG_PLUGIN check (WordPress/gutenberg#76853) - contentOnly template lock: Fix block insertion and removal rules (WordPress/gutenberg#77119) - Global Styles Revisions: Fix footer overflow (WordPress/gutenberg#77103) - Revision: Fix 'Show changes' button reset state (WordPress/gutenberg#77122) - Link picker: Decode HTML entities in link preview title (WordPress/gutenberg#77170) - Connectors: don't clobber third-party custom render in registerDefaultConnectors (WordPress/gutenberg#77116) - Connectors: Replace speak() with notice store for state changes (WordPress/gutenberg#77174) - Core Data: Fix 'useEntityProp' for raw attributes (WordPress/gutenberg#77120) - Fix PatternsActions prop name from postType to type (WordPress/gutenberg#77251) - Fix: restore editor canvas padding in classic themes (WordPress/gutenberg#76864) - RTC: Add filterable flag for meta box RTC compatibility (WordPress/gutenberg#76939) - Fix failing 'WP_HTTP_Polling_Sync_Server' unit test (WordPress/gutenberg#77025) (WordPress/gutenberg#77325) - Edit Post: Fix warning in 'useMetaBoxInitialization' hook (WordPress/gutenberg#77311) - Update the page slug we link to for the AI plugin after the plugin has been installed and activated (WordPress/gutenberg#77336) - Test: Connectors Point to the righ page. (WordPress/gutenberg#77272) - Post Editor: Store metaboxes RTC-compatible flag on location entries (WordPress/gutenberg#77361) - Core Abilities: Export initialization promise as `ready` (WordPress/gutenberg#77254) - Block Editor: Strip per-block custom CSS on save for users without edit_css (WordPress/gutenberg#76650) - Add heading level 1 for the fonts page (WordPress/gutenberg#77482) - Connectors: Treat network-active plugins as active in plugin status check (WordPress/gutenberg#77661) - RTC: Fix disconnect dialog due to uneditable entity (WordPress/gutenberg#77242) - RTC: Fix "Connection Lost" dialog when too many entities are loaded (WordPress/gutenberg#77631) - RTC: Fix "Edit as HTML" content reset during collaboration (WordPress/gutenberg#77043) - RTC: Add optional `shouldSync` function to entity sync config (WordPress/gutenberg#76947) - RTC: Fixed orphaned meta causing dirty editor state (WordPress/gutenberg#77529) - Ensure "Retry" button is stable during retries (WordPress/gutenberg#77234) - Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713) - Template parts: make 'Detach' context menu item consistent across patterns and template parts (WordPress/gutenberg#77581) - Remove sandbox `allow-same-origin` for core/html blocks (Merge WordPress/gutenberg#77212 to `wp/7.0`) (WordPress/gutenberg#77699) - Added Context for Next/Prev Enlarge Image (WordPress/gutenberg#76967) - Backport: Writing Flow: fix arrow keys skipping paragraph containing link (WordPress/gutenberg#77478) - Revisions: Improve screen reader accessibility for diff markers region and slider (WordPress/gutenberg#77660) - Connectors: Add role="list" wrapper to connector cards for valid ARIA structure (WordPress/gutenberg#77689) - Command Palette: Fix macOs label for sites unable to determine UA via PHP (WordPress/gutenberg#77638) - RTC: Fix inline inserter reset on update sync (WordPress/gutenberg#76980) (WordPress/gutenberg#77706) - Connectors: keep focus on action Button during install (WordPress/gutenberg#77544) - Added Translator Context for Reply (WordPress/gutenberg#77891) - Editor: Improve revisions diff pairing performance (WordPress/gutenberg#77126) - Core Data: Treat single-item responses specially (WordPress/gutenberg#76318) - Site editor: preserve non-global styles in pattern previews (WordPress/gutenberg#77957) - RTC: Fix divergence when two offline users reconnect (WordPress/gutenberg#77980) - RTC: Fix compaction unit test (WordPress/gutenberg#77986) - Connectors: Stop e2e capability restriction from leaking across specs (WordPress/gutenberg#77857) - Connectors: Clarify AI plugin callout copy (WordPress/gutenberg#78043) - Fix: Only auto register settings if the plugin the connector references is installed and active. (WordPress/gutenberg#77273) - Connectors: Add is_active callback support to plugin registration (WordPress/gutenberg#77897) - RTC: Fix race condition on room creation which can cause a split update log (WordPress/gutenberg#77675) - RTC: Fix find_canonical_storage_post_id() always returning null (WordPress/gutenberg#78053) - i18n: add context to scale (WordPress/gutenberg#76917) - Revisions: Simplify fetching (WordPress/gutenberg#77086) - e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923) - Editor: Paginate revisions slider by 100 per page (WordPress/gutenberg#77200) (WordPress/gutenberg#78070) - Revisions: Add diagonal stripe patterns to diff markers to avoid color-only distinction (WordPress/gutenberg#77904) - Revision: Fix failing e2e test (WordPress/gutenberg#78079) - Real-time collaboration: Bundle @wordpress/sync instead of exposing as wp.sync (WordPress/gutenberg#78085) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/e2970ba736edb99e08fb369d4fb0c378189468ee…c15cef1d6b07f666df28dac0383bafb0edfe0914. Log created with: git log --reverse --format="- %s" e2970ba736edb99e08fb369d4fb0c378189468ee..c15cef1d6b07f666df28dac0383bafb0edfe0914 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy Reviewed by desrosj. Merges [62333] to the 7.0 branch. Props ellatrix, desrosj. See #64595. git-svn-id: https://develop.svn.wordpress.org/branches/7.0@62335 602fd350-edb4-49c9-b593-d223f7449a82
This updates the pinned hash from the `gutenberg` from `e2970ba736edb99e08fb369d4fb0c378189468ee ` to `c15cef1d6b07f666df28dac0383bafb0edfe0914`. The following changes are included: - RTC: Predefined retry schedules for disconnect dialog, make more lenient (WordPress/gutenberg#76966) - Block Editor: Prevent Enter key from inserting paragraphs in contentOnly sections (WordPress/gutenberg#76989) - Cover block: fix embed video background Error 153 in editor (WordPress/gutenberg#76904) - Restore original template registration tests alongside activation variants (WordPress/gutenberg#77068) - Avoid stale values in core/cover block for RTC compatibility (WordPress/gutenberg#76916) - Bump oras-project/setup-oras (WordPress/gutenberg#77096) (WordPress/gutenberg#77110) - RTC: Change SyncConnectionModal to isSyncConnectionErrorHandled filter and drop IS_GUTENBERG_PLUGIN check (WordPress/gutenberg#76853) - contentOnly template lock: Fix block insertion and removal rules (WordPress/gutenberg#77119) - Global Styles Revisions: Fix footer overflow (WordPress/gutenberg#77103) - Revision: Fix 'Show changes' button reset state (WordPress/gutenberg#77122) - Link picker: Decode HTML entities in link preview title (WordPress/gutenberg#77170) - Connectors: don't clobber third-party custom render in registerDefaultConnectors (WordPress/gutenberg#77116) - Connectors: Replace speak() with notice store for state changes (WordPress/gutenberg#77174) - Core Data: Fix 'useEntityProp' for raw attributes (WordPress/gutenberg#77120) - Fix PatternsActions prop name from postType to type (WordPress/gutenberg#77251) - Fix: restore editor canvas padding in classic themes (WordPress/gutenberg#76864) - RTC: Add filterable flag for meta box RTC compatibility (WordPress/gutenberg#76939) - Fix failing 'WP_HTTP_Polling_Sync_Server' unit test (WordPress/gutenberg#77025) (WordPress/gutenberg#77325) - Edit Post: Fix warning in 'useMetaBoxInitialization' hook (WordPress/gutenberg#77311) - Update the page slug we link to for the AI plugin after the plugin has been installed and activated (WordPress/gutenberg#77336) - Test: Connectors Point to the righ page. (WordPress/gutenberg#77272) - Post Editor: Store metaboxes RTC-compatible flag on location entries (WordPress/gutenberg#77361) - Core Abilities: Export initialization promise as `ready` (WordPress/gutenberg#77254) - Block Editor: Strip per-block custom CSS on save for users without edit_css (WordPress/gutenberg#76650) - Add heading level 1 for the fonts page (WordPress/gutenberg#77482) - Connectors: Treat network-active plugins as active in plugin status check (WordPress/gutenberg#77661) - RTC: Fix disconnect dialog due to uneditable entity (WordPress/gutenberg#77242) - RTC: Fix "Connection Lost" dialog when too many entities are loaded (WordPress/gutenberg#77631) - RTC: Fix "Edit as HTML" content reset during collaboration (WordPress/gutenberg#77043) - RTC: Add optional `shouldSync` function to entity sync config (WordPress/gutenberg#76947) - RTC: Fixed orphaned meta causing dirty editor state (WordPress/gutenberg#77529) - Ensure "Retry" button is stable during retries (WordPress/gutenberg#77234) - Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713) - Template parts: make 'Detach' context menu item consistent across patterns and template parts (WordPress/gutenberg#77581) - Remove sandbox `allow-same-origin` for core/html blocks (Merge WordPress/gutenberg#77212 to `wp/7.0`) (WordPress/gutenberg#77699) - Added Context for Next/Prev Enlarge Image (WordPress/gutenberg#76967) - Backport: Writing Flow: fix arrow keys skipping paragraph containing link (WordPress/gutenberg#77478) - Revisions: Improve screen reader accessibility for diff markers region and slider (WordPress/gutenberg#77660) - Connectors: Add role="list" wrapper to connector cards for valid ARIA structure (WordPress/gutenberg#77689) - Command Palette: Fix macOs label for sites unable to determine UA via PHP (WordPress/gutenberg#77638) - RTC: Fix inline inserter reset on update sync (WordPress/gutenberg#76980) (WordPress/gutenberg#77706) - Connectors: keep focus on action Button during install (WordPress/gutenberg#77544) - Added Translator Context for Reply (WordPress/gutenberg#77891) - Editor: Improve revisions diff pairing performance (WordPress/gutenberg#77126) - Core Data: Treat single-item responses specially (WordPress/gutenberg#76318) - Site editor: preserve non-global styles in pattern previews (WordPress/gutenberg#77957) - RTC: Fix divergence when two offline users reconnect (WordPress/gutenberg#77980) - RTC: Fix compaction unit test (WordPress/gutenberg#77986) - Connectors: Stop e2e capability restriction from leaking across specs (WordPress/gutenberg#77857) - Connectors: Clarify AI plugin callout copy (WordPress/gutenberg#78043) - Fix: Only auto register settings if the plugin the connector references is installed and active. (WordPress/gutenberg#77273) - Connectors: Add is_active callback support to plugin registration (WordPress/gutenberg#77897) - RTC: Fix race condition on room creation which can cause a split update log (WordPress/gutenberg#77675) - RTC: Fix find_canonical_storage_post_id() always returning null (WordPress/gutenberg#78053) - i18n: add context to scale (WordPress/gutenberg#76917) - Revisions: Simplify fetching (WordPress/gutenberg#77086) - e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923) - Editor: Paginate revisions slider by 100 per page (WordPress/gutenberg#77200) (WordPress/gutenberg#78070) - Revisions: Add diagonal stripe patterns to diff markers to avoid color-only distinction (WordPress/gutenberg#77904) - Revision: Fix failing e2e test (WordPress/gutenberg#78079) - Real-time collaboration: Bundle @wordpress/sync instead of exposing as wp.sync (WordPress/gutenberg#78085) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/e2970ba736edb99e08fb369d4fb0c378189468ee…c15cef1d6b07f666df28dac0383bafb0edfe0914. Log created with: git log --reverse --format="- %s" e2970ba736edb99e08fb369d4fb0c378189468ee..c15cef1d6b07f666df28dac0383bafb0edfe0914 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy Reviewed by desrosj. Merges [62333] to the 7.0 branch. Props ellatrix, desrosj. See #64595. Built from https://develop.svn.wordpress.org/branches/7.0@62335 git-svn-id: http://core.svn.wordpress.org/branches/7.0@61616 1a063a9b-81f0-0310-95a4-ce76da25c4cd
What?
This PR replaces the exponential backoff and debounce for the disconnect dialog with predefined retry schedules. The dialog now waits through a fixed list of retry times before showing, with separate schedules for solo and collaborative editing. After the dialog appears, retries continue in the background at 30s intervals.
Additionally, the disconnect dialog adds a "Retrying..." state so it's clearer when a connection attempt is being made (even if it fails immediately):
Why?
The previous system used exponential back-off (
pollInterval * 2, capped at 30s) and ran a time-based debounce depending on the number of collaborators. The two mechanisms interacted in ways that made changes like #76704 difficult to reason about.Even though we increased both the poll interval and disconnect debounce by 4x, the exponential math worked out so just one failed request could cause a disconnect dialog:
Because the backoff multiplied the base polling interval, the behavior was different in solo mode, and not in a useful way. Solo editing had fewer retries before showing the dialog, even though solo users are the least likely to hit CRDT conflicts from a brief disconnect. Collaborative editing had more retries, despite being the mode where stale state matters most. Adjusting either the backoff multiplier or the debounce timer required recalculating the tables for both modes to make sure the timing still made sense.
Predefined retry schedules fix all of this by making the timing readable at a glance. Each mode has its own array of delays, and you can see exactly when each retry happens and when the dialog appears without doing any math.
How?
The exponential backoff in the polling manager is replaced with two explicit retry delay arrays in config:
These have been selected sort of arbitrarily, but gives more time for solo connections to reconnect.
Additionally, we no longer will show the dialog mid-cycle. Previously the dialog debounce timer made it so that we might show a dialog mid-cycle with a few seconds left before another retry. Instead, ensure we've just seen a failure before showing the dialog.
Here's the new behavior for both modes:
Testing Instructions
Enable RTC via Settings -> Writing -> "Enable real-time collaboration" checkbox.
Solo editing (dialog after ~26s):
Collaborative editing (dialog after ~15s):
Use of AI Tools
AI assistance: Yes
Tool(s): Claude Code
Used for: Reviewing the previous disconnect timing logic, designing the fixed retry schedule, and implementing the changes