Skip to content

fix(config-ui): group connections by name, not by list position - #9130

Open
stigi wants to merge 1 commit into
apache:mainfrom
pitch-io:fix/connections-az-grouping
Open

fix(config-ui): group connections by name, not by list position#9130
stigi wants to merge 1 commit into
apache:mainfrom
pitch-io:fix/connections-az-grouping

Conversation

@stigi

@stigi stigi commented Sep 10, 2026

Copy link
Copy Markdown

Summary

The A-N and O-Z headings on the Connections page put several plugins under
the wrong letter. Asana, Kiro, Linear and incident.io all appear under
O-Z today.

The grouping cut the list at the first plugin id starting with a letter from
o to z, and treated everything after that point as O-Z:

const index = filterWebhookPlugins.findIndex((p) => SORT_START_WITH.includes(p[0]));
// A-N = slice(0, index), O-Z = slice(index)

That is only equivalent to grouping by letter while each plugin config's sort
value happens to run alphabetically. It no longer does: plugins have been
appended in the order they were added, so opsgenie (sort 10) sits ahead of
asana (12), kiro (12), linear (13) and incidentio (19), and the cut
lands in the middle of the alphabet.

This groups by the first letter of the displayed name instead — what a
reader is actually matching the heading against — and extracts the decision
into a pure splitPluginsByInitial with unit tests.

Does this close any open issues?

No issue filed; the misplaced tiles are visible on the Connections page of any
current build.

Screenshots

Not included: the change moves four existing tiles between two headings, which
reads more clearly as the plugin ids above than as a screenshot.

Tests

config-ui/src/__tests__/connections-grouping.test.ts — four cases: grouping by
name rather than position, no plugin lost from either group, case-insensitive
comparison (so incident.io groups under I), and a fallback to the plugin id
when a config has no name. Verified against the previous implementation: two of
the four fail on it.

The A-N and O-Z headings were produced by cutting the plugin list at the
first plugin id starting with a letter from o to z. That agrees with the
headings only while each config's `sort` value runs alphabetically, and it
stopped doing so as plugins were appended in the order they were added:
Asana, Kiro, Linear and incident.io are all listed after Opsgenie, so all
four appeared under O-Z.

Group by the first letter of the displayed name instead, which is what a
reader is matching against, and extract the decision into a pure function
with tests.

Generated-by: Claude Code (Claude Opus 5)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

1 participant