Commit Graph

570 Commits

Author SHA1 Message Date
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
Aiden Bai 3cd81605a6 feat: agent install hint, concurrent lint+dead-code, remove setup delay (#493) 2026-05-26 03:50:15 -07:00
Nisarg Patel e5139e4c5a fix: downgrade react-doctor skill version 2026-05-25 22:54:15 -07:00
Nisarg Patel 8b994b9ac0 chore(skill): bump version to 1.1.1 and refine playbook description
Updated the version of the react-doctor skill from 1.1.0 to 1.1.1. The playbook description has been refined for clarity, emphasizing its role as the single source of truth in the triage process. No functional changes were made to the skill's operation.
2026-05-25 22:54:14 -07:00
Nisarg Patel 61ea050907 feat(skill): add /doctor full-triage workflow that fetches the canonical playbook
The skill body now points the agent at https://www.react.doctor/prompts/react-doctor-agent.md
when the user types `/doctor` or asks for a full triage. The remote playbook is the
single source of truth (same scan -> filter -> triage -> fix -> validate loop as the
daily GitHub Actions bot, adapted for local use), so prompt edits propagate to every
installed agent on the next invocation without re-publishing the skill.

Bumps SKILL.md version 1.0.0 -> 1.1.0.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-25 22:38:06 -07:00
Ray Arayilakath 098a966098 fix(cli): suppress CI and agent interactivity (#492)
* fix(cli): suppress CI and agent interactivity

Use a shared CI-or-agent environment check to skip core progress spinners and optional setup prompts in automated React Doctor runs.

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

* fix(tests): isolate setup prompt CI env

Clear the same CI and coding-agent environment signals used by the prompt guard so setup prompt tests remain deterministic in CI.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 01:36:55 -04:00