Ответьте, затем отредактируйте, чтобы добавить дублирование уведомления о цитировании

Когда кто-то отвечает вам, цитируя вас, вы получаете два уведомления: одно за ответ и одно за цитирование. Это намеренно? Мне кажется, это немного избыточно.

7 лайков

Да, это не задумано и находится на грани бага…

Можете подтвердить, что вы получили два уведомления здесь?

3 лайка

Я здесь не получил, но, возможно, это потому, что вы ответили на тему, а не на другой пост. У меня была эта проблема с вашим ответом пять дней назад:

А также от другого человека сегодня утром:


Вы получили два уведомления от этого ответа? Мне кажется, это происходит каждый раз (опять же, за исключением ответа на тему).

1 лайк

Это прямой ответ не на тему.

Я полностью верю, что это происходит, просто хочу точный сценарий воспроизведения.

1 лайк

Я получил только уведомление о ответе… Это странно. Значит, так происходит не каждый раз, хотя я это вижу довольно часто.

Я не вижу никакой разницы между вашим ответом здесь и теми, которые вызывали проблему раньше. Оба являются ответами на предыдущий пост (не тему) с цитатами из одного и того же поста. Вот ссылки на два примера, упомянутых выше, если вы сможете найти различия:

Install Discourse on Windows for development - #49

`min ratio to crop` site setting should respect w/h ratio as defined in markdown - #8 by md-misko

Единственное ещё, что приходит мне в голову, — это то, что уведомления о цитатах иногда задерживаются, обычно приходя после уведомления о ответе. Если эти уведомления отправляются фоновой задачей, возможно, возникает какая-то гонка состояний.

4 лайка

Да, это очень похоже на состояние гонки.

4 лайка

Разве это не происходит, когда вы сначала просто отвечаете, а затем редактируете сообщение, добавляя цитату?

5 лайков

Это случается в таких случаях, но я сомневаюсь, что только в них. Это происходит достаточно часто, чтобы казалось маловероятным, что столько людей добавляют цитаты при редактировании. Возможно, @sam сможет подтвердить, написал ли он пост, на который я ссылался, сразу или отредактировал его позже, добавив цитату. Если он помнит, ведь с тех пор прошло уже 6 дней.

Я тоже только что получил это в ответ на reply/quote, скриншот:

4 лайка

В таком случае я сначала ответил, затем сохранил и почти сразу же отредактировал сообщение, чтобы добавить цитату для лучшего контекста. Это объясняет две уведомления — одно за ответ и второе за цитату, добавленную при редактировании.

5 лайков

Ах, спасибо, тогда это всё объясняет.

1 лайк

Меня всё ещё беспокоит, нет ли здесь какой-то гонки данных, при которой цитаты, добавленные в исходном ответе (а не при редактировании), могут обрабатываться как цитаты, добавленные при редактировании. Просто исходя из временных меток.

Я получил только одно уведомление на эту цитату/ответ. Это не исключает полностью состояние гонки, но это более вероятно тот сценарий, который упомянул Фалько, т.е. ответ, а затем быстрое редактирование для добавления цитаты.

6 лайков

Так что нам нужно попросить пользователей не делать этого :slight_smile:

Похоже, это происходит как будто вскользь. Ты быстро пишешь пост и отправляешь его, но потом понимаешь, что контекст может быть не до конца ясен, и возвращаешься, чтобы добавить цитату.

Теперь, когда упомянули функцию «цитирование при редактировании», я стал обращать на это больше внимания, и меня уже несколько раз процитировали без уведомления о цитировании. Так что, похоже, это действительно связано с этим. К сожалению, я не могу самостоятельно что-либо проверить, так как не собираюсь каждый раз, когда получаю уведомление о цитировании, спрашивать у кого-то, добавили ли они цитату при редактировании.

Если это действительно происходит только при редактировании (и никогда из-за состояния гонки), то это даже своего рода приятная «фича», потому что она позволяет узнать, что в пост что-то добавили, даже если ты уже его прочитал.

6 лайков

В последнее время это происходит со мной слишком часто… Я только что получил тройной упоминание от @downey.

@kris.kotlarek, не могли бы вы разобраться в этом? Хотя бы подтвердите, что это невозможно в случае, не связанном с состоянием гонки (ответьте напрямую, а затем отредактируйте сообщение, добавив цитату).

Как общее правило, мы никогда не должны уведомлять о «упоминании», если это уже прямой ответ.

Защита от проблем с таймингом будет сложной задачей; нам понадобится распределённая мутекс-блокировка для пары пользователь/пост, поэтому пока воздержимся от её добавления.

10 лайков

Это мое потенциальное решение. Идея заключается в том, чтобы не создавать уведомление, если у пользователя уже есть непрочитанное уведомление о «новом ответе».

Если уведомление о «новом ответе» было прочитано, мы по-прежнему хотим показывать уведомление о том, что пост был отредактирован, и, например, было добавлено цитирование, так как эта дополнительная информация может быть полезна получателю.

9 лайков

Я не уверен… Мне кажется, что мы немного усложняем проблему.

Если я сейчас отвечу напрямую на :arrow_double_up:, а завтра вернусь к этому сообщению после того, как вы его прочтете, и добавлю слово «казино», вы не получите уведомление.

Я отредактировал сообщение, это был прямой ответ вам.

Почему моя правка, которая является цитатой из вашего реального сообщения, должна иметь какой-то дополнительный вес? Почему это важнее, чем если бы я полностью удалил это сообщение и заменил его картинкой зебры :slight_smile:

:zebra:

Я думаю, нам стоит упростить ситуацию… Одно уведомление на сообщение типа «упоминание» или «прямой ответ» — и всё, навсегда.

Полагаю, часть этой проблемы возникла из-за этого изменения от @pmusaraj? Do not collapse quote notifications · discourse/discourse@27387b0 · GitHub

6 лайков

Я вас понимаю, давайте упростим это.

Мне казалось, что при редактировании прямого ответа должно появляться уведомление. Если нет, давайте последуем этому паттерну.

Это небольшой риск. Например, вы пишете пост:
«Привет, Крис, ты сможешь закончить эту функцию?»
Я отвечаю:
«Конечно, без проблем».
А на следующей неделе вы меняете исходное сообщение на: «Привет, Крис, ты сможешь одолжить мне 1 миллион долларов?»
В таком случае я никогда не узнаю, что вы попросили меня об одолжении :slight_smile:

Тем не менее, это звучит как очень редкий случай :slight_smile:

Думаю, этот случай уже не обрабатывается. Вот как это происходит сейчас:

На данный момент вы ещё не получили никаких уведомлений о дубликатах; вас уведомляют только об первоначальном ответе. Странная пограничная ситуация возникает, когда после всего этого вы добавляете цитату:

… и тогда вы получаете уведомление о дубликате.

Это новое уведомление просто не имеет смысла, ведь вы уже пообещали мне 1 миллион долларов, а мы ничего об этом не говорили.

:blush:

3 лайка