feat: add doctor command#883
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
I do not see a routing blocker in the doctor command path: the command facet projects through the daemon registry, and the Android probes still run under the request-scoped provider path via the adb executor scope. One thing I would address before merge: |
729bdfb to
484bad5
Compare
|
Re-check after the latest push: this still needs the split before I would call it merge-ready. |
|
GitHub now reports this branch as conflicted against |
80975b4 to
51fb503
Compare
|
Current head 51fb503 has failed required checks:
Smoke checks are still settling, but these CI failures need attention before review/readiness. Please address or rerun if the failures are known infra flakes, then reply with what changed and what was validated. |
…in failures Two gaps found while verifying the doctor command on a real environment: - Metro host/port were uncontrollable from the CLI: --metro-host/--metro-port were rejected by allowedFlags, and readDoctorOptions only read them from req.runtime (populated by remote/connection profiles, never a plain CLI flag). The Metro check's own hint told users to 'pass the correct --metro-host/--metro-port', which did not exist. Declare the flags and read them from req.flags (runtime kept as fallback) so the probe can target any endpoint, e.g. from outside an RN/Expo project directory. - A broken per-platform toolchain was silently hidden: readDoctorDeviceInventory dropped inventory failures whenever any other platform returned devices, so a broken Xcode or Android SDK still reported a green 'pass'. Keep the failures and surface each as a warn (device-<platform>) when other platforms have devices; scoped --platform runs stay quiet.
|
Current head c4193f8 still has failed required checks:
Platform smoke checks are green, but these CI failures block review/readiness. Please address or rerun if they are known infra flakes, then reply with what changed and what was validated. |
Summary
Add a read-only doctor command for RN/Expo/Metro preflight checks, with progressive human output and JSON evidence.
Local doctor now reports available/booted device inventory instead of resolving a default device; stopped simulators/emulators count as available. Adds
doctor --remotefor remote connection setup checks that skip local device probing.Closes #874
Validation
Passed focused CLI/parser/provider doctor coverage, typecheck, oxlint, fallow, build, and live CLI smoke for
doctor,doctor --platform android, anddoctor --remote.pnpm check:unitstill fails in unrelated host/platform tests: Android mocked ADB timeout, iOS status-bar/screenshot timeouts, and an Xcode metadata expectation mismatch.