diff --git a/.changeset/config.json b/.changeset/config.json index 6e13655..e8c0f50 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,6 +1,6 @@ { "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", - "changelog": "@changesets/cli/changelog", + "changelog": ["@changesets/changelog-github", { "repo": "callstackincubator/agent-react-devtools" }], "commit": false, "fixed": [], "linked": [], diff --git a/.changeset/daemon-auto-restart.md b/.changeset/daemon-auto-restart.md deleted file mode 100644 index 89341d4..0000000 --- a/.changeset/daemon-auto-restart.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"agent-react-devtools": patch ---- - -Auto-restart daemon when CLI detects the binary has been rebuilt since the daemon started. Previously, rebuilding the package required manually stopping and restarting the daemon for changes to take effect. diff --git a/.changeset/error-warning-counts.md b/.changeset/error-warning-counts.md deleted file mode 100644 index d4b6980..0000000 --- a/.changeset/error-warning-counts.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"agent-react-devtools": minor ---- - -Track and expose component error/warning counts - -Components now track error and warning counts from the React DevTools protocol (`UPDATE_ERRORS_OR_WARNINGS` operations). - -- New `errors` command lists components with non-zero error or warning counts -- `get component` output includes error/warning counts when non-zero -- Tree, search, and component output annotates affected components (e.g., `@c5 [fn] Form ⚠2 ✗1`) diff --git a/.changeset/fix-inspect-hooks-and-numeric-ids.md b/.changeset/fix-inspect-hooks-and-numeric-ids.md deleted file mode 100644 index f1a27ba..0000000 --- a/.changeset/fix-inspect-hooks-and-numeric-ids.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"agent-react-devtools": patch ---- - -Fix component inspection crash and unresolvable find results - -- Fixed a crash in hook parsing that caused `get component` to silently time out on all components in affected apps -- Components outside the labeled tree range now show a usable ID (e.g. `@c?(id:667)`) in `find` results diff --git a/.changeset/profile-diff.md b/.changeset/profile-diff.md deleted file mode 100644 index 7bcb0d3..0000000 --- a/.changeset/profile-diff.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"agent-react-devtools": minor ---- - -Add `profile diff ` command - -- Compares two profiling exports side by side -- Shows regressed, improved, new, and removed components -- Aggregates by display name, computes avg/max duration deltas -- Configurable threshold filters noise from insignificant changes (default 5%, adjust with `--threshold`) -- No daemon required - works purely on exported JSON files diff --git a/.changeset/profile-export.md b/.changeset/profile-export.md deleted file mode 100644 index 60b1f33..0000000 --- a/.changeset/profile-export.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"agent-react-devtools": minor ---- - -Add `profile export ` command - -- Exports profiling session as a JSON file compatible with the React DevTools Profiler -- Import the file in the browser extension's Profiler tab to visualize flame graphs, ranked charts, and commit timelines -- Includes commit data, fiber durations, change descriptions, effect durations, and component snapshots diff --git a/.changeset/profile-timeline-pagination.md b/.changeset/profile-timeline-pagination.md deleted file mode 100644 index 357a5dd..0000000 --- a/.changeset/profile-timeline-pagination.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"agent-react-devtools": minor ---- - -Pagination and sorting for `profile timeline` - -Large profiling sessions no longer flood agent context with hundreds of commits: - -- **Default limit of 20**: `profile timeline` returns at most 20 entries unless `--limit N` is specified. -- **`--offset N` flag**: Skip the first N commits for pagination. -- **`--sort duration`**: Sort commits by render duration (slowest first) instead of chronological order. -- **Paginated header**: Output shows `Commit timeline (showing 1–20 of 87):` when paginated, or `Commit timeline (87 commits):` when all results fit on one page. diff --git a/.changeset/smart-tree-truncation.md b/.changeset/smart-tree-truncation.md deleted file mode 100644 index ed6be5b..0000000 --- a/.changeset/smart-tree-truncation.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"agent-react-devtools": minor ---- - -Smart tree truncation and subtree extraction for large component trees - -Large React apps (500-2000+ components) now produce much smaller `get tree` output: - -- **Host filtering by default**: `
`, ``, and other host components are hidden (use `--all` to show them). Host components with keys or custom element names are always shown. -- **Sibling collapsing**: When a parent has many children with the same display name (e.g. list items), only the first 3 are shown with a `... +N more ComponentName` summary. -- **Summary footer**: Output ends with `N components shown (M total)` so the agent knows how much was filtered. -- **`--max-lines N` flag**: Hard cap on output lines to stay within context budgets. -- **Subtree extraction**: `get tree @c5` shows only the subtree rooted at a specific component. Labels are re-assigned starting from `@c1` within the subtree. Combine with `--depth N` to limit depth within the subtree. diff --git a/.changeset/uninit-command.md b/.changeset/uninit-command.md deleted file mode 100644 index 58d97e4..0000000 --- a/.changeset/uninit-command.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"agent-react-devtools": minor ---- - -Add `uninit` command to reverse framework configuration - -`agent-react-devtools uninit` removes the changes made by `init` — restoring your config files to their original state. - -- Supports all frameworks: Vite, Next.js (Pages Router and App Router), CRA -- `--dry-run` flag previews what would be removed without writing any files -- Safe to run on projects not configured by `init` (no-op) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e439864..0dbe26c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,9 +26,6 @@ jobs: with: node-version: '22' - - name: Update npm for OIDC trusted publishing - run: npm install -g npm@latest - - name: Install dependencies run: bun install @@ -58,9 +55,12 @@ jobs: createGithubReleases: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_CONFIG_PROVENANCE: true - name: Publish canary snapshot if: steps.changesets.outputs.published != 'true' + env: + NPM_CONFIG_PROVENANCE: true run: | git checkout ${{ github.sha }} bun install diff --git a/package.json b/package.json index 2296277..cac17c6 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "release": "bun run build && changeset publish" }, "devDependencies": { + "@changesets/changelog-github": "^0.6.0", "@changesets/cli": "^2.27.0" } } diff --git a/packages/agent-react-devtools/CHANGELOG.md b/packages/agent-react-devtools/CHANGELOG.md index 74b3630..c9bc060 100644 --- a/packages/agent-react-devtools/CHANGELOG.md +++ b/packages/agent-react-devtools/CHANGELOG.md @@ -1,5 +1,66 @@ # agent-react-devtools +## 0.4.0 + +### Minor Changes + +- 0c307e2: Track and expose component error/warning counts + + Components now track error and warning counts from the React DevTools protocol (`UPDATE_ERRORS_OR_WARNINGS` operations). + + - New `errors` command lists components with non-zero error or warning counts + - `get component` output includes error/warning counts when non-zero + - Tree, search, and component output annotates affected components (e.g., `@c5 [fn] Form ⚠2 ✗1`) + +- 65c391f: Add `profile diff ` command + + - Compares two profiling exports side by side + - Shows regressed, improved, new, and removed components + - Aggregates by display name, computes avg/max duration deltas + - Configurable threshold filters noise from insignificant changes (default 5%, adjust with `--threshold`) + - No daemon required - works purely on exported JSON files + +- 5c5ace6: Add `profile export ` command + + - Exports profiling session as a JSON file compatible with the React DevTools Profiler + - Import the file in the browser extension's Profiler tab to visualize flame graphs, ranked charts, and commit timelines + - Includes commit data, fiber durations, change descriptions, effect durations, and component snapshots + +- b0e64b8: Pagination and sorting for `profile timeline` + + Large profiling sessions no longer flood agent context with hundreds of commits: + + - **Default limit of 20**: `profile timeline` returns at most 20 entries unless `--limit N` is specified. + - **`--offset N` flag**: Skip the first N commits for pagination. + - **`--sort duration`**: Sort commits by render duration (slowest first) instead of chronological order. + - **Paginated header**: Output shows `Commit timeline (showing 1–20 of 87):` when paginated, or `Commit timeline (87 commits):` when all results fit on one page. + +- a1bed65: Smart tree truncation and subtree extraction for large component trees + + Large React apps (500-2000+ components) now produce much smaller `get tree` output: + + - **Host filtering by default**: `
`, ``, and other host components are hidden (use `--all` to show them). Host components with keys or custom element names are always shown. + - **Sibling collapsing**: When a parent has many children with the same display name (e.g. list items), only the first 3 are shown with a `... +N more ComponentName` summary. + - **Summary footer**: Output ends with `N components shown (M total)` so the agent knows how much was filtered. + - **`--max-lines N` flag**: Hard cap on output lines to stay within context budgets. + - **Subtree extraction**: `get tree @c5` shows only the subtree rooted at a specific component. Labels are re-assigned starting from `@c1` within the subtree. Combine with `--depth N` to limit depth within the subtree. + +- c7127db: Add `uninit` command to reverse framework configuration + + `agent-react-devtools uninit` removes the changes made by `init` — restoring your config files to their original state. + + - Supports all frameworks: Vite, Next.js (Pages Router and App Router), CRA + - `--dry-run` flag previews what would be removed without writing any files + - Safe to run on projects not configured by `init` (no-op) + +### Patch Changes + +- 68bd0fc: Auto-restart daemon when CLI detects the binary has been rebuilt since the daemon started. Previously, rebuilding the package required manually stopping and restarting the daemon for changes to take effect. +- 90d1344: Fix component inspection crash and unresolvable find results + + - Fixed a crash in hook parsing that caused `get component` to silently time out on all components in affected apps + - Components outside the labeled tree range now show a usable ID (e.g. `@c?(id:667)`) in `find` results + ## 0.3.0 ### Minor Changes diff --git a/packages/agent-react-devtools/package.json b/packages/agent-react-devtools/package.json index 03c3bd7..503ee41 100644 --- a/packages/agent-react-devtools/package.json +++ b/packages/agent-react-devtools/package.json @@ -1,6 +1,6 @@ { "name": "agent-react-devtools", - "version": "0.3.0", + "version": "0.4.0", "description": "CLI tool for AI agents to inspect React component trees and profile performance", "type": "module", "bin": {