Здесь уже есть определённый прогресс.
Триггер Event ended для Workflows уже был объединён в основной код:
https://github.com/discourse/discourse/pull/42634
Кроме того, в Workflows уже есть действие Topic, которое позволяет Get (получить) существующую тему и Create (создать) новую, а также есть узел Wait (ожидание). Таким образом, значительная часть предложенного процесса переноса уже может быть реализована в виде рабочего процесса, а не требовать создания отдельной функции архивирования, специфичной для событий.
Что-то вроде:
Event ended → Wait → Topic / Get → Topic / Create
потенциально могло бы создать новую тему, используя название, содержимое и категорию старой темы, при этом завершённая тема оставалась бы нетронутой в качестве архива.
Что ещё нужно проверить, так это то, какие именно части старой темы должны копироваться автоматически — например, теги, загруженные файлы, состояние повторения события, а также следует ли перемещать ответы или просто оставлять их на месте.
У меня также есть открытый PR, вводящий действие Event в Workflows:
https://github.com/discourse/discourse/pull/42932
Базовый PR добавляет Close event (закрыть событие) и Open event (открыть событие), а у меня есть следующий PR, наложенный поверх него, добавляющий Set attendance (установить посещаемость):
https://github.com/discourse/discourse/pull/43028
Действие структурировано так, чтобы в будущем можно было добавлять другие операции, специфичные для событий, в виде отдельных PR, если это будет уместно.