Ghost / Discourse Embed / Darkmode: theme_id und color_scheme_id für anonyme Benutzer ignoriert

Hallo zusammen,

ich habe die letzten Stunden damit verbracht, den Dunkelmodus eines Ghost-Blogs mit einer Discourse-Einbettung zu synchronisieren. Obwohl es mir gelungen ist, den Dunkelmodus-Status auf der Host-Seite zu erkennen und die korrekten Parameter zu übergeben, scheint Discourse diese für anonyme Benutzer zu ignorieren.

Unser Setup & Was wir überprüft haben:

Parameter-Injektion: Wir verwenden ein benutzerdefiniertes Skript in Ghost, um das Attribut data-color-scheme="dark" zu erkennen. Wir haben über die Browserkonsole und die Netzwerk-Registerkarte überprüft, dass die Parameter ?color_scheme_id=13 (unsere Palette 13) oder ?theme_id=4 (ein dediziertes dunkles Thema) korrekt an die embed.js-Anfrage und anschließend an die Iframe-Quelle angehängt werden.

Themenkonfiguration: In Discourse sind das Zielthema (ID 4) und das Farbschema (ID 13) beide als „Benutzerwählbar“ markiert. Das Farbschema ist auch als „Standard Dunkel“ für das aktive Thema eingestellt.

Das Problem: Obwohl die Iframe-URL deutlich .../embed/comments?topic_id=...&theme_id=4 anzeigt, wird der gerenderte Inhalt für anonyme Besucher im hellen Modus (Standard) angezeigt.

Durchgeführte Tests:

Das theme_id direkt in das Skript hartkodiert.
Die Iframe-Quelle nach dem Laden von embed.js manuell über JavaScript manipuliert.
Versuch, @media (prefers-color-scheme: dark) innerhalb einer Theme-Komponente zu verwenden, um Stile zu erzwingen, was im Einbettungskontext ebenfalls ignoriert oder überschrieben zu werden scheint.

Meine Frage: Gibt es eine bestimmte Sicherheitseinstellung oder eine hartkodierte Beschränkung in der Discourse-Einbettungslogik, die verhindert, dass anonyme Benutzer Themen oder Farbschemata über URL-Parameter ändern?

Wir möchten ein „Aufblitzen von nicht gestyltem Inhalt“ vermeiden und sicherstellen, dass Leser auf einem dunklen Blogbeitrag nicht von einem weißen Kommentarbereich geblendet werden. Gibt es app.yml-Einstellungen oder versteckte Site-Einstellungen, die dieses Verhalten für eingebettete Inhalte steuern?

Discourse-Version: Discourse 3.5.3

Vielen Dank im Voraus für alle Hinweise!