* chore(ci): compress comments in generated workflow template
Collapses the multi-line YAML comments in the generated
`.github/workflows/react-doctor.yml` to a single sentence per block
(triggers, permissions, concurrency), so a new user sees what each block
does without scrolling past five-line explanations.
No behavior change: same triggers, same permissions (`contents: read`,
`pull-requests: write`, `issues: write`, `statuses: write`), same
`millionco/react-doctor@v2` ref, same concurrency group, same
configuration-knobs reference under the `with:` block.
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore(ci): drop redundant permissions comment in template
Per PR review (#739) — the four `permissions:` keys (`contents: read`,
`pull-requests: write`, `issues: write`, `statuses: write`) are
self-explanatory, so the leading sentence was just noise. Removes the
comment from the generated workflow and tightens the matching
buildWorkflowContent docstring.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
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
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).
* 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>