Skip to content

Fixed label select ordering with infinite scroll#26702

Merged
kevinansfield merged 1 commit intomainfrom
worktree-BER-3402-label-select-ordering
Mar 4, 2026
Merged

Fixed label select ordering with infinite scroll#26702
kevinansfield merged 1 commit intomainfrom
worktree-BER-3402-label-select-ordering

Conversation

@kevinansfield
Copy link
Member

Summary

  • Removed ignorePunctuation: true from label client-side sort to match server ordering
  • ignorePunctuation caused #-prefixed labels to sort as if the # didn't exist, but the server's name asc puts # before alphabetical characters
  • This mismatch meant each new page of labels loaded via infinite scroll appeared in the wrong position instead of appending to the list

ref https://linear.app/ghost/issue/BER-3402/

ref https://linear.app/ghost/issue/BER-3402/

The client-side sort used `ignorePunctuation: true` which treated `#` as
punctuation, sorting `#label` as `label`. The server's `name asc` ordering
puts `#` before alphabetical characters, so newly loaded pages appeared
in the wrong position instead of being appended to the list.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 4, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7d04cbbb-7bb7-4350-8cea-0f124fbc22cc

📥 Commits

Reviewing files that changed from the base of the PR and between 3671359 and 96a6cdc.

📒 Files selected for processing (1)
  • ghost/admin/app/services/labels-manager.js

Walkthrough

The change modifies the label sorting logic by removing the ignorePunctuation: true parameter from a localeCompare call in the labels-manager service. This updates the sorting algorithm to respect punctuation characters that were previously ignored during alphabetical ordering. The modification affects how labels are ordered but does not alter any public API signatures.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: fixing label ordering to work correctly with infinite scroll by removing the ignorePunctuation option.
Description check ✅ Passed The description clearly explains the problem, solution, and impact: removing ignorePunctuation from client-side sorting to match server behavior and fix infinite scroll label positioning.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch worktree-BER-3402-label-select-ordering

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@kevinansfield kevinansfield enabled auto-merge (squash) March 4, 2026 17:54
@kevinansfield kevinansfield merged commit 895aa01 into main Mar 4, 2026
31 checks passed
@kevinansfield kevinansfield deleted the worktree-BER-3402-label-select-ordering branch March 4, 2026 18:14
mwgustin pushed a commit to mwgustin/homeops that referenced this pull request Mar 22, 2026
…#120)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/sredevopsorg/ghost-on-kubernetes](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes)
| minor | `v6.19.3` → `v6.22.1` |

---

### Release Notes

<details>
<summary>sredevopsorg/ghost-on-kubernetes
(ghcr.io/sredevopsorg/ghost-on-kubernetes)</summary>

###
[`v6.22.1`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.22.1)

[Compare
Source](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/compare/v6.22.0...v6.22.1)

#### What's Changed

- Update event types for GHOST\_VERSION setup by
[@&#8203;ngeorger](https://redirect.github.com/ngeorger) in
[#&#8203;676](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/676)
- Add Trivy vulnerability scanner workflow by
[@&#8203;ngeorger](https://redirect.github.com/ngeorger) in
[#&#8203;677](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/677)
- chore(deps): update actions/checkout action to v6 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;679](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/679)
- chore(deps): update aquasecurity/trivy-action action to v0.35.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;678](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/678)
- chore(deps): update node.js to
[`2365189`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/2365189)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;682](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/682)
- chore(deps): update step-security/harden-runner action to v2.16.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;681](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/681)
- chore(deps): update github/codeql-action action to v4.34.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;680](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/680)

**Full Changelog**:
<sredevopsorg/ghost-on-kubernetes@v6.22.0...v6.22.1>

#### From upstream
[@&#8203;tryghost](https://redirect.github.com/tryghost)

🔒 Added file type validation and content-type control for file uploads
([TryGhost/Ghost#26869](https://redirect.github.com/TryGhost/Ghost/pull/26869))
- Princi Vershwal
🎨 Updated Source to v1.5.2 - Ghost CI
🎨 Updated Casper to v5.10.1 - Ghost CI
🎨 Updated private page access and signup flow
([TryGhost/Ghost#26762](https://redirect.github.com/TryGhost/Ghost/pull/26762))
- John O'Nolan
🎨 Changed email verification error messages to be configurable via
hostSettings
([TryGhost/Ghost#26631](https://redirect.github.com/TryGhost/Ghost/pull/26631))
- Jannis Fedoruk-Betschki
🐛 Fixed font rendering when converting SVGs with text elements to PNG
format
([TryGhost/Ghost#26863](https://redirect.github.com/TryGhost/Ghost/pull/26863))
- Chris Raible
🐛 Fixed "labels is not defined" error when creating comped members via
API
([TryGhost/Ghost#26837](https://redirect.github.com/TryGhost/Ghost/pull/26837))
- Troy Ciesco
🐛 Fixed translations for Inbox Links button
([TryGhost/Ghost#26839](https://redirect.github.com/TryGhost/Ghost/pull/26839))
- Evan Hahn
🐛 Fixed domain warming when warming has completed
([TryGhost/Ghost#26817](https://redirect.github.com/TryGhost/Ghost/pull/26817))
- Sam Lord
🌐 Added missed string wrapping for Portal's offer page
([TryGhost/Ghost#26884](https://redirect.github.com/TryGhost/Ghost/pull/26884))
- Cathy Sarisky
🌐 Added new Chinese language strings
([TryGhost/Ghost#26871](https://redirect.github.com/TryGhost/Ghost/pull/26871))
- tommywong-theinitium
View the changelog for full details:
<TryGhost/Ghost@v6.22.0...v6.22.1>

###
[`v6.22.0`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.22.0)

[Compare
Source](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/compare/v6.21.2...v6.22.0)

#### What's Changed

- Enhance CI workflow with Dockerfile-docker checks by
[@&#8203;ngeorger](https://redirect.github.com/ngeorger) in
[#&#8203;669](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/669)
- ci: Automate building new '-docker' releases when there's a release.
by [@&#8203;markstos](https://redirect.github.com/markstos) in
[#&#8203;639](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/639)
- Wf triggers fixes by
[@&#8203;ngeorger](https://redirect.github.com/ngeorger) in
[#&#8203;670](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/670)
- fix(check-ghost-releases): use GitHub Packages API for LAST\_BUILT by
[@&#8203;markstos](https://redirect.github.com/markstos) in
[#&#8203;671](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/671)
- chore(deps): update gcr.io/distroless/nodejs22-debian13:latest docker
digest to
[`b2a1685`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/b2a1685)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;673](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/673)
- chore(deps): update gcr.io/distroless/nodejs22-debian13:debug-nonroot
docker digest to
[`6731730`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/6731730)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;672](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/672)
- Wf patch logic by
[@&#8203;ngeorger](https://redirect.github.com/ngeorger) in
[#&#8203;674](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/674)

**Full Changelog**:
<sredevopsorg/ghost-on-kubernetes@v6.21.2...v6.22.0>

###
[`v6.21.2`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.21.2)

[Compare
Source](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/compare/v6.21.0...v6.21.2)

#### What's Changed

- ✨ Add healthcheck to Dockerfile. by
[@&#8203;markstos](https://redirect.github.com/markstos) in
[#&#8203;655](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/655)
- Update base image to specific SHA for runtime by
[@&#8203;ngeorger](https://redirect.github.com/ngeorger) in
[#&#8203;665](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/665)
- chore(deps): update sigstore/cosign-installer action to v4.1.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;666](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/666)
- chore(deps): update actions/download-artifact action to v8.0.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;667](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/667)

**Full Changelog**:
<sredevopsorg/ghost-on-kubernetes@v6.21.0...v6.21.2>

###
[`v6.21.0`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.21.0)

[Compare
Source](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/compare/v6.20.0...v6.21.0)

#### What's Changed

- chore: update Ghost and MySQL user IDs to 65532 for non-root executio…
by [@&#8203;ngeorger](https://redirect.github.com/ngeorger) in
[#&#8203;652](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/652)
- chore(deps): update docker/login-action action to v4 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;653](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/653)
- ✨ Add jemalloc to reduce memory consumption by
[@&#8203;markstos](https://redirect.github.com/markstos) in
[#&#8203;654](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/654)
- chore(deps): update docker/setup-buildx-action action to v4 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;656](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/656)
- chore(deps): update docker/metadata-action action to v6 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;663](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/663)
- chore(deps): update docker/build-push-action action to v7 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;662](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/662)
- chore(deps): update step-security/harden-runner action to v2.15.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;661](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/661)
- chore(deps): update github/codeql-action action to v4.32.6 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;660](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/660)
- chore(deps): update node.js to
[`30c0fec`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/30c0fec)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;659](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/659)
- chore(deps): update gcr.io/distroless/nodejs22-debian13:latest docker
digest to
[`b9b6d4a`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/b9b6d4a)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;658](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/658)
- chore(deps): update gcr.io/distroless/nodejs22-debian13:debug-nonroot
docker digest to
[`9bc6ba5`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/9bc6ba5)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;657](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/657)

#### From upstream
[@&#8203;tryghost](https://redirect.github.com/tryghost)

✨ Expanded available cards in welcome email editor
([TryGhost/Ghost#26645](https://redirect.github.com/TryGhost/Ghost/pull/26645))
- Evan Hahn
🐛 Fixed double-prefixed asset URLs when using CDN - Rob Lester
🐛 Fixed contributor user menu Posts link navigating to wrong route
([TryGhost/Ghost#26716](https://redirect.github.com/TryGhost/Ghost/pull/26716))
- Kevin Ansfield
🐛 Fixed contributor posts list not being scrollable
([TryGhost/Ghost#26715](https://redirect.github.com/TryGhost/Ghost/pull/26715))
- Kevin Ansfield
🐛 Fixed missing server-side label search in recipient & segment selects
([TryGhost/Ghost#26699](https://redirect.github.com/TryGhost/Ghost/pull/26699))
- Kevin Ansfield
🐛 Fixed #-prefixed member label select ordering when scrolling
([TryGhost/Ghost#26702](https://redirect.github.com/TryGhost/Ghost/pull/26702))
- Kevin Ansfield

**Full Changelog**:
<sredevopsorg/ghost-on-kubernetes@v6.20.0...v6.21.0>

###
[`v6.20.0`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.20.0)

#### What's Changed

- chore(deps): update github/codeql-action action to v4.32.3 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;630](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/630)
- chore(deps): update docker/build-push-action action to v6.19.2 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;629](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/629)
- docs: Document Dockerfile-docker.dockerfile by
[@&#8203;markstos](https://redirect.github.com/markstos) in
[#&#8203;638](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/638)
- chore(deps): update actions/dependency-review-action action to v4.8.3
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;641](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/641)
- chore(deps): update github/codeql-action action to v4.32.4 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;642](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/642)
- chore(deps): update gcr.io/distroless/nodejs22-debian13:latest docker
digest to
[`72d4913`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/72d4913)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;647](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/647)
- chore(deps): update node.js to
[`b597724`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/b597724)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;644](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/644)
- chore(deps): update gcr.io/distroless/nodejs22-debian13:debug-nonroot
docker digest to
[`874d16e`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/874d16e)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;646](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/646)
- chore(deps): update github artifact actions (major) by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;648](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/648)
- chore(deps): update step-security/harden-runner action to v2.15.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;645](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/645)
- chore(deps): update actions/dependency-review-action action to v4.9.0
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;650](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/650)
- chore(deps): update github/codeql-action action to v4.32.5 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;649](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/649)

#### New Contributors

- [@&#8203;markstos](https://redirect.github.com/markstos) made their
first contribution in
[#&#8203;638](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/638)

**Full Changelog**:
<sredevopsorg/ghost-on-kubernetes@v6.19.1...v6.20.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/mwgustin/homeops).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40OC4xIiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.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