Document SSH passphrase focus audit (#3353)

This commit is contained in:
Neil 2026-05-29 15:45:03 -07:00 committed by GitHub
parent 5ed3c1bc51
commit 498a824fa9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 4 additions and 2 deletions

View File

@ -49,7 +49,7 @@ Initial inventory:
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, #3164, #3166, #3223, #3244, #3271, #3273, #3294, #3296, #3298, #3300, and #3330, plus upstream tab-entry changes #3011 and #3026: 911 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, #3154, #3170, #3176, #3184, #3186, #3188, #3192, #3195, #3198, #3200, #3202, #3206, #3218, #3220, #3226, #3228, #3234, #3240, #3242, #3247, #3257, #3269, #3275, #3277, #3283, #3289, #3292, #3303, #3311, #3314, #3316, #3318, #3322, #3328, #3333, #3338, #3340, #3344, #3347, and #3349 each project to 910 Effect hook call sites on the current merged baseline; open medium-risk PRs #3097, #3106, #3116, #3120, #3136, #3138, #3180, #3210, #3214, #3238, #3255, #3261, #3281, #3285, and #3287 each project to 909; open medium-risk PRs #3114, #3168, and #3259 each project to 908; open medium-risk PRs #3095, #3140, and #3230 each project to 907; open medium-risk PR #3326 projects to 902; open medium-risk PR #3079 projects to 901; open high-risk PRs #3157, #3212, and #3253 each project to 910; open high-risk PR #3267 projects to 909; open high-risk PR #3075 projects to 907; open high-risk PR #3250 projects to 906; and open high-risk PR #3081 projects to 903. 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, #3154, #3170, #3176, #3184, #3186, #3188, #3192, #3195, #3198, #3200, #3202, #3206, #3218, #3220, #3226, #3228, #3234, #3240, #3242, #3247, #3257, #3269, #3275, #3277, #3283, #3289, #3292, #3303, #3311, #3314, #3316, #3318, #3322, #3328, #3333, #3338, #3340, #3344, #3347, and #3349 each project to 910 Effect hook call sites on the current merged baseline; open medium-risk PRs #3097, #3106, #3116, #3120, #3136, #3138, #3180, #3210, #3214, #3238, #3255, #3261, #3281, #3285, and #3287 each project to 909; open medium-risk PRs #3114, #3168, and #3259 each project to 908; open medium-risk PRs #3095, #3140, and #3230 each project to 907; open medium-risk PR #3326 projects to 902; open medium-risk PR #3079 projects to 901; open high-risk PRs #3157, #3212, #3253, and #3351 each project to 910; open high-risk PR #3267 projects to 909; open high-risk PR #3075 projects to 907; open high-risk PR #3250 projects to 906; and open high-risk PR #3081 projects to 903. These are not counted in the merged baseline until reviewed and merged.
| Area | Files / signal | Scan status | Notes |
| ------------------------------ | -------------------------------------------------------------------------------------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
@ -61,7 +61,7 @@ Open medium-risk PRs #3070, #3073, #3077, #3089, #3093, #3102, #3108, #3110, #31
| Sidebar / worktrees | `components/sidebar/**` | Inventory complete, manual review in progress | Orca hook trust checkbox reset covered by #3089; delete dialog one-shot checkbox reset covered by #3134; Add Repo clone destination auto-fill covered by #3150; sidebar live-width mirror covered by #3160; worktree selection pruning covered by #3166; SSH reconnect prompts covered by #3267; nested repo indeterminate checkbox covered by #3294; workspace title rename focus covered by #3296; workspace title editing notification covered by #3298; worktree metadata notes resize covered by #3300. Continue with drag/drop global listeners and kanban pointer flows. |
| Workspace cleanup | `components/workspace-cleanup/**` | Inventory complete, manual review in progress | Active cleanup-view repair covered by #3195. Continue checking destructive removal, repo filtering, scan refresh, and SSH/disconnected blockers. |
| Right sidebar / source control | `components/right-sidebar/**` | Inventory complete, manual review in progress | Source-control selection ref mirrors covered by #3075; Create PR dialog submit reset covered by #3184; commit-failure dialog identity repair covered by #3202; diff-comments clear confirmation repair covered by #3206; diff-notes copy feedback timers covered by #3210; selection stale-key pruning covered by #3212; file-search input focus covered by #3330; file explorer inline create/rename focus covered by #3347. Continue checking polling, PR checks, file explorer watch/reveal, and source-control local resets. Git provider compatibility required. |
| Settings | `components/settings/**` | Inventory complete, manual review in progress | Repository hook local editor visibility covered by #3093; lazy section mounted-state bookkeeping covered by #3128; browser home/Kagi draft sync covered by #3136; general auto-save/Open In draft sync covered by #3138; Source Control AI instruction drafts covered by #3140; notification volume draft sync covered by #3142; repo Source Control AI override draft sync covered by #3144; Quick Commands add intent covered by #3146; Mobile QR polling count capture covered by #3152; integration preflight status derivation covered by #3154; SSH reset-relay dialog cleanup covered by #3157; diagnostics bundle cleanup ref mirror covered by #3176; font autocomplete option scroll covered by #3349. Continue with draft mirrors while keeping SSH and cross-platform settings behavior intact. |
| Settings | `components/settings/**` | Inventory complete, manual review in progress | Repository hook local editor visibility covered by #3093; lazy section mounted-state bookkeeping covered by #3128; browser home/Kagi draft sync covered by #3136; general auto-save/Open In draft sync covered by #3138; Source Control AI instruction drafts covered by #3140; notification volume draft sync covered by #3142; repo Source Control AI override draft sync covered by #3144; Quick Commands add intent covered by #3146; Mobile QR polling count capture covered by #3152; integration preflight status derivation covered by #3154; SSH reset-relay dialog cleanup covered by #3157; diagnostics bundle cleanup ref mirror covered by #3176; font autocomplete option scroll covered by #3349; SSH passphrase prompt focus covered by #3351. Continue with draft mirrors while keeping SSH and cross-platform settings behavior intact. |
| Automations | `components/automations/**` | Inventory complete, manual review in progress | Combobox open-focus Effects covered by #3100; run-history selection repair covered by #3104; external run-table selection repair covered by #3102; detail-page selection resets covered by #3106; create-from branch search reset covered by #3132. Continue with draft defaulting, polling, and completion detection. |
| Issue, PR, task pages | `TaskPage.tsx`, `PullRequestPage.tsx`, `GitHubItemDialog.tsx`, `GitLabItemDialog.tsx`, Linear components | Inventory complete, manual review in progress | Linear estimate input sync covered by #3108; Linear sub-issue list sync covered by #3110; GitHub project date draft sync covered by #3112; GitHub reviewer-picker active index covered by #3114; GitHub project column state covered by #3116; GitHub Project visible-table cache covered by #3186; GitHub Project dialog state covered by #3214; GitLab comment draft reset covered by #3124; Linear title/description draft sync covered by #3130; GitHub assignee dirty-flag reset covered by #3255; GitHub reviewer-request local sync covered by #3259; GitHub link-copy feedback timers covered by #3285; GitLab task filter repair covered by #3292. Continue large-file scan with separate GitHub, GitLab, Linear, and generic review behavior. |
| Onboarding / feature wall | `components/onboarding/**`, `components/feature-wall/**` | Inventory complete, manual review in progress | Select portal root Effects covered by #3087; tour visited-marker Effects covered by #3095; persisted completion close reset covered by #3188; onboarding settings hydration covered by #3198; unused orchestration notifications page deleted by #3273; feature-wall skill installed-state notification Effects covered by #3281; session-depth open publish Effects covered by #3283; shared reduced-motion media-query hook covered by #3287. Continue with demo timers and telemetry while avoiding telemetry semantic changes. |
@ -216,6 +216,7 @@ These are candidate batches, not final conclusions. Each item needs code inspect
| PR EG | Terminal search focus | Opening terminal search focused the input from a passive Effect before the remaining search-sync Effect handled xterm decoration cleanup. | `TerminalSearch.tsx` covered by #3344 | Medium |
| PR EH | File explorer inline input focus | File Explorer create/rename inputs used a passive Effect to focus/select and start the blur grace-window timer after the inline row mounted. | `FileExplorerRow.tsx` covered by #3347 | Medium |
| PR EI | Font autocomplete highlighted-option scroll | Settings font autocomplete scrolled the highlighted option from a passive Effect after each keyboard or pointer highlight change. | `SettingsFormControls.tsx` covered by #3349 | Medium |
| PR EJ | SSH passphrase prompt focus | New SSH password/passphrase requests focused the credential input from a passive Effect keyed by request id. | `SshPassphraseDialog.tsx` covered by #3351 | High |
## Merge Risk Scale
@ -360,6 +361,7 @@ These are candidate batches, not final conclusions. Each item needs code inspect
| #3344 | `nwparker/react-perf-terminal-search-focus-ref` | Terminal search input focus moves to callback ref while close cleanup stays in the search Effect | Medium | Open | `pnpm exec oxlint src/renderer/src/components/TerminalSearch.tsx`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/terminal-pane/keyboard-handlers.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 911 -> 910. |
| #3347 | `nwparker/react-perf-file-explorer-inline-focus-ref` | File Explorer inline create/rename input focus moves to a keyed callback ref | Medium | Open | `pnpm exec oxfmt --write src/renderer/src/components/right-sidebar/FileExplorerRow.tsx`; `pnpm exec oxlint src/renderer/src/components/right-sidebar/FileExplorerRow.tsx`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/right-sidebar/FileExplorer.test.tsx src/renderer/src/components/right-sidebar/useFileExplorerHandlers.test.ts src/renderer/src/components/right-sidebar/useFileExplorerRowDrag.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 911 -> 910. |
| #3349 | `nwparker/react-perf-font-autocomplete-scroll-ref` | Settings font autocomplete highlighted-option scroll moves to the option ref callback | Medium | Open | `pnpm exec oxfmt --write src/renderer/src/components/settings/SettingsFormControls.tsx`; `pnpm exec oxlint src/renderer/src/components/settings/SettingsFormControls.tsx`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/TerminalSettingsPreview.lifecycle.test.tsx src/renderer/src/components/settings/TerminalPane.pwsh.test.ts src/renderer/src/components/settings/TerminalPane.ghostty.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 911 -> 910. |
| #3351 | `nwparker/react-perf-ssh-passphrase-focus-ref` | SSH credential dialog input focus moves to callback ref | High | Open | `pnpm exec oxfmt --write src/renderer/src/components/settings/SshPassphraseDialog.tsx`; `pnpm exec oxlint src/renderer/src/components/settings/SshPassphraseDialog.tsx`; `pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/store/slices/ssh.test.ts src/renderer/src/hooks/useIpcEvents.test.ts`; `pnpm run typecheck:web`; `git diff --check`; AST Effect count 911 -> 910. |
## Reproduction Commands