refactor(react-devtools): reuse CLI output and Metro session ownership

Merged
TH
8h ago
+511-417

Summary

Follow-up to #3613, rebased onto main. React inspection and profiling share CLI output, component metadata, backend inspection, and Metro session ownership. Raw profiles are saved atomically before optional prop inspection; interrupted captures retain an explanatory note that successful enrichment replaces.

Review fixes keep Metro scope resolution inside its best-effort boundary, reject inherited component-kind keys, and continue past failures from renderers that cannot confirm ownership. Command tests now exercise the real CLI dispatcher and its exit code.

24 files; 33 fewer production TypeScript lines. No new dependencies or gate exceptions.

Validation

At fe22e77668f9c5aee1f7ea204adb4662aaeb0077:

  • pnpm check:affected --run: all runnable gates passed, including 1,353 related tests across 175 files.
  • Focused DevTools/Metro suite: 157 tests passed; pnpm check:quick passed.
  • Review regressions, same five-suite command:
base 15adb4196ehead fe22e77668
8 failed, 44 passed53 passed
  • Earlier live RN 0.83.1/iOS 26.2 evidence belongs to f21ea8a: tree/find/inspect/errors and profile start/stop/report/commit, 8 commits and 480 expected memo updates. Live validation was not repeated for these review fixes.
  • CI pending on the new head. The previous Smoke Tests failure was a simctl openurl timeout in the snapshot-depth fixture.