Skip to content

fix(search): ellipsize parity matrix labels by runes, not bytes - #3643

Merged
dschmidt merged 1 commit into
mainfrom
fix/parity-matrix-runes
Oct 2, 2026
Merged

dschmidt merged 1 commit into
mainfrom
fix/parity-matrix-runes

Conversation

@dschmidt

@dschmidt dschmidt commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

The byte-based shorten/shortenQuery in the parity matrix cut truncation points into the middle of multi-byte UTF-8 sequences. Visible on the search branch (#3211), whose fixtures include Motörhead: its committed parity README contains literally invalid UTF-8 (audio.arti...¶rhead=3, the being the orphaned second byte of ö).

This replaces both helpers with a shared rune-based ellipsize, so the cut counts characters and can never split a sequence. The matrix on main contains no affected labels and is unchanged; the broken README on the search branch heals itself with the next matrix regeneration there once this is merged.

@codacy-production

codacy-production Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity

Metric Results
Complexity 0

View in Codacy

🟢 Coverage ∅ diff coverage · +0.00% coverage variation

Metric Results
Coverage variation ✅ +0.00% coverage variation (-1.00%)
Diff coverage ✅ ∅ diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (e848d46) 89089 21609 24.26%
Head commit (b2039f6) 89089 (+0) 21611 (+2) 24.26% (+0.00%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#3643) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@dschmidt
dschmidt force-pushed the fix/parity-matrix-runes branch 2 times, most recently from 9b64ebb to 65fe5d7 Compare October 2, 2026 07:21
@dschmidt
dschmidt marked this pull request as ready for review October 2, 2026 07:23
@dschmidt
dschmidt requested a review from fschade October 2, 2026 07:25
@dschmidt
dschmidt force-pushed the fix/parity-matrix-runes branch from 65fe5d7 to b2039f6 Compare October 2, 2026 10:47
The byte-based truncation cut through the two-byte UTF-8 sequence of
Motörhead's ö, committing invalid UTF-8 into the parity README. Shared
rune-based ellipsize helper; matrix regenerated.
@dschmidt
dschmidt merged commit 3b37e29 into main Oct 2, 2026
13 of 19 checks passed
@dschmidt
dschmidt deleted the fix/parity-matrix-runes branch October 2, 2026 11:37
@openclouders openclouders mentioned this pull request Oct 2, 2026
sdwilsh pushed a commit to sdwilsh/ansible-playbooks that referenced this pull request Oct 7, 2026
#1949)

##### [\`8.1.0\`](https://github.com/opencloud-eu/opencloud/blob/HEAD/CHANGELOG.md#810---2026-10-05)

##### ❤️ Thanks to all contributors! ❤️

[@NickWalters](https://github.com/NickWalters), [@aduffeck](https://github.com/aduffeck), [@butonic](https://github.com/butonic), [@dschmidt](https://github.com/dschmidt), [@fschade](https://github.com/fschade), [@maki5](https://github.com/maki5), [@micbar](https://github.com/micbar), [@pascalwengerter](https://github.com/pascalwengerter), [@pbleser-oc](https://github.com/pbleser-oc), [@rhafer](https://github.com/rhafer), [@saw-jan](https://github.com/saw-jan), [@schweigisito](https://github.com/schweigisito), [@v-scharf](https://github.com/v-scharf), [@zerox80](https://github.com/zerox80)

##### 🔒 Security

- feat(proxy): add optional OIDC access token audience validation \[[#3466](opencloud-eu/opencloud#3466)]

##### 🐛 Bug Fixes

- Reindex disabled spaces once they get enabled again \[[#3579](opencloud-eu/opencloud#3579)]
- fix(search): tika key fixes \[[#3651](opencloud-eu/opencloud#3651)]
- fix(search): keep trashed and live folders at the same path apart \[[#3602](opencloud-eu/opencloud#3602)]
- Fix/uploads cli no async consumer \[[#3603](opencloud-eu/opencloud#3603)]
- Remove the timeout when reindexing spaces \[[#3543](opencloud-eu/opencloud#3543)]
- fix(shares): not auto accepting shares created by guest users \[[#3533](opencloud-eu/opencloud#3533)]
- fix(graph): fix PatchMe method to prevent password change \[[#3526](opencloud-eu/opencloud#3526)]

##### 📈 Enhancement

- feat: add new editor roles \[[#3637](opencloud-eu/opencloud#3637)]
- feat(collaboration): let admins disable wopi extensions \[[#3633](opencloud-eu/opencloud#3633)]
- fix(collaboration): send LastModifiedTime and the EuroOffice file size \[[#3636](opencloud-eu/opencloud#3636)]
- feat(collaboration): mobile web view for EuroOffice \[[#3635](opencloud-eu/opencloud#3635)]
- fix(collaboration): harden wopi token handling \[[#3630](opencloud-eu/opencloud#3630)]
- add posixfs index command \[[#3068](opencloud-eu/opencloud#3068)]
- feat(proxy): add per-service metrics to the proxy service \[[#3521](opencloud-eu/opencloud#3521)]

##### ✅ Tests

- fix(search): ellipsize parity matrix labels by runes, not bytes \[[#3643](opencloud-eu/opencloud#3643)]
- fix(collaboration): mint the mobile view test token with the token manager secret \[[#3647](opencloud-eu/opencloud#3647)]
- run cli tests with decomposed nightly \[[#3580](opencloud-eu/opencloud#3580)]
- \[decomposed] test(api): remove passing notification tests from expected failure \[[#3555](opencloud-eu/opencloud#3555)]
- api-test: add CLI test for reindexing all spaces including disabled \[[#3560](opencloud-eu/opencloud#3560)]

##### 📚 Documentation

- \[SKIP CI] fix: add file_read documentation to audit log docu \[[#3503](opencloud-eu/opencloud#3503)]

##### 📦️ Dependencies

- \[full-ci] chore: bump web to v8.1.0 \[[#3656](opencloud-eu/opencloud#3656)]
- chore: bump reva to latest main \[[#3642](opencloud-eu/opencloud#3642)]
- chore: bump libre-graph-api-go to v1.0.8 \[[#3645](opencloud-eu/opencloud#3645)]
- build(deps): bump github.com/nats-io/nats.go from 1.53.1 to 1.54.0 \[[#3584](opencloud-eu/opencloud#3584)]
- build(deps): bump github.com/onsi/gomega from 1.42.1 to 1.43.1 \[[#3582](opencloud-eu/opencloud#3582)]
- build(deps): bump google.golang.org/grpc from 1.83.2 to 1.84.0 \[[#3581](opencloud-eu/opencloud#3581)]
- build(deps): bump github.com/beevik/etree from 1.7.1 to 1.8.0 \[[#3583](opencloud-eu/opencloud#3583)]
- build(deps): bump golang.org/x/image from 0.45.0 to 0.46.0 \[[#3573](opencloud-eu/opencloud#3573)]
- build(deps): bump github.com/nats-io/nats-server/v2 from 2.14.5 to 2.15.0 \[[#3576](opencloud-eu/opencloud#3576)]
- build(deps): bump golang.org/x/text from 0.41.0 to 0.42.0 \[[#3552](opencloud-eu/opencloud#3552)]
- build(deps): bump golang.org/x/sync from 0.22.0 to 0.23.0 \[[#3551](opencloud-eu/opencloud#3551)]
- build(deps): bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.70.0 to 0.71.0 \[[#3427](opencloud-eu/opencloud#3427)]
- build(deps): bump github.com/olekukonko/errors from 1.2.0 to 1.3.0 \[[#3557](opencloud-eu/opencloud#3557)]
- build(deps): bump github.com/prometheus/client_model from 0.6.2 to 0.6.3 \[[#3550](opencloud-eu/opencloud#3550)]
- build(deps): bump github.com/shamaton/msgpack/v2 from 2.4.1 to 2.4.2 \[[#3459](opencloud-eu/opencloud#3459)]
- build(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.45.0 to 1.46.0 \[[#3428](opencloud-eu/opencloud#3428)]
- build(deps): bump github.com/sirupsen/logrus from 1.10.1 to 1.10.2 \[[#3492](opencloud-eu/opencloud#3492)]

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants