feat(settings): Paginate project environments - #122108
Conversation
Large projects can render hundreds of thousands of environment rows at once and lock up the settings page. Render 100 at a time, add client-side search and sortable headers, and persist the table state in the URL. Co-Authored-By: OpenAI Codex <noreply@openai.com>
Match environment names with the existing fzf helper so non-contiguous searches work too. Co-Authored-By: OpenAI Codex <noreply@openai.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f669de0. Configure here.
| <SimpleTable.HeaderCell | ||
| sort={sort === 'events' ? direction : undefined} | ||
| handleSortClick={() => handleSort('events')} | ||
| > |
There was a problem hiding this comment.
Nested interactive sort header
Medium Severity
Making the events column sortable turns the header into a button, while InfoText still renders a focusable control inside it. That nests interactive elements, so keyboard focus and activation for the tooltip versus sort compete and produce invalid markup.
Reviewed by Cursor Bugbot for commit f669de0. Configure here.
Use sensible initial directions for each sortable field and keep the events tooltip on the header button instead of nesting focus targets. Co-Authored-By: OpenAI Codex <noreply@openai.com>
Keep the all-environments summary at the top of the unfiltered active list instead of repeating it on every page. Co-Authored-By: OpenAI Codex <noreply@openai.com>


fixes an issue where 200k environments would try to be displayed and crash the page
example with 200k