dillon1000/react

Commit

[react-devtools-facade] 1/ scaffold package + installFacade building block (#36593)

Introduces **`react-devtools-facade`**, a private, source-only package
of building blocks for React runtime state introspection. Integrates
with Reconciler through React DevTools global hook.

### Plan

The facade is the shared, low-level layer that public,
MCP-server–specific packages build on:

- **`react-devtools-facade` (private)** — installs the React DevTools
global hook and exposes a small, framework-agnostic API: install the
hook, then assemble a set of tools from the returned handle. It installs
*no* tool globals and makes no decision about how tools are surfaced.
- **Integration packages (public)**, e.g. `react-devtools-cdt-mcp` —
compose the facade's tools and target a specific MCP server
(chrome-devtools-mcp first).

This keeps all runtime-introspection logic in one reusable place while
each
integration owns its own protocol, packaging, serialisation and globals.

### This PR

- `installFacade(target = globalThis): Facade` — installs **only**
`__REACT_DEVTOOLS_GLOBAL_HOOK__` (the global React looks for at init)
and returns a `Facade` handle `{hook, fiberRoots, rendererInternals,
profilingState}`. The hook tracks fiber roots on commit and forwards
commits to the profiling state when a session is active; building blocks
read from the returned handle and never touch globals.
- Guards against double-install (mixing with the full DevTools backend).
*Temporary*, will later add compatibility for the RDT extension
scenario.
- Package scaffold: `package.json` (private, source-only), `index.js`,
`README.md`.
- Excluded from the general jest runners; runs under the build-devtools
project, matching `react-devtools-shared` / `react-devtools-extensions`.

> Tool building blocks and `createTools(facade)` land in the follow-ups.
Browse files
Changed paths11 files
First-parent comparison
M .eslintrc.js ModifiedA packages/react-devtools-facade/README.md AddedA packages/react-devtools-facade/index.js AddedA packages/react-devtools-facade/package.json AddedA packages/react-devtools-facade/src/DevToolsFacade.js AddedA packages/react-devtools-facade/src/__tests__/DevToolsFacade-test.js AddedM scripts/jest/config.build.js ModifiedM scripts/jest/config.source-persistent.js ModifiedM scripts/jest/config.source-www.js ModifiedM scripts/jest/config.source-xplat.js ModifiedM scripts/jest/config.source.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…