Directory polish: Everyone memberships, list beside
Found while checking Task 7421's record pages on the live stack (1024px, 1366px, 390px), and in its review lane.
1. Brains roster beside an open record (1366px): account names truncate ("Dev fixture…", "org-a-prob…") while the quota/meta columns show only em-dashes. A column that shows only a dash should give up its width before the name truncates.
2. Directory list column beside a record pane (1024px): the "Others see your email, not a name" banner wraps to two cramped lines inside the narrow list column. When the list is narrow, show it once across the page or as one short line.
3. Account record page on a phone (390px): the "Change org…" button on the tab strip is 44px tall and outlined, so it reads heavier than the tabs. Use the compact verb treatment, or a text button at the tap-floor height.
4. Fixture orgs (Org B) have no Everyone group, but real orgs get one in org_create. The e2e/dev seed should create Everyone for each fixture org, so tenant views of Everyone can be tested locally.
5. Groups ⋯ menu: the reason Everyone's Delete is disabled is given only to screen readers. Show it as a visible secondary line or tooltip, as other disabled menu items do.
6. Membership rows (`MembershipOut`) carry no `is_everyone`, so People and the user page print Everyone's stored name ("Everyone (acme)") to a tenant. People also offers "Revoke" on an Everyone membership, which the server refuses with 409. Add `is_everyone` to the membership payload; label those rows with `groupLabel` and disable the revoke with a reason. Do not match on the name: a hand-made group named "Everyone (<slug>)" must keep its own name and its own chip.
7. The user page's Access reach rows print `via_name` raw ("Via group Everyone (acme)"), while the chips beside them read "Everyone". Use the same label for both.
8. An operator acting as an org: the act-as bar sticks at the scrollport head above a record page's sticky tab strip and covers about the top 10px of the strip. Offset the strip by the bar's height while the bar is shown.
9. The No access card's name line ("Others see your email, not a name.") has no dismiss. Decide whether it needs one now that the banner stands down on that page.
Out of scope: the Repositories table, lib/listDetail.ts split arithmetic.
Done means:
- A screenshot at the stated width shows each point fixed, or a one-line reason it was declined.
- Each shipped item has a test (vitest; pytest for the payload field).
Required checks: ./dc check full
Outcome
Shipped 8 of 9 Directory polish items (item 9, a dismiss for the No access name line, declined with a reason). PR #6038 merged as e83cc6d3c. Quick gate green, CI green, review approved, visual check passed. Deploy run superseded by later merges. Draft follow-up #7491 filed.
Artifacts
Activity
- Created
- Updated
- Run
- Runner started
- Runner ended (done)