diff --git a/docs/reference/react-performance-audit.md b/docs/reference/react-performance-audit.md index 1cec8c5c5..3f8d69424 100644 --- a/docs/reference/react-performance-audit.md +++ b/docs/reference/react-performance-audit.md @@ -47,13 +47,13 @@ Initial inventory: ## Coverage Ledger -Current count after low-risk PRs #3038, #3041, #3042, #3044, #3051, #3052, #3053, #3054, #3055, #3056, #3058, #3059, #3060, #3062, #3063, #3064, #3065, #3066, #3067, #3068, #3069, #3083, #3087, #3091, #3100, #3104, #3122, and #3160: 925 Effect hook call sites. +Current count after low-risk PRs #3038, #3041, #3042, #3044, #3051, #3052, #3053, #3054, #3055, #3056, #3058, #3059, #3060, #3062, #3063, #3064, #3065, #3066, #3067, #3068, #3069, #3083, #3087, #3091, #3100, #3104, #3122, #3160, and #3164: 924 Effect hook call sites. -Open medium-risk PRs #3070, #3073, #3077, #3089, #3093, #3102, #3108, #3110, #3112, #3118, #3124, #3126, #3128, #3130, #3132, #3134, #3142, #3144, #3146, #3148, #3150, #3152, and #3154 each project to 924 Effect hook call sites on the current merged baseline; open medium-risk PRs #3097, #3106, #3116, #3120, #3136, and #3138 each project to 923; open medium-risk PR #3114 projects to 922; open medium-risk PRs #3095 and #3140 each project to 921; open medium-risk PR #3079 projects to 915; open high-risk PR #3157 projects to 924; open high-risk PR #3075 projects to 921; and open high-risk PR #3081 projects to 917. These are not counted in the merged baseline until reviewed and merged. +Open medium-risk PRs #3070, #3073, #3077, #3089, #3093, #3102, #3108, #3110, #3112, #3118, #3124, #3126, #3128, #3130, #3132, #3134, #3142, #3144, #3146, #3148, #3150, #3152, and #3154 each project to 923 Effect hook call sites on the current merged baseline; open medium-risk PRs #3097, #3106, #3116, #3120, #3136, and #3138 each project to 922; open medium-risk PR #3114 projects to 921; open medium-risk PRs #3095 and #3140 each project to 920; open medium-risk PR #3079 projects to 914; open high-risk PR #3157 projects to 923; open high-risk PR #3075 projects to 920; and open high-risk PR #3081 projects to 916. These are not counted in the merged baseline until reviewed and merged. | Area | Files / signal | Scan status | Notes | | ------------------------------ | -------------------------------------------------------------------------------------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| Renderer app shell | `src/renderer/src/App.tsx`, root components | Inventory complete, manual review in progress | Confirmation dialog active request mirror covered by #3091; onboarding settings detour reset covered by #3122; quick workspace agent selection repair covered by #3148. Continue checking global listeners, beforeunload, media-query, and active-tab repair. | +| Renderer app shell | `src/renderer/src/App.tsx`, root components | Inventory complete, manual review in progress | Confirmation dialog active request mirror covered by #3091; onboarding settings detour reset covered by #3122; quick workspace agent selection repair covered by #3148; Cmd+J selection repair covered by #3164. Continue checking global listeners, beforeunload, media-query, and active-tab repair. | | Terminal / PTY | `components/Terminal.tsx`, `components/terminal-pane/**`, `components/terminal/**` | Inventory complete, manual review pending | High-risk area: xterm lifecycle, scrollback, remote/mobile parity, focus, WebGL, resize. | | Browser pane | `components/browser-pane/**` | Inventory complete, manual review in progress | Highest Effect density: 62 sites in `BrowserPane.tsx`. Browser ref mirrors covered by #3081; continue with driver sync, address bar derived state, find state, webview lifetime. | | Editor / markdown / Monaco | `components/editor/**` | Inventory complete, manual review in progress | Untitled rename reset covered by #3083; copy feedback timers covered by #3097; combined diff local state repairs covered by #3120. Check editor model cleanup, preview scroll restore, search debounce, generated decorations. | @@ -147,6 +147,7 @@ These are candidate batches, not final conclusions. Each item needs code inspect | PR BR | Integrations preflight status mirrors | Source-host integration statuses and account labels were mirrored from preflight store state in an Effect after Settings rendered. | `IntegrationsPane.tsx`, `integrations-pane-status.ts` covered by #3154 | Medium | | PR BS | SSH reset-relay dialog cleanup | Pending reset-relay confirmation was cleared in an Effect after the selected target began connecting or reconnecting. | `SshTargetDestructiveActions.tsx`, `ssh-target-action-state.ts` covered by #3157 | High | | PR BT | Sidebar live-width mirror | Sidebar root mirrored the committed width into the live drag CSS variable in a second passive Effect. | `components/sidebar/index.tsx` covered by #3160 | Low | +| PR BU | Cmd+J selected-row repair | The jump palette repaired selected row state in an Effect after query or result-list changes. | `WorktreeJumpPalette.tsx`, `worktree-palette-create-action.test.ts` covered by #3164 | Low | ## Merge Risk Scale @@ -224,6 +225,7 @@ These are candidate batches, not final conclusions. Each item needs code inspect | #3154 | `nwparker/react-perf-integrations-status` | Integrations preflight status mirrors move out of an Effect | Medium | Open | `pnpm exec oxlint src/renderer/src/components/settings/IntegrationsPane.tsx src/renderer/src/components/settings/integrations-pane-status.ts src/renderer/src/components/settings/integrations-pane-status.test.ts`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/integrations-pane-status.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 926 -> 925. | | #3157 | `nwparker/react-perf-ssh-reset-dialog` | SSH reset-relay dialog cleanup moves out of an Effect | High | Open | `pnpm exec oxlint src/renderer/src/components/settings/SshTargetDestructiveActions.tsx src/renderer/src/components/settings/ssh-target-action-state.ts src/renderer/src/components/settings/ssh-target-action-state.test.ts`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/ssh-target-action-state.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 926 -> 925. | | #3160 | `nwparker/react-perf-sidebar-live-width` | Redundant sidebar live-width mirror Effect removed | Low | Merged | `pnpm exec oxlint src/renderer/src/components/sidebar/index.tsx src/renderer/src/hooks/useSidebarResize.ts`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/hooks/useSidebarResize.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 926 -> 925. | +| #3164 | `nwparker/react-perf-worktree-palette-selection` | Cmd+J selected-row repair moves out of an Effect | Low | Merged | `pnpm exec oxlint src/renderer/src/components/WorktreeJumpPalette.tsx src/renderer/src/lib/worktree-palette-create-action.ts src/renderer/src/lib/worktree-palette-create-action.test.ts`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/lib/worktree-palette-create-action.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 925 -> 924. | ## Reproduction Commands