Skip to content

Support entities autocomplete for local characters#30399

Closed
lkostrowski wants to merge 12 commits intohome-assistant:devfrom
lkostrowski:lkostrowski/combobox-diacritics
Closed

Support entities autocomplete for local characters#30399
lkostrowski wants to merge 12 commits intohome-assistant:devfrom
lkostrowski:lkostrowski/combobox-diacritics

Conversation

@lkostrowski
Copy link
Copy Markdown

@lkostrowski lkostrowski commented Mar 28, 2026

Proposed change

PR adds custom normalization of searched queries (to select/combobox via Fuse.js). Current implementation properly works with some unicode characters, but fail for others

For example polish łazienika (bathroom) contains character ł. Fuse doesn't match it with non-diactric latin l character.

Effectively this ends up with poor UX with entity search. User must decide either to call entities incorrectly ("lazienka") or explicitly type "łazienka" which opts-out fuzzy search and is inconvenient (requires alt+l)

Screenshots

CleanShot 2026-03-28 at 13 56 08@2x

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (thank you!)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes # not found existing
  • This PR is related to issue or discussion: ditto
  • Link to documentation pull request: n/a
  • Link to developer documentation pull request: n/a
  • Link to backend pull request: n/a

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

To help with the load of incoming pull requests:

Copy link
Copy Markdown

@home-assistant home-assistant bot left a comment

Choose a reason for hiding this comment

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

Hi @lkostrowski

It seems you haven't yet signed a CLA. Please do so here.

Once you do that we will be able to review and accept this pull request.

Thanks!

@lkostrowski lkostrowski marked this pull request as ready for review March 28, 2026 13:33
Copy link
Copy Markdown
Member

@piitaya piitaya left a comment

Choose a reason for hiding this comment

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

Thanks for the PR!

We had a similar issue before: we added custom diacritics logic (#21150), then removed it when Fuse.js shipped ignoreDiacritics natively (#24041).

The issue is that Fuse.js's ignoreDiacritics only uses NFD normalization, which doesn't handle characters like ł, ø, đ, or ß.

Your fix is the right approach. Could you also open a PR or issue on Fuse.js to fix their internal stripDiacritics? If they fix it upstream, we can remove this workaround again like we did in #24041.

You added normalizingGetFn to some standalone Fuse instances (quick-bar, automation-add-search,...) without adding ignoreDiacritics: true.
It works because you normalize search terms manually, but it's inconsistent with the other call sites. Can you add ignoreDiacritics: true to those instances too?

@lkostrowski
Copy link
Copy Markdown
Author

lkostrowski commented Mar 31, 2026

Thanks for the review, I will look into that

PR to Fuse krisk/Fuse#816

@lkostrowski
Copy link
Copy Markdown
Author

@piitaya if I understood correctly, I fixed the issue, I missed one spot where normalization was missing.

Maybe after fixing the bug, I will extract shared/common Fuse options to single instance for reused behavior

@lkostrowski lkostrowski requested a review from piitaya March 31, 2026 06:55
Copy link
Copy Markdown
Member

@piitaya piitaya left a comment

Choose a reason for hiding this comment

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

Thank your for the update !

I added some suggested changes. Otherwise it's ok !

I agree, we can merge it after these changes and create another PR to share default fuse options.

keys: ["domain", "localized_domain_name", "title"],
isCaseSensitive: false,
minMatchCharLength: Math.min(filter.length, 2),
threshold: 0.2,
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.

We can also add ignoreDiacritics here too.

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.

Probably need to add getFn: normalizingGetFn too

Comment on lines +62 to +65
// Normalize non-decomposable diacritics in search terms to match getFn normalization
const normalizedSearch =
typeof search === "string" ? stripDiacritics(search) : search;

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.

This function is not exported and only used in this file. Other callers already normalize terms before passing them in so the second strip is not useful.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I think it is needed, for example HaAutomationAddSearch component directly passes filter from UI and I can't find any normalization out there.

In general it's not too DRY, IMO we can solve it in two phases

  1. Make actual fix, accept that the change is distributed (such implementation should not "leak" but we want small code increment)
  2. Create a facade that will wrap Fuse, for example class FuzzySearch. Inside instantionate Fuse, allow to inject options, make a public "filter" method that will normalize inside it and delegate to Fuse. Then replace Fuse everywhere and block access to Fuse import in the codebase in other places than FuzzySearch. I can implement this

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Applied other suggestions

@home-assistant
Copy link
Copy Markdown

home-assistant bot commented Apr 2, 2026

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@home-assistant home-assistant bot marked this pull request as draft April 2, 2026 10:29
krisk added a commit to krisk/Fuse that referenced this pull request Apr 2, 2026
Characters like ł, ø, ß, đ, ħ, ŧ, ı survive NFD normalization
unchanged. Add explicit replacement map to convert them to their
ASCII equivalents (e.g. ł→l, ß→ss, ø→o).

Based on the approach from home-assistant/frontend#30399.

Closes #816

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
renovate bot added a commit to JeromeFitz/packages that referenced this pull request Apr 4, 2026
<!-- COMMIT_BODY_TEXT_BEGIN -->

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Adoption](https://docs.renovatebot.com/merge-confidence/) |
[Passing](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [fuse.js](http://fusejs.io)
([source](https://redirect.github.com/krisk/Fuse)) | [`7.2.0` →
`7.3.0`](https://renovatebot.com/diffs/npm/fuse.js/7.2.0/7.3.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/fuse.js/7.3.0?slim=true)
|
![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fuse.js/7.3.0?slim=true)
|
![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fuse.js/7.2.0/7.3.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fuse.js/7.2.0/7.3.0?slim=true)
|

---

### Release Notes

<details>
<summary>krisk/Fuse (fuse.js)</summary>

###
[`v7.3.0`](https://redirect.github.com/krisk/Fuse/blob/HEAD/CHANGELOG.md#730-2026-04-04)

[Compare
Source](https://redirect.github.com/krisk/Fuse/compare/v7.2.0...v7.3.0)

##### Features

- add BigInt support for indexing and search
([0ae662c](https://redirect.github.com/krisk/Fuse/commit/0ae662cb825e1c9db7cdaf8331aab992f293b508)),
closes [#&#8203;814](https://redirect.github.com/krisk/Fuse/issues/814)
- add static Fuse.match() for single string matching
([460eb5b](https://redirect.github.com/krisk/Fuse/commit/460eb5be84b56525710602ec44e2af402ca09686))
- add token search — per-term fuzzy matching with IDF scoring
([68c1dcf](https://redirect.github.com/krisk/Fuse/commit/68c1dcf981a60ef46387440dc550fc546254bae9))
- getFn null return, escaped pipe in extended search, empty query
returns all
([d33b735](https://redirect.github.com/krisk/Fuse/commit/d33b735f62ae2f149808a49ff0c185a04bee28d7)),
closes [#&#8203;800](https://redirect.github.com/krisk/Fuse/issues/800)
[#&#8203;765](https://redirect.github.com/krisk/Fuse/issues/765)
[#&#8203;728](https://redirect.github.com/krisk/Fuse/issues/728)
- removeAt() now returns the removed item
([8cec7e2](https://redirect.github.com/krisk/Fuse/commit/8cec7e2f99a7063e0aa9a04b8cedf0813e169531)),
closes [#&#8203;675](https://redirect.github.com/krisk/Fuse/issues/675)
- **search:** support keyless string entries in logical queries
([8695556](https://redirect.github.com/krisk/Fuse/commit/86955565a106514212639ecfd3ff45d492f4a0a3)),
closes [#&#8203;736](https://redirect.github.com/krisk/Fuse/issues/736)

##### Bug Fixes

- **index:** coerce non-string array values to strings during indexing
([db0e181](https://redirect.github.com/krisk/Fuse/commit/db0e181e5db988d5fad8bee1e281fa20f8a69376)),
closes [#&#8203;738](https://redirect.github.com/krisk/Fuse/issues/738)
- **index:** strip getFn from keys in toJSON() for safe serialization
([0f2a69b](https://redirect.github.com/krisk/Fuse/commit/0f2a69babf8c76faeb366c471e17430f5f6d8595)),
closes [#&#8203;798](https://redirect.github.com/krisk/Fuse/issues/798)
- **lint:** suppress unused var in toJSON destructure
([d63c0e8](https://redirect.github.com/krisk/Fuse/commit/d63c0e8bd82e4c4d4cec5844a800e64d3b056b29))
- merge overlapping match indices in extended search
([06c5e97](https://redirect.github.com/krisk/Fuse/commit/06c5e97c1b79f6e29d482a300eea99a9b6fad82f))
- **search:** handle non-decomposable diacritics in stripDiacritics
([5a01f29](https://redirect.github.com/krisk/Fuse/commit/5a01f2994ffe48f7e0e4191f4cdeeabe6a3967a5)),
closes
[home-assistant/frontend#30399](https://redirect.github.com/home-assistant/frontend/issues/30399)
[#&#8203;816](https://redirect.github.com/krisk/Fuse/issues/816)
- **search:** handle quoted tokens with inner spaces and quotes in
extended search
([c226523](https://redirect.github.com/krisk/Fuse/commit/c22652342b2d15c12f5dc5870e6b4b0eef1d2247)),
closes [#&#8203;810](https://redirect.github.com/krisk/Fuse/issues/810)
- **search:** inverse patterns now work correctly across multiple keys
([9351882](https://redirect.github.com/krisk/Fuse/commit/935188228ed50dc0a555b41eda47447ada59dd6b)),
closes [#&#8203;712](https://redirect.github.com/krisk/Fuse/issues/712)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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

---

<!-- COMMIT_BODY_TEXT_END -->

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbIvCfk6bvuI8gRGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
solaris007 pushed a commit to adobe/spacecat-api-service that referenced this pull request Apr 5, 2026
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [fuse.js](http://fusejs.io)
([source](https://redirect.github.com/krisk/Fuse)) | [`7.2.0` →
`7.3.0`](https://renovatebot.com/diffs/npm/fuse.js/7.2.0/7.3.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/fuse.js/7.3.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fuse.js/7.2.0/7.3.0?slim=true)
|
| [tldts](https://redirect.github.com/remusao/tldts) | [`7.0.27` →
`7.0.28`](https://renovatebot.com/diffs/npm/tldts/7.0.27/7.0.28) |
![age](https://developer.mend.io/api/mc/badges/age/npm/tldts/7.0.28?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tldts/7.0.27/7.0.28?slim=true)
|

---

### Release Notes

<details>
<summary>krisk/Fuse (fuse.js)</summary>

###
[`v7.3.0`](https://redirect.github.com/krisk/Fuse/blob/HEAD/CHANGELOG.md#730-2026-04-04)

[Compare
Source](https://redirect.github.com/krisk/Fuse/compare/v7.2.0...v7.3.0)

##### Features

- add BigInt support for indexing and search
([0ae662c](https://redirect.github.com/krisk/Fuse/commit/0ae662cb825e1c9db7cdaf8331aab992f293b508)),
closes [#&#8203;814](https://redirect.github.com/krisk/Fuse/issues/814)
- add static Fuse.match() for single string matching
([460eb5b](https://redirect.github.com/krisk/Fuse/commit/460eb5be84b56525710602ec44e2af402ca09686))
- add token search — per-term fuzzy matching with IDF scoring
([68c1dcf](https://redirect.github.com/krisk/Fuse/commit/68c1dcf981a60ef46387440dc550fc546254bae9))
- getFn null return, escaped pipe in extended search, empty query
returns all
([d33b735](https://redirect.github.com/krisk/Fuse/commit/d33b735f62ae2f149808a49ff0c185a04bee28d7)),
closes [#&#8203;800](https://redirect.github.com/krisk/Fuse/issues/800)
[#&#8203;765](https://redirect.github.com/krisk/Fuse/issues/765)
[#&#8203;728](https://redirect.github.com/krisk/Fuse/issues/728)
- removeAt() now returns the removed item
([8cec7e2](https://redirect.github.com/krisk/Fuse/commit/8cec7e2f99a7063e0aa9a04b8cedf0813e169531)),
closes [#&#8203;675](https://redirect.github.com/krisk/Fuse/issues/675)
- **search:** support keyless string entries in logical queries
([8695556](https://redirect.github.com/krisk/Fuse/commit/86955565a106514212639ecfd3ff45d492f4a0a3)),
closes [#&#8203;736](https://redirect.github.com/krisk/Fuse/issues/736)

##### Bug Fixes

- **index:** coerce non-string array values to strings during indexing
([db0e181](https://redirect.github.com/krisk/Fuse/commit/db0e181e5db988d5fad8bee1e281fa20f8a69376)),
closes [#&#8203;738](https://redirect.github.com/krisk/Fuse/issues/738)
- **index:** strip getFn from keys in toJSON() for safe serialization
([0f2a69b](https://redirect.github.com/krisk/Fuse/commit/0f2a69babf8c76faeb366c471e17430f5f6d8595)),
closes [#&#8203;798](https://redirect.github.com/krisk/Fuse/issues/798)
- **lint:** suppress unused var in toJSON destructure
([d63c0e8](https://redirect.github.com/krisk/Fuse/commit/d63c0e8bd82e4c4d4cec5844a800e64d3b056b29))
- merge overlapping match indices in extended search
([06c5e97](https://redirect.github.com/krisk/Fuse/commit/06c5e97c1b79f6e29d482a300eea99a9b6fad82f))
- **search:** handle non-decomposable diacritics in stripDiacritics
([5a01f29](https://redirect.github.com/krisk/Fuse/commit/5a01f2994ffe48f7e0e4191f4cdeeabe6a3967a5)),
closes
[home-assistant/frontend#30399](https://redirect.github.com/home-assistant/frontend/issues/30399)
[#&#8203;816](https://redirect.github.com/krisk/Fuse/issues/816)
- **search:** handle quoted tokens with inner spaces and quotes in
extended search
([c226523](https://redirect.github.com/krisk/Fuse/commit/c22652342b2d15c12f5dc5870e6b4b0eef1d2247)),
closes [#&#8203;810](https://redirect.github.com/krisk/Fuse/issues/810)
- **search:** inverse patterns now work correctly across multiple keys
([9351882](https://redirect.github.com/krisk/Fuse/commit/935188228ed50dc0a555b41eda47447ada59dd6b)),
closes [#&#8203;712](https://redirect.github.com/krisk/Fuse/issues/712)

</details>

<details>
<summary>remusao/tldts (tldts)</summary>

###
[`v7.0.28`](https://redirect.github.com/remusao/tldts/blob/HEAD/CHANGELOG.md#v7028-Sat-Apr-04-2026)

[Compare
Source](https://redirect.github.com/remusao/tldts/compare/v7.0.27...v7.0.28)

##### 📜 Update Public Suffix List

- `tldts-experimental`, `tldts`
- Update upstream public suffix list
[#&#8203;2541](https://redirect.github.com/remusao/tldts/pull/2541)
([@&#8203;remusao](https://redirect.github.com/remusao))

##### :nut\_and\_bolt: Dependencies

- Bump lodash from 4.17.23 to 4.18.1
[#&#8203;2546](https://redirect.github.com/remusao/tldts/pull/2546)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump handlebars from 4.7.8 to 4.7.9
[#&#8203;2542](https://redirect.github.com/remusao/tldts/pull/2542)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump picomatch from 2.3.1 to 2.3.2
[#&#8203;2540](https://redirect.github.com/remusao/tldts/pull/2540)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump typescript-eslint from 8.57.2 to 8.58.0
[#&#8203;2543](https://redirect.github.com/remusao/tldts/pull/2543)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump rollup from 4.60.0 to 4.60.1
[#&#8203;2544](https://redirect.github.com/remusao/tldts/pull/2544)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump rollup from 4.59.0 to 4.60.0
[#&#8203;2536](https://redirect.github.com/remusao/tldts/pull/2536)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump typescript-eslint from 8.57.1 to 8.57.2
[#&#8203;2539](https://redirect.github.com/remusao/tldts/pull/2539)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))

##### Authors: 2

-
[@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])
- Rémi ([@&#8203;remusao](https://redirect.github.com/remusao))

***

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 2pm on Saturday" in timezone
Europe/Zurich, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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/adobe/spacecat-api-service).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@lkostrowski lkostrowski marked this pull request as ready for review April 5, 2026 17:25
@home-assistant home-assistant bot requested a review from piitaya April 5, 2026 17:25
@home-assistant home-assistant bot dismissed their stale review April 5, 2026 17:25

Stale

ravverma pushed a commit to adobe/spacecat-api-service that referenced this pull request Apr 6, 2026
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [fuse.js](http://fusejs.io)
([source](https://redirect.github.com/krisk/Fuse)) | [`7.2.0` →
`7.3.0`](https://renovatebot.com/diffs/npm/fuse.js/7.2.0/7.3.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/fuse.js/7.3.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fuse.js/7.2.0/7.3.0?slim=true)
|
| [tldts](https://redirect.github.com/remusao/tldts) | [`7.0.27` →
`7.0.28`](https://renovatebot.com/diffs/npm/tldts/7.0.27/7.0.28) |
![age](https://developer.mend.io/api/mc/badges/age/npm/tldts/7.0.28?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tldts/7.0.27/7.0.28?slim=true)
|

---

### Release Notes

<details>
<summary>krisk/Fuse (fuse.js)</summary>

###
[`v7.3.0`](https://redirect.github.com/krisk/Fuse/blob/HEAD/CHANGELOG.md#730-2026-04-04)

[Compare
Source](https://redirect.github.com/krisk/Fuse/compare/v7.2.0...v7.3.0)

##### Features

- add BigInt support for indexing and search
([0ae662c](https://redirect.github.com/krisk/Fuse/commit/0ae662cb825e1c9db7cdaf8331aab992f293b508)),
closes [#&#8203;814](https://redirect.github.com/krisk/Fuse/issues/814)
- add static Fuse.match() for single string matching
([460eb5b](https://redirect.github.com/krisk/Fuse/commit/460eb5be84b56525710602ec44e2af402ca09686))
- add token search — per-term fuzzy matching with IDF scoring
([68c1dcf](https://redirect.github.com/krisk/Fuse/commit/68c1dcf981a60ef46387440dc550fc546254bae9))
- getFn null return, escaped pipe in extended search, empty query
returns all
([d33b735](https://redirect.github.com/krisk/Fuse/commit/d33b735f62ae2f149808a49ff0c185a04bee28d7)),
closes [#&#8203;800](https://redirect.github.com/krisk/Fuse/issues/800)
[#&#8203;765](https://redirect.github.com/krisk/Fuse/issues/765)
[#&#8203;728](https://redirect.github.com/krisk/Fuse/issues/728)
- removeAt() now returns the removed item
([8cec7e2](https://redirect.github.com/krisk/Fuse/commit/8cec7e2f99a7063e0aa9a04b8cedf0813e169531)),
closes [#&#8203;675](https://redirect.github.com/krisk/Fuse/issues/675)
- **search:** support keyless string entries in logical queries
([8695556](https://redirect.github.com/krisk/Fuse/commit/86955565a106514212639ecfd3ff45d492f4a0a3)),
closes [#&#8203;736](https://redirect.github.com/krisk/Fuse/issues/736)

##### Bug Fixes

- **index:** coerce non-string array values to strings during indexing
([db0e181](https://redirect.github.com/krisk/Fuse/commit/db0e181e5db988d5fad8bee1e281fa20f8a69376)),
closes [#&#8203;738](https://redirect.github.com/krisk/Fuse/issues/738)
- **index:** strip getFn from keys in toJSON() for safe serialization
([0f2a69b](https://redirect.github.com/krisk/Fuse/commit/0f2a69babf8c76faeb366c471e17430f5f6d8595)),
closes [#&#8203;798](https://redirect.github.com/krisk/Fuse/issues/798)
- **lint:** suppress unused var in toJSON destructure
([d63c0e8](https://redirect.github.com/krisk/Fuse/commit/d63c0e8bd82e4c4d4cec5844a800e64d3b056b29))
- merge overlapping match indices in extended search
([06c5e97](https://redirect.github.com/krisk/Fuse/commit/06c5e97c1b79f6e29d482a300eea99a9b6fad82f))
- **search:** handle non-decomposable diacritics in stripDiacritics
([5a01f29](https://redirect.github.com/krisk/Fuse/commit/5a01f2994ffe48f7e0e4191f4cdeeabe6a3967a5)),
closes
[home-assistant/frontend#30399](https://redirect.github.com/home-assistant/frontend/issues/30399)
[#&#8203;816](https://redirect.github.com/krisk/Fuse/issues/816)
- **search:** handle quoted tokens with inner spaces and quotes in
extended search
([c226523](https://redirect.github.com/krisk/Fuse/commit/c22652342b2d15c12f5dc5870e6b4b0eef1d2247)),
closes [#&#8203;810](https://redirect.github.com/krisk/Fuse/issues/810)
- **search:** inverse patterns now work correctly across multiple keys
([9351882](https://redirect.github.com/krisk/Fuse/commit/935188228ed50dc0a555b41eda47447ada59dd6b)),
closes [#&#8203;712](https://redirect.github.com/krisk/Fuse/issues/712)

</details>

<details>
<summary>remusao/tldts (tldts)</summary>

###
[`v7.0.28`](https://redirect.github.com/remusao/tldts/blob/HEAD/CHANGELOG.md#v7028-Sat-Apr-04-2026)

[Compare
Source](https://redirect.github.com/remusao/tldts/compare/v7.0.27...v7.0.28)

##### 📜 Update Public Suffix List

- `tldts-experimental`, `tldts`
- Update upstream public suffix list
[#&#8203;2541](https://redirect.github.com/remusao/tldts/pull/2541)
([@&#8203;remusao](https://redirect.github.com/remusao))

##### :nut\_and\_bolt: Dependencies

- Bump lodash from 4.17.23 to 4.18.1
[#&#8203;2546](https://redirect.github.com/remusao/tldts/pull/2546)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump handlebars from 4.7.8 to 4.7.9
[#&#8203;2542](https://redirect.github.com/remusao/tldts/pull/2542)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump picomatch from 2.3.1 to 2.3.2
[#&#8203;2540](https://redirect.github.com/remusao/tldts/pull/2540)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump typescript-eslint from 8.57.2 to 8.58.0
[#&#8203;2543](https://redirect.github.com/remusao/tldts/pull/2543)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump rollup from 4.60.0 to 4.60.1
[#&#8203;2544](https://redirect.github.com/remusao/tldts/pull/2544)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump rollup from 4.59.0 to 4.60.0
[#&#8203;2536](https://redirect.github.com/remusao/tldts/pull/2536)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))
- Bump typescript-eslint from 8.57.1 to 8.57.2
[#&#8203;2539](https://redirect.github.com/remusao/tldts/pull/2539)
([@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]))

##### Authors: 2

-
[@&#8203;dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])
- Rémi ([@&#8203;remusao](https://redirect.github.com/remusao))

***

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 2pm on Saturday" in timezone
Europe/Zurich, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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/adobe/spacecat-api-service).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@MindFreeze
Copy link
Copy Markdown
Member

The fuse changes have been merged in #51457

@lkostrowski
Copy link
Copy Markdown
Author

Great, looks like we ain't gonna need it anymore 👍

@lkostrowski lkostrowski closed this Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants