Nachdem ich meinen Rechner beinahe kaputt gemacht habe, habe ich eine Workaround-Lösung gefunden — wahrscheinlich nicht die ideale, aber sie funktioniert 
Es scheint, dass, wenn man im Full App Embed auf „Antworten“ klickt, der Composer im DOM zwar korrekt geöffnet wird (#reply-control.open), aber aus irgendeinem Grund weiterhin display: none bleibt.
Ich habe das im Browser-Console überprüft: Der Composer war vorhanden, aber sein berechneter display-Wert war “none”. Durch manuelles Ausführen von:
document.querySelector('#reply-control').style.setProperty('display', 'block', 'important');
wurde der Composer sofort angezeigt und alles funktionierte normal.
Als Workaround behebt das Hinzufügen des folgenden JS-Codes zum Discourse-Theme das Problem bei mir:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
if (!document.body.classList.contains("embed-mode")) {
return;
}
const fixComposer = () => {
const composer = document.querySelector("#reply-control.open");
if (composer) {
composer.style.setProperty("display", "block", "important");
}
};
const observer = new MutationObserver(fixComposer);
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ["class"],
});
fixComposer();
});
Das scheint das Problem vollständig zu beheben, und ich habe den Workaround auf den embed-mode beschränkt, damit die normale Discourse-Oberfläche nicht betroffen ist.
Offensichtlich ist das wahrscheinlich nicht die ideale Langzeitlösung, aber vielleicht hilft es dabei, herauszufinden, warum der geöffnete Composer im Full App Embed weiterhin display: none bleibt.