From 9e5352f70023f4944fa3dc0b3a338a0d789f01f6 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Tue, 4 Aug 2026 16:15:40 +0200 Subject: [PATCH] gui: fix agent state dot colors and parentPaused propagation - Update parentPaused on agents during incremental session updates - Set parentPaused and parentExpanded when inserting new agents - Update session paused property during updates - Use explicit === true check for parentPaused --- gui/main.qml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gui/main.qml b/gui/main.qml index 3aa8828..114e778 100644 --- a/gui/main.qml +++ b/gui/main.qml @@ -284,6 +284,8 @@ ApplicationWindow { var agents = sess.agents || [] var agentCount = agents.length var displayLabel = agentCount > 0 ? sessionName + " (" + agentCount + ")" : sessionName + var isPaused = sess.paused || false + var wasExpanded = sessionExpandedCache[sessionId] !== undefined ? sessionExpandedCache[sessionId] : true // Update session properties (use QML-computed color, avoids C++ call) sessionTreeModel.setProperty(sessionIdx, "displayName", displayLabel) @@ -291,6 +293,7 @@ ApplicationWindow { sessionTreeModel.setProperty(sessionIdx, "state", sess.state || "") sessionTreeModel.setProperty(sessionIdx, "model", sess.model || "") sessionTreeModel.setProperty(sessionIdx, "connectionColor", computeConnectionColor(sess)) + sessionTreeModel.setProperty(sessionIdx, "paused", isPaused) // Build agent lookup var newAgentIds = {} @@ -310,6 +313,7 @@ ApplicationWindow { sessionTreeModel.setProperty(idx, "state", agent.state || "idle") sessionTreeModel.setProperty(idx, "connected", agent.connected) sessionTreeModel.setProperty(idx, "displayName", agent.name) + sessionTreeModel.setProperty(idx, "parentPaused", isPaused) } else { // Remove agent sessionTreeModel.remove(idx) @@ -343,7 +347,9 @@ ApplicationWindow { level: 1, state: ag.state || "idle", connected: ag.connected, - displayName: ag.name + displayName: ag.name, + parentExpanded: wasExpanded, + parentPaused: isPaused }) } } @@ -1129,7 +1135,7 @@ ApplicationWindow { return "#9e9e9e" } // Agent: gray if parent session is paused - if (parentPaused) return "#9e9e9e" + if (parentPaused === true) return "#9e9e9e" // Agent: use state role from model var s = state || "idle" if (s === "idle") return "#4caf50"