[Уведомление администратора] Одна из ваших тем или плагинов содержит код, требующий обновления. (id:discourse.html-safe-helper)

У нас появляется предупреждение [subject], и я не понимаю, откуда оно берётся.

В консоли есть похожая ошибка:

DEPRECATION NOTICE: `htmlSafe` из ‘discourse/helpers/html-safe’ устарел. Используйте `trustHTML` из ‘@ember/template’ вместо этого. [устарело начиная с Discourse 2026.3.0] [идентификатор устаревания: discourse.html-safe-helper]

Я поискал “htmlSafe” в папках плагинов и тем; единственный активный плагин, содержавший этот код, — это “docker_manager”, который, как мне кажется, я отключил (удалил plugins/docker_manager и удалил запись из config/official_plugins.json).

Но ошибка всё равно появляется. Где ещё мне стоит поискать?

Должна быть ссылка на компонент темы, который вызывает ошибку. Discourse_docker — не проблема.

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

Я думаю, что её нет. Из-за более раннего поста от @rbos я заглянул на https://forum.pkp.sfu.ca/ и вот что я заметил в консоли браузера:

80b72542d6.css:1  Failed to load resource: the server responded with a status of 403 ()
deprecated.js:54 [THEME 14 'Versatile Banner'] DEPRECATION NOTICE: The file 'theme-14/discourse/components/versatile-banner-column.hbs' uses the deprecated .hbs extension. Refactor it to use '.gjs' instead. [deprecation id: discourse.hbs-extension] [info: https://meta.discourse.org/t/398896]
deprecated @ deprecated.js:54
deprecated.js:54 [THEME 14 'Versatile Banner'] DEPRECATION NOTICE: The file 'theme-14/discourse/components/versatile-banner.hbs' uses the deprecated .hbs extension. Refactor it to use '.gjs' instead. [deprecation id: discourse.hbs-extension] [info: https://meta.discourse.org/t/398896]
deprecated @ deprecated.js:54
deprecate.js:106 DEPRECATION: Importing `inject` from `@ember/service` is deprecated. Please import `service` instead. [deprecation id: importing-inject-from-ember-service] This will be removed in ember-source 7.0.0. See https://deprecations.emberjs.com/id/importing-inject-from-ember-service for more details.
    at deprecate.js:90:19
    at re.<computed> (handlers.js:10:7)
    at deprecate.js:116:7
    at re.<computed> (handlers.js:10:7)
    at dae (index.js:75:7)
    at index.js:12:5
    at re.<computed> (handlers.js:10:7)
    at fae (index.js:115:3)
    at re.<computed> (handlers.js:10:7)
(anonymous) @ deprecate.js:106
deprecate.js:106 DEPRECATION: Importing `inject` from `@ember/service` is deprecated. Please import `service` instead. [deprecation id: importing-inject-from-ember-service] This will be removed in ember-source 7.0.0. See https://deprecations.emberjs.com/id/importing-inject-from-ember-service for more details.
    at deprecate.js:90:19
    at re.<computed> (handlers.js:10:7)
    at deprecate.js:116:7
    at re.<computed> (handlers.js:10:7)
    at dae (index.js:75:7)
    at index.js:12:5
    at re.<computed> (handlers.js:10:7)
    at fae (index.js:115:3)
    at re.<computed> (handlers.js:10:7)
(anonymous) @ deprecate.js:106
deprecate.js:106 DEPRECATION: Importing `inject` from `@ember/service` is deprecated. Please import `service` instead. [deprecation id: importing-inject-from-ember-service] This will be removed in ember-source 7.0.0. See https://deprecations.emberjs.com/id/importing-inject-from-ember-service for more details.
    at deprecate.js:90:19
    at re.<computed> (handlers.js:10:7)
    at deprecate.js:116:7
    at re.<computed> (handlers.js:10:7)
    at dae (index.js:75:7)
    at index.js:12:5
    at re.<computed> (handlers.js:10:7)
    at fae (index.js:115:3)
    at re.<computed> (handlers.js:10:7)
(anonymous) @ deprecate.js:106
app.js:367 ℹ️ Discourse v2026.8.0-latest.1 — https://github.com/discourse/discourse/commits/7df32723f1 — Ember v6.10.1
deprecated.js:54 DEPRECATION NOTICE: `htmlSafe` from 'discourse/helpers/html-safe' is deprecated. Use `trustHTML` from '@ember/template' instead. [deprecated since Discourse 2026.3.0] [deprecation id: discourse.html-safe-helper]
deprecated @ deprecated.js:54
deprecated.js:54 DEPRECATION NOTICE: `htmlSafe` from 'discourse/helpers/html-safe' is deprecated. Use `trustHTML` from '@ember/template' instead. [deprecated since Discourse 2026.3.0] [deprecation id: discourse.html-safe-helper]
deprecated @ deprecated.js:54
deprecated.js:54 DEPRECATION NOTICE: `htmlSafe` from 'discourse/helpers/html-safe' is deprecated. Use `trustHTML` from '@ember/template' instead. [deprecated since Discourse 2026.3.0] [deprecation id: discourse.html-safe-helper]
deprecated @ deprecated.js:54
80b72542d6.css:1  Failed to load resource: the server responded with a status of 403 ()
Node cannot be found in the current page.

Мне не удалось найти подробности о том, какой именно компонент вызывает это сообщение. Хотя, возможно, стоит начать с «versatile banner».

Похоже, это не ссылка, но всё понятно. Думаю, тебе просто нужно установить последнюю версию

Можете ли вы объяснить, почему это очевидно? Я ясно вижу, что это вызывает сообщение об устаревании для файлов hbs. Но я не вижу никаких указаний на то, что оно же вызывает сообщение о html-safe. Хотя вполне вероятно, что устаревший компонент также вызывает другие сообщения, почему мы уверены, что это не какой-то другой компонент?

Странно. Команда find в папке Discourse внутри Docker-контейнера не находит каталог “theme-14”. Тогда я не понимаю, откуда он вообще подтягивается. Я, конечно, видел эти предупреждения об устаревании, но единственным, где упоминалось “html-safe”, было то, что описано выше.

Очень интересно, что это хранится в базе данных, спасибо. Я не очень хорошо знаком с Discourse и думал, что тема будет в файловой системе.

Это программное обеспечение, к которому я обращаюсь раз в год, если что. :slight_smile:

(И чтобы быть точным, я очень ценю то, насколько (почти) безотказно работает Discourse! Тот факт, что я могу так от него отвыкнуть, — это комплимент вашим усилиям. С программным обеспечением, которое я хорошо знаю, я чаще всего и злюсь!)

Обновление: Зайдя в веб-панель администратора форума и введя в поиске «versatile», я нашёл нужный компонент, смог обновить его прямо оттуда, и сообщение об ошибке исчезло.

Спасибо всем за помощь.

Есть настройка, позволяющая автоматически обновлять его при апгрейде.