Summary
The users table on the Users page (client/src/pages/Users.tsx) overflows horizontally as soon as an organization name or email is moderately long. Action buttons get pushed off-screen, which is unacceptable — admins always need them visible. Searching narrows results to short-org users, where the layout fits, masking the problem.
Repro
- Open
/users with at least one user whose organization has a long name (~30+ chars) or a long email.
- Observe horizontal scroll; action column is offscreen at typical viewport widths.
Proposed redesign
Collapse from ~5–6 columns to 3 visible + sticky right-side columns:
- Name cell (two-line):
- Line 1: Display name + inline
Platform Admin badge (only when applicable).
- Line 2: Organization name, muted/smaller.
- Email column: stays, truncates with tooltip on overflow.
- Roles column: unchanged.
- Status column: new —
Active, Pending invite, Invite expired (coordinates with the magic-link invite issue).
- Type column: removed — Platform Admin moves to the inline badge; non-admins render no badge.
- Pinned right (sticky): Date column and Actions column. Always visible regardless of viewport width.
Notes
- Pattern matches the agent/run tables that already stack secondary info.
EditUserDialog / UserRolesDialog / UserDetailsDialog action triggers all live in the actions column — none move.
- Tooltip on truncated email satisfies a11y for full-value access.
Out of scope
- Changing what an admin can do per-row.
- Pagination/sorting changes.
Summary
The users table on the Users page (
client/src/pages/Users.tsx) overflows horizontally as soon as an organization name or email is moderately long. Action buttons get pushed off-screen, which is unacceptable — admins always need them visible. Searching narrows results to short-org users, where the layout fits, masking the problem.Repro
/userswith at least one user whose organization has a long name (~30+ chars) or a long email.Proposed redesign
Collapse from ~5–6 columns to 3 visible + sticky right-side columns:
Platform Adminbadge (only when applicable).Active,Pending invite,Invite expired(coordinates with the magic-link invite issue).Notes
EditUserDialog/UserRolesDialog/UserDetailsDialogaction triggers all live in the actions column — none move.Out of scope