Repository navigation
feat(web): show the Users page to every org - #2324
Confidence 8/10 · 1 issue to address
🟢 Confidence 8/10 · likely safe to merge. Flag removal is consistent end to end, but the ungating it introduces has no test pinning it.
1 warning −1 · tests partial −1 · risk medium
Removes the users rollout flag: the nav row, palette entry and /users routes are ungated for every org. No stale flag reader or server-side gate is left behind; only the missing test for the new behavior holds it back.
OrganizationFeatureFlagsandClerkOrganization.flagsdrop theuserskeynavGroupsalways renders the Users row under AnalyzeflaggedRouteRedirectgates only status page routes now
Findings
🟠 Warning · F1 · The change's own behavior — Users always shown and reachable — is pinned by no test
tests · apps/web/src/shell/nav.test.ts:69-73
The Users-row test was deleted rather than inverted, so nothing asserts navGroups always contains Users, and route.test.ts:130 no longer pins that /users and /users/:id are not redirected. Both files test this kind of code, so the ungating itself is unpinned and a later re-gate would pass CI.
Add `expect(titles({ releases: false, securityAudit: false, statusPages: false })).toContain("Users")` here, and in `route.test.ts` assert `flaggedRouteRedirect(parse("/users"), { statusPages: false })` is `Option.none()`.
What was checked
sandbox_grepat head finds no remainingflags.usersreader orusers:flag literalorganizationFeatureFlagsFromignores excess metadata keys, so orgs withusers: truestill decodeapps/api/src/routes/v2/users.http.tshas no feature-flag gate; the web page reads the warehouse directly
4034912 · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.
Annotations
Check warning on line 73 in apps/web/src/shell/nav.test.ts
maple-review-bot / Maple / review
tests: The change's own behavior — Users always shown and reachable — is pinned by no test
The Users-row test was deleted rather than inverted, so nothing asserts `navGroups` always contains `Users`, and `route.test.ts:130` no longer pins that `/users` and `/users/:id` are not redirected. Both files test this kind of code, so the ungating itself is unpinned and a later re-gate would pass CI.