Commit Graph

575 Commits

Author SHA1 Message Date
github-actions[bot] 21b42e740a chore: version packages (#554) oxlint-plugin-react-doctor@0.2.11 react-doctor@0.2.11 eslint-plugin-react-doctor@0.2.11 2026-05-28 19:14:32 -04:00
Ray Arayilakath 6f8640f6d9 fix(oxlint-plugin): skip js-tosorted-immutable on React Native/Expo (Hermes) (#546)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 18:38:22 -04:00
Ray Arayilakath 0596d63d1b feat(rn): hint Reanimated .get()/.set() on react-compiler immutability findings (#548)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 18:38:00 -04:00
Ray Arayilakath 646e80c1ed fix(oxlint-plugin): use context.filename instead of deprecated getFilename (#539) (#549)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 18:36:34 -04:00
Ray Arayilakath 19f5f61152 fix(ci): stabilize Windows vitest worker pool (#550)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-28 18:25:33 -04:00
Aiden Bai 7605c9538d chore: version packages for 0.2.10
Prepare the 0.2.10 patch release with expanded changelog entries.
eslint-plugin-react-doctor@0.2.10 react-doctor@0.2.10 oxlint-plugin-react-doctor@0.2.10
2026-05-28 02:46:55 -07:00
Aiden Bai d29cdad64c fix(cli): avoid dead-code scan freezes (#537) 2026-05-28 02:39:09 -07:00
Aiden Bai 7fe3e41131 feat: add Preact framework support and rules (#519) 2026-05-28 02:39:01 -07:00
Aiden Bai 7ab5dbdc35 feat(cli): combine install setup prompts (#535) 2026-05-27 23:48:18 -07:00
Aiden Bai 1c5647cc9c fix(cli): show setup prompt for monorepo scans (#534) 2026-05-27 22:41:40 -07:00
Ray Arayilakath 928f21cd68 MIL-1559: no-giant-component flags non-React TypeScript modules (#525)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-05-27 17:34:25 -07:00
Aiden Bai 849b25dd91 feat(jotai): add three Jotai rules + register jotai bucket (#531) 2026-05-27 17:33:52 -07:00
Ray Arayilakath 07dcb0882c MIL-1560: Fix false positives in control-has-associated-label (#528)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-05-27 17:13:20 -07:00
Aiden Bai f6938f93b8 feat(react-native): add three Pressable / list / ScrollView perf rules (#529) 2026-05-27 16:55:27 -07:00
Aiden Bai a1be777904 feat(state-and-effects): add activity-wraps-effect-heavy-subtree (#532) 2026-05-27 16:55:14 -07:00
Aiden Bai 0ece9c4e08 feat(js-performance): add js-async-reduce-without-awaited-acc (#530) 2026-05-27 16:04:17 -07:00
Aiden Bai dc5f2f0972 feat(rn): add rn-no-renderitem-key rule (#526) 2026-05-27 14:40:01 -07:00
Ray Arayilakath 8244f1f28f docs: consolidate fragmented rule skills (#522)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 04:46:10 -04:00
Rayhan Noufal Arayilakath 27e684c1dd chore: format the damn code gng 🥀 2026-05-27 01:25:32 -07:00
Aiden Bai ef47202cbd fix: remove registry-url and upgrade npm for OIDC trusted publishing
setup-node's registry-url writes an .npmrc with _authToken placeholder
that short-circuits the OIDC exchange. Also need npm 11.5.1+ for
trusted publishing support.
eslint-plugin-react-doctor@0.2.9 oxlint-plugin-react-doctor@0.2.9 react-doctor@0.2.9
2026-05-27 01:03:10 -07:00
github-actions[bot] 4c02514ab8 chore: version packages (#521)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-27 00:57:15 -07:00
Aiden Bai 6531454b95 fix: use pnpm run version in publish workflow 2026-05-27 00:54:37 -07:00
Aiden Bai 30afe81c4a chore: add changeset to test trusted publishing 2026-05-27 00:53:44 -07:00
Aiden Bai d9a6d68509 chore: add trusted publishing workflow via OIDC 2026-05-27 00:53:19 -07:00
Aiden Bai 1b325b8678 fix(test): bump surface-filter test timeout to 60s for Windows CI
The test calls inspect() twice, which exceeds the 30s default on
Windows runners.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 00:29:18 -07:00
Aiden Bai 94af28784f feat(oxlint-plugin): harden React Native list performance rules (#514) 2026-05-27 00:16:42 -07:00
Aiden Bai 71242ad73c feat(oxlint-plugin): add rn-no-falsy-and-render rule (#518) 2026-05-26 23:47:13 -07:00
Aiden Bai 7fa53326e2 feat(oxlint-plugin): improve animation and gesture detection rules (#516) 2026-05-26 23:43:48 -07:00
Aiden Bai 14bad8fad5 feat(oxlint-plugin): expand deprecated package and import detection (#515) 2026-05-26 23:43:22 -07:00
Aiden Bai fc32204674 feat(oxlint-plugin): expand shadow, style, and scroll rules (#517) 2026-05-26 23:41:33 -07:00
Ray Arayilakath 444fbeb760 feat: add skills and docs for writing new rules (#495)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 02:41:23 -04:00
Ray Arayilakath 4e3fa6e10c fix: caution agents on hook dependency fixes (#511)
* fix: caution agents on hook dependency fixes

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: keep hook dependency guidance scoped

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: simplify exhaustive deps guidance

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: add exhaustive deps guidance example

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: expand exhaustive deps example guidance

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 01:58:02 -04:00
Ray Arayilakath 68e7b80053 feat: animate perfect score terminal header (#506)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 23:55:09 -04:00
Aiden Bai e3fd765051 feat(oxlint-plugin): error on manual memoization when React Compiler is enabled (#504) 2026-05-26 20:01:04 -07:00
Ray Arayilakath bfe1b8ed13 [MIL-1555] False positive for tanstack-start-missing-head-content (#487)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 22:09:37 -04:00
Aiden Bai 1fc25d1afe fix 2026-05-26 18:31:56 -07:00
Aiden Bai 07b8a6c3e0 fix: cross-platform spawn errors (#498, #501) and add Windows/macOS CI (#502) 2026-05-26 18:19:41 -07:00
Ray Arayilakath 910645f4c2 [MIL-1547] Recognize subscription.remove() as effect cleanup (#471)
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Ray Arayilakath <me@rayhanadev.com>
2026-05-26 21:12:58 -04:00
Ray Arayilakath 86928b4cdd feat: run formatter pre-commit (#503)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 20:57:17 -04:00
Ray Arayilakath 27ed9a72ef [MIL-1550] fix navigation and Expo image false positives (#481) 2026-05-26 17:47:29 -07:00
Ray Arayilakath b4d7928200 [MIL-1549] Gate expo-image recommendation for bare React Native (#482) 2026-05-26 17:47:03 -07:00
Ray Arayilakath 397b1d7828 [MIL-1548] Fix bottom sheet React Native false positive (#480) 2026-05-26 17:45:31 -07:00
Rayhan Noufal Arayilakath 9e0f96944e chore: run the formatter lol 2026-05-26 17:17:50 -07:00
Aiden Bai e332310146 refactor(api): rename diagnoseModules → diagnoseProjects, clean up API shape
- Single object arg (`DiagnoseProjectsInput`) instead of two positional args
- "Projects" vocabulary matching the rest of the codebase
- Per-project scan options (`deadCode`, `lint`, etc.) flat on the entry
  instead of nested in `config.deadCode`
- `config` on a project entry means `ReactDoctorConfig` directly
- Discriminated union `ProjectResult` (`ok: true | false`) instead of
  separate `modules` + `errors` arrays
2026-05-26 16:23:04 -07:00
Nisarg Patel 87eb13a4ac fix: harden 2026-05-26 16:15:27 -07:00
Aiden Bai a7b72e19a1 feat(api): add diagnoseModules() for native per-module scoring (#499) 2026-05-26 16:13:03 -07:00
Aiden Bai 5690704080 schema 2026-05-26 05:13:34 -07:00
Aiden Bai 28da2ae32a 0.2.7 2026-05-26 05:08:47 -07:00
Aiden Bai eb5157e806 fix: bundle eslint-plugin-react-hooks as a direct dependency
The React Compiler rules (`react-hooks-js/*`) were silently missing in
published builds because `resolveReactHooksJsPlugin` resolved
`eslint-plugin-react-hooks` via `createRequire(import.meta.url)` — which
found the package in the monorepo's devDependencies but not in the
npm-installed package where it was only an optional peer dep.

Move `eslint-plugin-react-hooks` from optional peerDependencies +
devDependencies to a real dependency in both `@react-doctor/core` and
`react-doctor` so the compiler rules fire automatically for any project
with `babel-plugin-react-compiler` detected.
2026-05-26 04:52:11 -07:00
Aiden Bai 81fce1e205 fix 2026-05-26 03:52:45 -07:00