Действие ActivityPub «Опубликовать все сообщения» не работает в личном сообщении с AI-персонами, конвертированными в тему

У меня был разговор с двумя ИИ-персонажами. Когда я был готов, я переместил эту тему в свою личную категорию для редактирования — требовалась доработка математики и т. д. После этого я использовал таймер, чтобы опубликовать тему в публичной категории.

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

Ничего страшного, ведь я могу сделать это вручную.

Вот сама тема:

https://foorumi.katiska.eu/t/onko-lihavuus-ekoteko/14642

Затем я открыл эту… штуку ActivityPub и доставил пост №1 подписчикам. Всё прошло гладко, и я увидел ожидаемое:

Поскольку я хотел опубликовать всю дискуссию целиком (ведь показывать только первый пост редко бывает полезно для кого-либо — да, я знаю, что у Mastodon есть свои проблемы с этим), я открыл Администрирование темы:

Я нажал Опубликовать все посты (я решил, что Discourse отказался от этого американского стиля написания заглавными буквами :smirking_face:), текст изменился, и я вернулся к теме.

Однако посты не были опубликованы. Пост автора (OP) был в порядке. Тогда я снова открыл Администрирование темы, и там всё ещё отображались те же опции. Система просто отказывается публиковать все посты.

Почему в Действиях с постом всё ещё предлагается Доставить пост №1, если это уже было сделано, и я видел результат в Mastodon?

В логах ничего нет, а Discourse довольно свежий — я обновил его вчера, но подобное случалось и раньше.

Я предполагаю, что есть две возможные причины:

  • Плагин AP не любит изменения категорий, даже если они происходят из нефедерируемой категории и используется таймерная публикация.
  • Плагин AP не понимает ИИ-персонажей и/или их отрицательные ID или что-то в этом роде.

Я знаю, как обойти эту проблему, но это не подходит для каждой ситуации. Всё, что мне нужно сделать, — скопировать весь разговор с ИИ и вставить его в новую тему с помощью [details][/details], но это иногда выглядит странно на форуме и затрудняет чтение в Mastodon (конечно, если все посты темы доступны только по веб-ссылке, читать тоже довольно сложно; люди не очень любят исходящие ссылки).

Я ещё не проверял, происходит ли то же самое, когда каждый участник — реальный человек. У меня пока не было подходящей темы для тестирования.

Когда вы говорите, что сообщения не были опубликованы, вы имеете в виду, что статус ActivityPub сообщения внутри Discourse всё ещё был неопубликованным?

Да. Иконка и текст «Не опубликовано» всё ещё отображаются.

К тому же я не смог найти эти посты нигде в Mastodon (хотя это может быть связано и с моим недостатком опыта).

Что произойдет, если опубликовать посты по отдельности? Например, зайти в админ-панель ActivityPub для поста №2 и нажать «Опубликовать»? Также появляются ли какие-либо логи при попытке сделать это?

Это работает. Но: «Опубликовать пост #2 и доставить его подписчикам акторов группы». Этот путь был бы довольно… шумным и спамным.

В логах ничего нет, за исключением, конечно, этого случая, когда есть обычная информация о доставке. Но ничего нет, когда я пытаюсь опубликовать все посты темы, но без доставки подписчикам актора категории.

Хорошо.

Почему?

Понятно. Так что, чтобы подтвердить, вы говорите, что произошло следующее:

  1. Создать тему A, разговор с двумя ИИ-персонажами, в категории A.
  2. Переместить тему из категории A в категорию B, приватную категорию.
  3. Запланировать публикацию темы A из категории B в категорию C, публичную категорию.
  4. Когда тема A будет опубликована в категории C, зайти в админ-панель ActivityPub и нажать “Опубликовать пост #1”. Это опубликовало и доставило пост 1 темы A, как и ожидалось.
  5. Затем снова зайти в админ-панель ActivityPub темы A и нажать “Опубликовать все посты”. Посты в теме A не были опубликованы, как ожидалось.
  6. Публикация отдельных постов в теме A работает как ожидалось.

Это правильно?

  • Создать приватное сообщение A с двумя ИИ-персонажами, и это будет тема A, отчасти
  • Переместить PM-диалог A в категорию B, приватную категорию

Остальное верно.

То, что я сначала попробовал, публиковало всё, но не доставляло посты подписчикам группового аккаунта. Доставлялся только первый пост (OP). Таким образом, подписчик (Mastodon) видит только первый пост и правильное количество комментариев.

Но если я публикую и доставляю каждый пост индивидуально, подписчики группового аккаунта видят их все.

Разница вот в чём:

  • подписчики получают только один пост/сообщение/тут, и ничего больше, даже если будут опубликованы все посты темы (и это одна из трёх основных причин, почему получение подписчиков из Fediverse/Mastodon так сложно)

  • Теперь подписчики получают индивидуальные посты/сообщения/тут в том количестве, в котором я их отправляю, то есть столько, сколько постов в теме. И если я публикую эти посты пачкой, потому что не слежу за действиями форума постоянно, это будет шумно, даже похоже на спам, если подписчик быстро получит 10, 40 или 100 сообщений.

Спасибо за ответ. Мне понадобится несколько дней, чтобы переключиться на эту задачу. Здесь задействовано множество переменных (например, PM, AI-персоны и т. д.), поэтому потребуется целенаправленное внимание и тестирование.

Спасибо. Не торопитесь. В любом случае это не так уж важно.

Просто к сведению: это происходит и с темами, написанными людьми, если они достаточно старые, то есть опубликованы до эпохи федерации.

Поэтому я сделаю одно смелое утверждение: это происходит, когда длинная тема должна быть опубликована целиком сразу (и всё же ИИ-персоны остаются проблемой [1]).


  1. они также создают проблемы для Discourse Translator, но это совершенно другая история ↩︎