# 用户加入超过100个聊天时，星标聊天会消失

**URL:** https://meta.discourse.org/t/starred-chats-disappear-if-user-is-in-more-than-100-chats/411040
**Category:** Support
**Tags:** chat
**Created:** [2026 年8 月 27 日 07:51 UTC](https://meta.discourse.org/t/starred-chats-disappear-if-user-is-in-more-than-100-chats/411040 "2026-08-27T07:51:46Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### 作者： ![ARK-Helena](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@ARK-Helena](https://meta.discourse.org/u/ARK-Helena)
#### 发布日期： [2026 年8 月 27 日 07:51 UTC](https://meta.discourse.org/t/starred-chats-disappear-if-user-is-in-more-than-100-chats/411040/1 "2026-08-27T07:51:46Z")

</div>

当用户关注的公共频道超过 100 个时，已加星标的聊天频道会消失

关注了超过 100 个公共分类聊天频道的用户，在重新加载 Discourse 后无法可靠地看到所有已加星标的频道。

我验证了以下内容：

- /chat/api/me/channels 仅返回 100 个已关注的公共频道。
- 返回的频道按字母顺序排列。
- 位于前 100 个频道之外的频道未出现在侧边栏和“已加星标”部分中。
- 直接获取该频道确认其状态为开放，且 following=true 和 starred=true。
- 关注少于 100 个公共频道的用户能正常看到相同的已加星标频道。

后端在按字母顺序排列后应用了 MAX\_PUBLIC\_CHANNEL\_RESULTS = 100：

> <https://github.com/discourse/discourse/blob/13915be55032a5144f49bea79dfbdca5b4c99346/plugins/chat/lib/chat/channel_fetcher.rb>

前端似乎通过过滤已经截断的通用频道集合来派生 starredChannels：

> <https://github.com/discourse/discourse/blob/13915be55032a5144f49bea79dfbdca5b4c99346/plugins/chat/assets/javascripts/discourse/services/chat-channels-manager.js>

在引入字母顺序排列更改后，此问题变得一致且明显：

> <https://github.com/discourse/discourse/commit/4c7a4f637f6c6eecdd3fcf6a46a198dbd1ba994a>
>
> \* Sort channels by name
> \* Show channel emoji next to channel name if it exists
> \*… Add dropdown filter to filter by channel membership
> status (joined/not joined)
> 
> \<img width="1102" height="458" alt="image"
> src="https://github.com/user-attachments/assets/309490fc-abad-48a3-95e0-a037f7ea2f73"
> /\>

预期行为：无论其在公共频道结果中的位置如何，所有已加入和已加星标的频道都应显示在“已加星标”中。 可能的修复方案是独立加载已加星标的频道，或对所有已关注的公共频道进行分页处理。

---

_[View the full topic](https://meta.discourse.org/t/starred-chats-disappear-if-user-is-in-more-than-100-chats/411040)._
