SITES-49454: [Extensibility] Host issues affects RTE loading on CFE - #153
Merged
Merged
Conversation
10 tasks
…ition The fix in the previous commit lets Extensible create a Host as soon as the extensions list settles, even when it resolves empty — but nothing covered the resulting new-behavior path: extensions arriving *after* that empty resolve. Add a test asserting the existing host is reused (not torn down/recreated) and that load() fires once the real extension list shows up. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
fe-lix-
force-pushed
the
SITES-49454-host-empty-extensions
branch
from
September 21, 2026 12:58
d90756c to
4f16d13
Compare
AmyJZhao
approved these changes
Sep 21, 2026
kokoc
approved these changes
Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Supersedes #152 with the same fix, plus an added regression test.
When the CF Editor's extension point resolves to zero extensions,
Extensible.tsxused to skip creating theHostobject entirely, sohoststayedundefinedforever and any consumer gated on host readiness (CFE's TipTap RTE viauseRTEBeforeLoad) hung on its loading skeleton indefinitely. Root cause: PR #94 movednew Host()/setHost()inside the guard that used to gate only.load().This carries over #152's fix unchanged (cherry-picked, same author/commit): gate host creation on
extensionListFetchedinstead of onextensionsbeing non-empty, and only skip.load()— not host creation — when there's nothing to load.What's added on top of #152
#152didn't cover the specific new behavior this fix enables: a host created early with zero extensions must be reused (not torn down and recreated) once extensions actually arrive. That path was untested — I verified by hand that it works correctly, then added a test for it so a future refactor can't silently regress it again the way #94 did.Related Issue
SITES-49454
How Has This Been Tested?
npx jest packages/uix-host-react/src/components/Extensible.test.tsx— 15/15 passing (14 existing/from SITES-49454: [Extensibility] Host issues affects RTE loading on CFE #152 + 1 new).origin/mainthat the bug still reproduces there (host never created when extensions resolve empty) before this fix.Open follow-up (not blocking, flagged for awareness)
Per the Jira root-cause comment, CFE readiness is described as depending on
host.loading/ theloadallguestsevent. This fix'sloadExtensions()deliberately never calls.load()when there are zero extensions, soloadallguestsnever fires for that path (thoughhost.loadingisfalseby default, so anything reading that field directly is fine). Worth confirming with whoever ownsuseRTEBeforeLoadinaem-headless-ui-commonsthat readiness doesn't hard-require theloadallguestsevent specifically.Types of changes
Checklist
🤖 Generated with Claude Code