Commit Graph

1865 Commits

Author SHA1 Message Date
Aiden Bai 6d0c35404a Update package.json 2026-06-07 19:27:01 -07:00
Aiden Bai 7cf52d8985 fix license attribution 2026-06-07 19:26:22 -07:00
devin-ai-integration[bot] 727894ace2 fix: skip state-effect rules for async intermediate functions (#726)
Skip the mount-effect state rules (no-initialize-state, no-derived-state,
no-chain-state-updates, no-adjust-state-on-prop-change) when a setter is
reached only indirectly through an async intermediate function — the call
site is synchronous but the setter isn't hoistable to a useState initializer.

Adds resolveToFunction()/resolvesToAsyncFunction() helpers and a shared
isSyncStateSetterCall() predicate, plus regression fixtures for all four rules.

Fixes #722
2026-06-07 04:30:28 -07:00
devin-ai-integration[bot] b4b79addce fix: disable inline-renderItem rules for React Compiler projects (#725)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-07 04:05:50 -07:00
github-actions[bot] b461b2d78e chore: version packages (#724)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
oxlint-plugin-react-doctor@0.4.2 react-doctor@0.4.2 eslint-plugin-react-doctor@0.4.2
2026-06-07 03:30:44 -07:00
Aiden Bai e181ac1a8d chore(release): align package versions and lockstep them via changesets
Bump @react-doctor/core, @react-doctor/api, and @react-doctor/language-server
to 0.4.1 so all six release-managed packages share one version line, and add
them to the changesets `fixed` group so every future release bumps them
together. Keeps versions from drifting apart again (next release -> 0.4.2 across
the board).
2026-06-07 03:28:43 -07:00
Aiden Bai d17dc87865 feat(config): add defineConfig helper and read react-doctor.config.json fallback (#721) 2026-06-07 03:09:29 -07:00
github-actions[bot] 7d4b9960d2 chore: version packages (#703) react-doctor@0.4.1 oxlint-plugin-react-doctor@0.4.1 eslint-plugin-react-doctor@0.4.1 2026-06-07 02:40:55 -07:00
devin-ai-integration[bot] c793cb1904 chore: remove minor changeset for prefer-explicit-variants (#720)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-07 02:28:46 -07:00
devin-ai-integration[bot] f61adc4b66 chore: bump deslop-js from ^0.0.20 to ^0.0.21 (#719)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-07 00:24:42 -07:00
Aiden Bai ca5ea4c61e fix 2026-06-06 23:33:47 -07:00
Aiden Bai a11faa2999 fix 2026-06-06 23:25:44 -07:00
Aiden Bai b1a22efdf7 refactor(oxlint): extract shared isBooleanPrefixedPropName util (#704) 2026-06-06 20:29:38 -07:00
devin-ai-integration[bot] fe5f3de330 fix: disable server-fetch-without-revalidate for Next.js 15+ (#715)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 20:25:01 -07:00
devin-ai-integration[bot] ee9ab336d3 fix(nextjs): scope useSearchParams/Suspense rule to page files only (#695) (#714)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 20:22:27 -07:00
devin-ai-integration[bot] 65bab646e1 fix: close stdin on oxlint child processes to prevent WSL hang (#716)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 20:10:58 -07:00
devin-ai-integration[bot] ee980d98e0 chore: bump deslop-js from ^0.0.19 to ^0.0.20 (#717)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 19:46:04 -07:00
devin-ai-integration[bot] 36ecd053cf fix: search untracked files in require-reduced-motion check (#696) (#711)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 19:33:53 -07:00
devin-ai-integration[bot] 64667dae16 fix(no-unknown-property): skip tw attribute in Next.js OG image files (#710)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 19:33:10 -07:00
devin-ai-integration[bot] 73dcb2040d fix(nextjs-no-img-element): skip Next.js metadata image routes (#709)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 19:32:55 -07:00
devin-ai-integration[bot] dc35070a50 fix(only-export-components): treat Expo Router _layout files as entry points (#713)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-06 17:46:26 -07:00
Ray Arayilakath 15bd9d8617 feat(ci): surface React Doctor results on main + offer v1→v2 action upgrade (#706)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-06 04:16:24 -04:00
devin-ai-integration[bot] 6216430f93 feat(correctness): add no-jsx-element-type rule (#689)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-05 22:49:58 -07:00
devin-ai-integration[bot] 831cf3fbfd feat(tanstack-query): add query-destructure-result rule (#688)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-05 22:49:25 -07:00
devin-ai-integration[bot] 5448962028 fix: resolve .cmd wrappers on Windows so agent handoff launches correctly (#686)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-04 21:32:45 -07:00
devin-ai-integration[bot] a5c6993064 feat(nextjs): add 7 new Next.js best-practice rules from vercel-labs skill (#680)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-04 21:26:17 -07:00
github-actions[bot] f75ec7a1e7 chore: version packages (#682) react-doctor@0.4.0 oxlint-plugin-react-doctor@0.4.0 eslint-plugin-react-doctor@0.4.0 2026-06-04 21:21:42 -04:00
Ray Arayilakath 75932719d1 feat(action): add scope input to opt into full-project scans on PRs (#656)
* feat(action): add scope input to opt into full-project scans on PRs

On pull_request events the action scopes the scan to the PR's changed files
(baseline/diff mode), with no way to scan the whole project. A PR that only
adds config/workflow files therefore reports 0 issues even when the project
has obvious problems in untouched files.

Add a 'scope' input: 'changed' (default, unchanged baseline/diff behavior) or
'full'. When full, skip the pr-files and base steps and pass '--diff false' —
the documented full-scan escape hatch, which disables baseline/diff and
overrides any diff value in the project config. The scope value is lowercased
before the bash test so it matches the case-insensitive comparison the GHA
'inputs.scope != full' expressions use.

Co-authored-by: Ray Arayilakath <me@rayhanadev.com>

* style(action): simplify the --diff false comment to plain language

Co-authored-by: Ray Arayilakath <me@rayhanadev.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
v2.0.1
2026-06-04 18:10:02 -04:00
Ray Arayilakath 9a8ad6e40d feat(ci): blocking gate, PR-introduced-issues baseline, inline review comments + CLI flag cleanup (#663)
Co-authored-by: Cursor <cursoragent@cursor.com>
v2.0.0
2026-06-04 17:56:22 -04:00
Ray Arayilakath 915745ef7b feat(language-server): editor language server behind react-doctor experimental-lsp (#681)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 17:43:53 -04:00
github-actions[bot] 6130583376 chore: version packages (#646) eslint-plugin-react-doctor@0.3.0 react-doctor@0.3.0 oxlint-plugin-react-doctor@0.3.0 2026-06-04 04:21:10 -07:00
Aiden Bai cbdff6203d feat(cli): "Add to CI" handoff option + default CI setup in install (#658)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
Co-authored-by: Nisarg Patel <awesomenisarg@gmail.com>
2026-06-04 04:15:05 -07:00
devin-ai-integration[bot] 67be206087 chore: bump deslop-js to ^0.0.19 (#679)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-04 03:49:32 -07:00
devin-ai-integration[bot] d4cc99b2a8 fix: require useState binding proof for setter-pattern rules (#678)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-04 03:39:59 -07:00
Aiden Bai eba20ae9a7 feat(rules): demote 19 low-signal rules to opt-in (#644) 2026-06-04 02:50:01 -07:00
devin-ai-integration[bot] abbb04202e Retire rn-animate-layout-property rule (#677) 2026-06-04 01:00:26 -07:00
devin-ai-integration[bot] 08e1d55da4 fix(cli): allow combining --yes and --full (#676)
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-06-04 00:40:44 -07:00
Aiden Bai 6851a786e5 chore: bump deslop-js to 0.0.17 (#674) 2026-06-03 17:13:50 -07:00
Aiden Bai 5d7b36bc31 Fix Reanimated layout animation false positive (#666) 2026-06-03 17:12:43 -07:00
Aiden Bai 68a0befa1a fix(rules): stop no-wide-letter-spacing flagging uppercase wrapper-prop labels (#673) 2026-06-03 16:33:53 -07:00
Aiden Bai 8e7fb3366f fix(rules): disable prefer-module-scope-static-value under React Compiler (#672) 2026-06-03 16:31:56 -07:00
Aiden Bai 3c05fc4d63 chore: bump deslop-js (#668) 2026-06-03 03:10:32 -07:00
Aiden Bai 4dc48d7bc5 Fix React Compiler context provider value false positive #664 (#667) 2026-06-03 02:19:50 -07:00
Aiden Bai 87440abac8 Fix React Native rule false positives (#662) 2026-06-03 01:41:06 -07:00
Ray Arayilakath e3b106e191 feat(telemetry): emit a per-scan wide event for CI + usage analysis (#660)
Enrich the per-scan Sentry run span with the full run/CI/project/outcome
context (scan mode, score, diagnostics by severity/category, top rule,
lint/dead-code state, and in CI the GitHub event, official-action marker,
forwarded action inputs, and the pull-request gate) so usage and CI behavior
are queryable as spans instead of pre-aggregated counters.

Mint a random per-run runId on the Sentry run context (never a tag or metric
dimension) to correlate the spans of a single run; a workspace invocation's
project scans share one id and per-project span attributes disambiguate. The
wide event's wouldBlock/outcome/exitCode mirror the CLI's real fail-on gate
(ciFailure surface, and no gate in score-only mode). The official GitHub
Action forwards its inputs so action configuration is visible in telemetry.
Telemetry stays anonymized — no repo, owner, username, branch, or path is
sent to Sentry — and --no-score / --no-telemetry opts out.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 00:31:48 -04:00
Nisarg Patel 86911770da fix(cli): refine warning display in diagnostics to improve clarity and focus 2026-06-02 17:51:11 -07:00
Aiden Bai 19b39c0e0d chore: bump deslop-js to 0.0.15 (#659)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-06-02 17:23:01 -07:00
Ray Arayilakath d594f69f26 fix(cli): treat an unreadable --changed-files-from file as a clean error (#655)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 18:19:09 -04:00
Ray Arayilakath eab6dc2747 fix(core): skip un-enumerable directories during subproject discovery (#654)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 18:18:57 -04:00
Ray Arayilakath f375dbb24f chore(skills): add /ship release pipeline skill (#651)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 15:47:18 -04:00