Difficulté à comprendre le paramètre d'activation de la bannière de bienvenue

C’est intéressant… il manque à nouveau sur Foundation sur votre site, Moin, même s’il est activé dans l’interface d’administration. Vider le cache avec SiteSetting.clear_cache!(expire_theme_site_setting_cache: true) ne vide pas le cache. J’obtiens deux résultats différents ici :

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\"}"

Et puis j’ai exécuté ceci directement :

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

Et ça a fonctionné ?? Ensuite, j’ai à nouveau modifié votre paramètre dans l’administration et le cache persiste :thinking: Je pense que quelque chose d’étrange se passe avec les theme_site_settings en mémoire ici :

Parce que cela donne :

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

Alors que si je récupère depuis la base de données, j’obtiens ceci, qui a la bonne valeur 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"}]

Nous jouons avec ça ici :

Et ici :

Ce qui est appelé ici :

Donc, je ne suis pas sûr de la raison pour laquelle cela se produit pour le moment, mais cela expliquerait pourquoi le cache persiste, car le cache est construit à partir de cet objet en mémoire.

Edit : Notez également que je ne peux toujours pas reproduire cela ailleurs, mais je peux le reproduire de manière assez fiable sur votre site.

3 « J'aime »