Трудности с пониманием настройки включения приветственного баннера

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

Хм, это интересно… На вашем сайте снова отсутствует настройка в Foundation, хотя она включена в административном интерфейсе. Очистка кэша с помощью SiteSetting.clear_cache!(expire_theme_site_setting_cache: true) не очищает кэш. Я получаю здесь два разных результата:

discourse(prod)> SiteSetting.theme_site_settings_json_uncached(-1)
=> "{\"enable_welcome_banner\":true,\"search_experience\":\"search_field\"}"
discourse(prod)> SiteSetting.theme_site_settings_json(-1)
=> "{\"enable_welcome_banner\":false,\"search_experience\":\"search_field\"}"

Затем я выполнил это напрямую:

Discourse.cache.delete(SiteSettingExtension.theme_site_settings_cache_key(-1))

И это сработало?!! Затем я снова изменил вашу настройку в админке, но кэш сохраняется :thinking: Мне кажется, здесь происходит что-то странное с theme_site_settings в памяти:

Потому что это выдает:

 -2=>{:enable_welcome_banner=>false, :search_experience=>"search_field"},
 -1=>{:enable_welcome_banner=>true, :search_experience=>"search_field"}}

В то время как если я получаю данные из БД, я получаю это, где правильное значение false:

ThemeSiteSetting.where(theme_id: -1)
=>
[#<ThemeSiteSetting:0x00007f9164acb2d0 id: 3, theme_id: -1, name: "enable_welcome_banner", data_type: 5, value: "f", created_at: "2025-07-16 07:04:11.117747000 +0000", updated_at: "2025-08-11 06:35:07.606301000 +0000">,
 #<ThemeSiteSetting:0x00007f9164acb190 id: 13, theme_id: -1, name: "search_experience", data_type: 7, value: "search_field", created_at: "2025-07-16 07:04:11.117747000 +0000", updated_at: "2025-07-20 20:56:49.405228000 +0000">]
discourse(prod)> Theme.find(-1).themeable_site_settings
=>
[{:setting=>:enable_welcome_banner, :default=>true, :description=>"Display a banner on your main topic list pages to welcome members and allow them to search site content", :humanized_name=>"Enable welcome banner", :type=>"bool", :value=>false},
 {:setting=>:search_experience,
  :default=>"search_icon",
  :description=>"The default position and appearance of search on desktop devices",
  :humanized_name=>"Search experience",
  :type=>"enum",
  :valid_values=>[{:name=>"search.experience.search_field", :value=>"search_field"}, {:name=>"search.experience.search_icon", :value=>"search_icon"}],
  :translate_names=>true,
  :value=>"search_field"}]

Мы возимся с этим здесь:

И здесь:

Что вызывается здесь:

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

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

Хорошо, я думаю, что смог воспроизвести это локально. Это ошибка в многопроцессной среде. Суть в том, что версия настроек в памяти изменяется администратором в процессе A, но затем пользователь обращается к процессу B с запросом и в итоге сам устанавливает новое значение в кэше, из-за чего в памяти кэш остаётся со старым значением.

Другие настройки сайта обходят эту проблему, обновляя все настройки через MessageBus при любом изменении:

Постараюсь подготовить исправление к завтрашнему дню (сейчас у меня конец рабочего дня). Спасибо за терпение, Moin!

Исправление уже объединено, это заняло немного больше времени, так как мне нужно было разобраться, как его протестировать:

Скоро разверну ваш сайт, Moin.

Редактирование: Исправление развернуто