Закреплённые чат-каналы исчезают, когда пользователь подписывается более чем на 100 публичных каналов
Пользователь, подписанный более чем на 100 публичных категорий чат-каналов, не может стабильно видеть все свои закреплённые каналы после перезагрузки Discourse.
Канал, находящийся вне первых 100, отсутствует в боковой панели и разделе «Закреплённые».
Прямой запрос к этому каналу подтверждает, что он открыт, а following=true и starred=true.
Пользователи, подписанные менее чем на 100 публичных каналов, видят тот же закреплённый канал в обычном режиме.
Бэкенд применяет MAX_PUBLIC_CHANNEL_RESULTS = 100 после алфавитной сортировки:
Фронтенд, по-видимому, формирует starredChannels, фильтруя уже обрезанный общий набор каналов:
Это стало стабильно заметным после изменения на алфавитную сортировку:
Ожидаемое поведение: все присоединённые и закреплённые каналы должны отображаться в разделе «Закреплённые», независимо от их позиции в общем результате публичных каналов. Возможные решения: загрузка закреплённых каналов независимо или постраничная выдача всех подписанных публичных каналов.
спасибо за отчёт @ARK-Helena этот случай выглядит как граничный[1], поэтому я «разделил» яблоко надвое и добавил поддержку получения избранных каналов отдельно от обычных, но сохранил лимит в 100 на каждый «тип».
вау @zogstrip, это было невероятно быстро Интересно, пользователи, состоящие более чем в 100 чатах любого типа, всё ещё могут загрузить их все в боковой панели? Есть ли там какая-то пагинация или хотя бы указание на то, что список обрезан? Большое спасибо!
Нет, такой возможности нет. Именно поэтому я и сказал, что «разрезал яблоко пополам», потому что добавление постраничной навигации потребовало бы значительно больше усилий. И поскольку это очень необычное состояние, нам придётся подождать больше «сообщений от пользователей», прежде чем вкладывать в это работу.