Commit Graph

205 Commits

Author SHA1 Message Date
Skosh 1d3e4a6061 fix(deps): remove shameful hoisting (#1689)
Co-authored-by: Aiden Bai <aiden@million.dev>
2026-08-27 17:20:49 -07:00
Aiden Bai 2b0f06ec70 perf: profile and optimize rule execution (#1663) 2026-08-20 22:05:20 -07:00
Aiden Bai 1971506440 feat(cli): add React-aware runtime traces (#1653)
* feat(cli): record React-aware browser traces

Add an interactive Playwright scanner that streams DevTools traces to disk and reports React rendering hotspots for humans and agents.

* fix(cli): use shared telemetry anonymizer

Keep runtime URL redaction on the canonical core utility after the telemetry helper consolidation.

* feat(cli): visualize component renders during traces

Flash labeled component outlines during runtime scans so users can connect slow interactions to the React work they trigger.

* feat(skill): add runtime performance workflow

Guide agents through repeatable React traces so performance findings stay tied to measured interactions.

* docs(cli): guide runtime scan setup

Explain the recording flow, browser isolation, authenticated sessions, output formats, and trace privacy directly in command help.

* fix(cli): harden runtime trace capture

Preserve evidence across navigations while keeping structured output, telemetry, trace files, and attached-browser cleanup safe under failures and cancellation.

* fix(cli): preserve latest navigation evidence

Keep cross-document layout shifts comparable and retain the most recent bounded performance entries so the recorded interaction remains represented.

* fix(cli): bound runtime scan browser resources

Prevent trace deadlocks, cross-tab capture, and unbounded browser evidence while preserving navigation data through an isolated validated relay.

* fix(cli): preserve busy-page runtime snapshots

Stop tracing concurrently with final probe collection and allow busy pages enough time to flush their bounded performance evidence.

* feat(cli): prompt for runtime scan URL

Let people start an interactive runtime scan without remembering the URL argument while keeping agents and CI deterministic.

* feat(cli): suggest local apps for runtime scans

Replace the bare URL field with a polished chooser that discovers common localhost development servers while preserving custom URL entry.

* fix(cli): use scan terminology in runtime flow

Keep the interactive copy aligned with the command users invoked instead of switching between recording and profiling language.

* fix(cli): center runtime chooser in full terminal

Render the interactive URL chooser as a terminal-sized view so it no longer appears anchored to the previous cursor position.

* fix(cli): harden runtime scan edge cases

Capture popup evidence without leaking browser pages, support redirected interactive output and IPv6 localhost apps, and keep bounded reports honest.
2026-08-16 19:34:13 -07:00
Aiden Bai 28a1a9fd35 chore: add bippy dependency 2026-08-15 00:11:03 +00:00
Aiden Bai ffc2d14254 chore: upgrade Oxc toolchain (#1651) 2026-08-13 23:31:27 -07:00
Aiden Bai 8c2f03aea9 feat: make React cleanup first-class (#1624)
* feat: make React cleanup first-class

* refactor: remove editor integrations

* fix: harden React cleanup analysis

* fix: detect default export duplication roots

* fix: unwrap typed duplication roots

* feat: add opt-in project analysis rules

* fix: canonicalize project analysis paths

* fix: harden project analysis precision

* fix: recognize cross-platform project entries

* fix: eliminate project analysis false positives

* fix: harden project analysis reachability

* fix: canonicalize project analysis inputs

* fix: resolve project analysis review findings

* fix: eliminate residual project analysis false positives

* fix: ignore commented registry previews

* fix: eliminate project analysis false positives

* fix: normalize project analysis paths across platforms

* fix: normalize Nextra theme path identity

* test: canonicalize convention fixture paths

* fix: preserve project analysis provenance

* fix: harden project analysis precision

* fix: honor project analysis boundaries

* fix: recognize conditional config plugins

* fix: recognize executable project references

* fix: recognize Stencil tool contracts

* fix: recognize nested tool references

* fix: recognize project setup contracts

* fix: recognize generated and local package consumers

* fix: recognize static template package references

* fix: recognize nested package runtime contracts

* fix: close project analysis parser gaps

* fix: parse project conventions structurally

* refactor: replace structural scanners with parsers

* fix: recognize functional Next CSS config

* fix: close remaining project analysis gaps

* fix: apply tag filters to project analysis

* fix: preserve embedded source positions

* fix: validate static config helper bindings

* fix: bound runtime directory discovery

* fix: close final dependency analysis gaps

* fix: preserve declaration dependency references

* chore: refresh generated rule metadata

* fix: make project analysis portable and bounded

* test: stabilize cleanup scaling guard

* refactor: parse project syntax with oxc

* fix: normalize native filesystem paths

* fix: separate path identity from report paths

* fix: match project files by filesystem identity

* fix: match build glob files by package identity

* fix: use native path keys for file identity

* fix: canonicalize Windows file identities

* fix: canonicalize package ownership paths

* test: inspect Windows path identities

* test: trace Windows package ownership

* fix: keep Windows path identities consistent

* fix: classify test contracts by normalized path

* fix: scope test contracts by canonical package path

* fix: keep test package graphs conservative

* test: keep React complexity advisory
2026-08-13 16:26:08 -07:00
github-actions[bot] 86198f151b chore: version packages (#1618) 2026-08-13 04:38:53 -07:00
Aiden Bai a546cd53ce refactor: reduce production dependency surface (#1632) 2026-08-12 00:43:52 -07:00
Aiden Bai 51e198db8b perf: reuse source inventories across project scans (#1617)
* perf: reuse source inventories across project scans

* chore: upgrade Oxc toolchain

* fix: fall back for empty shared inventories
2026-08-09 01:42:22 -07:00
github-actions[bot] d23a0d723c chore: version packages (#1616)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-09 04:53:53 +00:00
github-actions[bot] 3bb84fbeb2 chore: version packages (#1613)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-08 19:17:54 -05:00
github-actions[bot] 43863e2f10 chore: version packages (#1607)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-08 15:24:23 -07:00
github-actions[bot] e83abeb694 chore: version packages (#1604)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-08 05:34:32 -07:00
Aiden Bai 13138a4af5 refactor: simplify internals across the workspace (#1590) 2026-08-08 00:20:14 -07:00
github-actions[bot] df8660f419 chore: version packages (#1602)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-07 17:47:30 -07:00
github-actions[bot] 59ae70b4fb chore: version packages (#1586) 2026-08-07 03:14:51 -07:00
github-actions[bot] ff436b0b96 chore: version packages (#1570) 2026-08-05 00:42:33 -07:00
Aiden Bai 60e4d8e102 fix(cli): isolate interactive React runtime (#1577)
Bundle the Ink and React renderer so inspected projects cannot supply a missing or incompatible React runtime. Exercise the packed CLI in a real PTY against a React 18 fixture.
2026-08-04 15:01:08 -07:00
Aiden Bai 212b8b4113 fix: harden CLI against Sentry crash clusters (#1572) 2026-08-04 03:37:33 -07:00
github-actions[bot] dcfe06428d chore: version packages (#1548) 2026-08-03 18:25:23 -07:00
Aiden Bai c3683a2850 feat(cli): make the interactive report the default (#1542)
Co-authored-by: Rayhan Noufal Arayilakath <me@rayhanadev.com>
2026-08-02 01:09:19 -07:00
github-actions[bot] 0b673ccb76 chore: version packages (#1462) 2026-07-31 22:57:26 -07:00
Aiden Bai 83f3ff8ac7 fix: support Astro project scans (#1519) 2026-07-29 23:09:02 -07:00
Aiden Bai 3728102af1 chore: upgrade Oxc toolchain (#1467) 2026-07-27 19:03:34 -07:00
github-actions[bot] 201106e0e8 chore: version packages (#1442) 2026-07-26 20:43:07 -07:00
Aiden Bai 1aa6b12fd6 fix: detect React Compiler through dependency configs (#1458) 2026-07-25 19:48:27 -07:00
github-actions[bot] 54ba416f83 chore: version packages (#1433) 2026-07-23 03:44:25 -07:00
github-actions[bot] d2cd2f41b2 chore: version packages (#1425) 2026-07-22 15:46:10 -07:00
Aiden Bai 9155bc0bc9 feat(cli): add experimental interactive Ink TUI (#979)
* feat(cli): add experimental interactive TUI

* fix(tui): isolate concurrent project reporters

* fix(tui): preserve project scoring config

* fix(tui): merge monorepo rule priorities

* fix(tui): finalize terminal lifecycle

* fix(tui): surface lint hard failures

* fix(tui): preserve monorepo project selection

* fix(tui): address interactive review findings

* fix(tui): constrain report to terminal height

* test(tui): tolerate colored code frames

* fix(tui): address final review findings

* fix(tui): honor configured blocking gate

---------

Co-authored-by: Aiden Bai <aidenybai@users.noreply.github.com>
2026-07-22 02:13:58 -07:00
Aiden Bai 3d7ea66c3f perf: speed up React Doctor scans (#1423) 2026-07-21 20:35:22 -07:00
github-actions[bot] 84b999002a chore: version packages (#1420)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-21 01:36:31 -07:00
github-actions[bot] d489fa081a chore: version packages (#1382) 2026-07-21 00:29:21 -07:00
github-actions[bot] 78189225ae chore: version packages (#1378) 2026-07-17 23:39:46 -07:00
github-actions[bot] c0d9d385cd chore: version packages (#1307)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-17 21:27:09 -07:00
github-actions[bot] d8b2989fd5 chore: version packages (#1262)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-14 07:33:33 -07:00
github-actions[bot] ece35b3ffa chore: version packages (#1217) 2026-07-14 05:36:31 -07:00
github-actions[bot] bdd1321f62 chore: version packages (#1163) 2026-07-13 07:22:18 -04:00
github-actions[bot] e877ca7cba chore: version packages (#1145) 2026-07-12 00:45:02 -04:00
github-actions[bot] 0f07133c70 chore: version packages (#1118)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-11 17:21:17 -07:00
github-actions[bot] dfccac44e4 chore: version packages (#1113) 2026-07-10 01:33:16 -07:00
github-actions[bot] fcb203ee80 chore: version packages (#1086) 2026-07-09 05:50:24 -07:00
github-actions[bot] aa519e5f55 chore: version packages (#1068) 2026-07-07 23:50:24 -04:00
github-actions[bot] 160f84c6cc chore: version packages (#1063) 2026-07-04 02:07:38 -07:00
github-actions[bot] 574cba6e94 chore: version packages (#1055)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-04 00:39:30 -05:00
github-actions[bot] 8325343421 chore: version packages (#1031) 2026-07-03 17:18:50 -07:00
github-actions[bot] 397816a2b8 chore: version packages (#1029) 2026-07-02 21:41:14 -04:00
github-actions[bot] 4e91677d40 chore: version packages (#1026) 2026-07-02 17:00:20 -07:00
github-actions[bot] 113637e9bf chore: version packages (#918) 2026-07-02 03:16:24 -07:00
Ray Arayilakath e2393c4a6b feat(cli): add ci command for managing CI (#955)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 19:17:10 -04:00
Skosh 03b7a5f79e fix: exclude TypeScript 6.x to fix bunx installation crash (#963)
* fix: exclude TypeScript 6.x to fix bunx installation crash

TypeScript 6.0.3 has an internal circular dependency with its Comparison
enum that triggers a known Bun module loader bug, causing
`bunx react-doctor install` to crash with "ReferenceError: Cannot access
'Comparison' before initialization".

Narrow the dependency range from `>=5.0.4 <7` to `>=5.0.4 <6` until Bun
fixes enum initialization order (see oven-sh/bun#12805).

`npx` continues to work because npm's resolver handles the circular
dependency correctly. TypeScript 5.9.3 is stable and tested; TypeScript
6.x support will return once the upstream bug is resolved.

Closes #962

Co-authored-by: Skosh <skoshx@users.noreply.github.com>

* fix(deslop-js): pin typescript <6, drop no-op core pin

The bunx install crash is react-doctor's own startup `import typescript` (already
pinned <6); the residual vector is the dead-code scan loading deslop-js, which
still declared `typescript@^6.0.3`. Pin deslop-js to `>=5.0.4 <6` too — 487
deslop-js tests pass under 5.9.3. Revert the @react-doctor/core hunk: core is
private and never published, so narrowing its range reached no consumer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Skosh <skoshx@users.noreply.github.com>
Co-authored-by: Rayhan Noufal Arayilakath <me@rayhanadev.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 10:53:24 -07:00