Skip to content

refactor(config): alphabetize the instance Config nav items#1470

Merged
dawsontoth merged 1 commit into
stagefrom
chore/alphabetize-config-menu
Jul 13, 2026
Merged

refactor(config): alphabetize the instance Config nav items#1470
dawsontoth merged 1 commit into
stagefrom
chore/alphabetize-config-menu

Conversation

@dawsontoth

Copy link
Copy Markdown
Contributor

Stacked on #1402 (the cluster Secrets page). Review the top commit only; everything below belongs to #1402. Retarget to stage once #1402 (and its own base #1409) land.

What

Reorders the instance Config page nav so the items read alphabetically. Overview stays pinned at the top and keeps its divider (border-t) from the rest — only the items below the divider move.

Before → after:

Before (order added) After (alphabetical)
Users Certificates
Roles Deployments
Deployments Domains
Certificates Roles
Domains Secrets
SSH Keys SSH Keys
Secrets Users

(“Secrets” is the entry #1402 adds; it slots in alphabetically here so the two PRs don't fight over ordering.)

Only the JSX order in src/features/instance/config/index.tsx changed. Every item keeps its icon and its existing version/permission gate (certsAvailable, deploymentsAvailable, secretsSupported, self-managed/local checks) — nothing was added or removed, just resequenced. Icon imports were already alphabetized on the base branch, so no import change.

Verification

  • Full suite green (1275 passed), tsc, oxlint, dprint all clean via the pre-commit hooks.
  • Rendered menu order maps 1:1 to the static JSX order, verified at the source level. Not click-tested in a browser: port 5173 is held by a different checkout and a fresh-origin dev server hits the auth wall, so the live Config page wasn't reachable this session.

🤖 Generated with Claude Code

@dawsontoth
dawsontoth requested a review from a team as a code owner July 10, 2026 22:03

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request reorganizes the navigation links in the configuration index page to be in alphabetical order, including Certificates, Deployments, Roles, Secrets, SSH Keys, and Users. There are no review comments, and I have no additional feedback to provide.

@kriszyp kriszyp left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. I traced every list item through the reorder and it's behavior-preserving: no route, gate, icon, or default changed. Each Link keeps its exact target and its existing condition (certsAvailable, deploymentsAvailable, secretsSupported, and the canManage wrapper), and Overview stays pinned at the top with its divider. It's purely sibling order flipping to alphabetical. Safe to land.

One non-blocking design question worth a thought (not asking you to change anything):

The previous order looks like it may have been deliberate frequency/importance-first — Users and Roles, the two most-used Config pages, sat at the top, and alphabetizing moves them to the bottom purely on spelling. At this list size (~7 items) you're below the threshold where alphabetical's scan-cost win ("binary-search with your eyes") really pays off — under roughly 8-12 items people still read the list linearly top-to-bottom, so importance-ordering arguably serves users a bit better today.

The strongest argument for alphabetical here is stability as the list grows: new items (like Secrets) drop into a predictable slot instead of forcing a subjective "where does this rank?" call each time. So this is really future-proofing toward the size where scanning dominates, at the cost of a small present-day frequency win.

If you wanted a middle path: pin the 2-3 highest-traffic entries (Users, Roles) at the top and alphabetize the tail — you get the predictable-insertion benefit without demoting the most-used pages. Purely a judgment call, and I'm genuinely fine with it either way; just flagging that the tradeoff is demoting the most-used pages.

— Claude (Sonnet 5), on behalf of Kris, via review-queue

@dawsontoth

Copy link
Copy Markdown
Contributor Author

The previous order was by when things were added. In a future PR we could make a data driven choice to break from alphabetical if we are seeing user confusion. We could also take that as a sign that we need to surface certain features in higher priority areas.

Base automatically changed from feat/secrets-management-ui to stage July 13, 2026 19:01
Overview stays pinned at the top (and keeps its divider); the remaining
items — Certificates, Deployments, Domains, Roles, Secrets, SSH Keys,
Users — are now ordered alphabetically instead of by when each was added.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dawsontoth
dawsontoth force-pushed the chore/alphabetize-config-menu branch from e9503b6 to b67136e Compare July 13, 2026 19:09
@github-actions

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 49.22% 4846 / 9844
🔵 Statements 49.62% 5161 / 10400
🔵 Functions 41.03% 1160 / 2827
🔵 Branches 42.19% 3186 / 7551
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/features/instance/config/index.tsx 18.75% 0% 0% 18.75% 32-206
Generated in workflow #1472 for commit b67136e by the Vitest Coverage Report Action

@dawsontoth
dawsontoth added this pull request to the merge queue Jul 13, 2026
Merged via the queue into stage with commit 6436819 Jul 13, 2026
2 checks passed
@dawsontoth
dawsontoth deleted the chore/alphabetize-config-menu branch July 13, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants