ui: response rendering IDs fix

frdel committed Feb 7, 2026 at 07:20 UTC f634618fc11c6f688a480141effdb7b8715be99e
1 file changed +24 -15
webui/js/messages.js
+24 -15
@@ -784,25 +784,34 @@ export function drawMessageResponse({
784
785 // response of agent 0, render as response to user
786 // get last process group or create new container (if first message)
787 +
788 const group = getLastProcessGroup();
788 - let container = null;
789 + let container = document.getElementById(`message-${id}`); // first check for already existing message
790
790 - if (group) {
791 - // new response, collapse all previous steps once
792 - if (!group.querySelector(".process-group-response")) {
793 - if (preferencesStore.detailMode == "current")
794 - group.querySelectorAll(".process-step").forEach((step) => {
795 - scheduleStepCollapse(step);
796 - });
791 +
792 + // if no container found, add to previous process group if exists
793 + if (!container) {
794 + if (group) {
795 + // new response, collapse all previous steps once
796 + if (!group.querySelector(".process-group-response")) {
797 + if (preferencesStore.detailMode == "current")
798 + group.querySelectorAll(".process-step").forEach((step) => {
799 + scheduleStepCollapse(step);
800 + });
801 + }
802 +
803 + container = ensureChild(
804 + group,
805 + `#message-${id}.process-group-response`,
806 + "div",
807 + "process-group-response",
808 + );
809 + container.id = `message-${id}`;
810 }
811 + }
812
799 - container = ensureChild(
800 - group,
801 - ".process-group-response",
802 - "div",
803 - "process-group-response",
804 - );
805 - } else container = getOrCreateMessageContainer(id, "left");
813 + // no container or valid process group, create new container
814 + if (!container) container = getOrCreateMessageContainer(id, "left");
815
816 const messageDiv = _drawMessage({
817 messageContainer: container,