Repository navigation
feat(instance): sort, filter and page the instance users table - #1835
Draft
dawsontoth wants to merge 1 commit into
Draft
dawsontoth wants to merge 1 commit into
dawsontoth wants to merge 1 commit into
Conversation
Opts the Config > Users table into SimpleBrowseDataTable's `filter` and `paginated` props and makes every column sortable. Role and Created become accessor columns so they can be sorted (and Role searched); the Created and Updated timestamps are kept out of the filter, since their digits would otherwise match almost anything typed. Refs #1268 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Code Review
This pull request enables sorting on all columns in the instance users table (Username, Role, Active, Created, and Updated) and configures global filtering to ignore the Created and Updated timestamp columns. It also adds a search filter and pagination to the users table component, and introduces a comprehensive test suite to verify these sorting and filtering behaviors. There are no review comments, and the changes look solid, so I have no additional feedback to provide.
This was referenced Oct 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
⊙ Problem
An instance's Config > Users table can't be sorted (every column sets
enableSorting: false), searched, or paged (#1268 asks for sort and filter by name and role, and paging).💡 Solution
Stacked on #1832, which adds the shared opt-in
filter/paginatedprops toSimpleBrowseDataTable; this PR turns both on for instance users.__createdtime__(still rendered as "time ago") so it sorts by time.createColumnHelper.✅ Verification
End-to-end route: component integration in jsdom through the real
SimpleBrowseDataTable, TanStack row models and these column definitions, rendered as the page renders it (initial username sort,filter,paginated). Not browser-verified, since the authenticated dev origin was shared with other sessions; no Playwright spec covers this page.src/features/instance/config/users/constants/tableDefinition.test.tsx: filters by username and role (case-insensitively), andtrueor a timestamp prefix matches nothing; sorts by Role, then by Created, starting from the page's initial username sort.tsc -bexit 0;oxlintexit 0;dprint checkexit 0; commitlint passed.claude/1264-org-users-table. Codex found nothing. Gemini's major (that passingsortingStatelocks sorting) is wrong: feat(organization): sort, filter and page the org users table #1832's component uses it only as the initial value of its own sorting state, and the test now renders with it and still re-sorts. Its minor (Active matchestrue) is covered by the new assertion and needed no change. Cursor could not fetch through the 1Password SSH agent and the Harper domain adjudicator failed on an expired Claude OAuth session, so the round was not adjudicated. The test changes made after the round were not re-reviewed.Merge after #1832. Its base is
claude/1264-org-users-table, so GitHub retargets it tostageonce that branch merges and is deleted.Closes #1268
🤖 Generated with Claude Code; posted via @dawsontoth.
Related PRs: #1832 independent (the stacked base this builds on; merge it first)
Complexity: easy
Review-Coverage: authored=claude; ran=gemini,codex; blocked=cursor-composer(no-receipt),domain(auth); declined=cursor-grok,cursor-kimi,cursor-muse; rounds=1; full=1 @ 30e9fee
Review-Attention: study ~9m (raised: degraded review, open major) @ 30e9fee