Skip to content

Case-insensitive topics in unreads data #980

Open
@gnprice

Description

@gnprice

Topic names in Zulip are case-insensitive.

Currently, however, our Unreads data structure keeps the data for each channel/stream as just a Map keyed by topic name. It should instead treat messages where the topic names differ only in case (and that have the same stream ID) as belonging to the same topic.

There's actually a server bug where this doesn't properly happen in the unreads data we get in the initial snapshot:
https://chat.zulip.org/#narrow/stream/48-mobile/topic/Case.20sensitivity.20in.20topics/near/1954334
But we should also handle this properly in events, and in looking up data. For example handleMessageEvent should put the new message into an existing topic if it differs only in case.

If fixing this issue for events has a side effect of working around the server-side issue, then that's nice. But if it doesn't, we don't need to add a workaround. The issue seems fairly uncommon, so it's OK if the symptoms continue when using a server that still has the bug.

Related issues

Metadata

Metadata

Assignees

Labels

a-modelImplementing our data model (PerAccountStore, etc.)help wanted

Type

No type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions