В ответах чата отсутствует отрывок

Недавно я восстановил свой самохостинговый Discourse и заметил, что у всех ответов в чате исчез текст выдержки. Аватарка ответа всё ещё видна, идентификатор href корректен, и при клике вы переходите к нужному сообщению.

При создании нового ответа выдержка появляется после отправки, но если закрыть чат, она исчезает, как и у остальных.

3.3.0.beta2-dev (f7a1272fa4)

(Насколько мне известно, у меня нет никаких связанных плагинов или модификаций, которые могли бы этому помешать)


         {
            "id": 1892,
            "message": "тестовый ответ",
            "cooked": "\u003cp\u003eтестовый ответ\u003c/p\u003e",
            "created_at": "2024-04-29T19:02:11Z",
            "excerpt": "тестовый ответ",
            "chat_channel_id": 2,
            "streaming": false,
            "user": {...},
            "mentioned_users": [],
            "available_flags": [],
            "chat_webhook_event": null,
            "in_reply_to": {
                "id": 1880,
                "cooked": "\u003cp\u003eearn teh powahz\u003c/p\u003e",
                "excerpt": null,
                "user": {...},
                "chat_webhook_event": null
            },
            "uploads": []
        },
2 лайка

Мой экземпляр разработки на версии 3.3.0.beta2-dev (a564274ba2) старше на неделю, и у него нет этой проблемы. Поэтому я предполагаю, что это связано с этим https://github.com/discourse/discourse/pull/26712 или этим FIX: build chat message excerpt for thread preview by dbattersby · Pull Request #26765 · discourse/discourse · GitHub

1 лайк

В моём случае, когда сообщений чата было всего около 1000, было проще просто обновить их все, чтобы добавить фрагмент:

Chat::Message.where(excerpt: nil).each{|m| m.update(excerpt: m.build_excerpt) };0

Но исправление кода заключается в добавлении резервного варианта в plugins/chat/app/serializers/chat/in_reply_to_serializer.rb:

def excerpt
  object.excerpt || object.build_excerpt
end
1 лайк

Спасибо за сообщение об ошибке. Мне удалось воспроизвести эту проблему. Я займусь её изучением и в ближайшее время предоставлю исправление.

2 лайка

Это должно быть исправлено в этом коммите:

3 лайка

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.