From d01d7c8ad8e57842aefe3e8df5030d1d7114c63b Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Wed, 5 Aug 2026 08:35:43 +0200 Subject: [PATCH] gui: add session connection status indicator - Add colored dot to session rows showing tool server RPC status: green=connected, yellow=paused+connected, gray=paused, red=broken - Remove vestigial agent.connected from model (was never displayed) - Session-level connected status is the correct granularity --- gui/main.qml | 14 +++++++++++--- gui/ollie9pclient.cpp | 1 - 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gui/main.qml b/gui/main.qml index 75c2a9c..23a640c 100644 --- a/gui/main.qml +++ b/gui/main.qml @@ -198,7 +198,6 @@ ApplicationWindow { agentId: agent.id, level: 1, state: agent.state || "idle", - connected: agent.connected, displayName: agent.name, parentExpanded: wasExpanded, parentPaused: isPaused @@ -311,7 +310,6 @@ ApplicationWindow { // Update agent - use state from session/idx directly var agent = newAgentIds[item.agentId] 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 { @@ -346,7 +344,6 @@ ApplicationWindow { agentId: ag.id, level: 1, state: ag.state || "idle", - connected: ag.connected, displayName: ag.name, parentExpanded: wasExpanded, parentPaused: isPaused @@ -1072,6 +1069,17 @@ ApplicationWindow { } } + // Connection status indicator (session rows only) + Rectangle { + Layout.preferredWidth: 8 + Layout.preferredHeight: 8 + Layout.alignment: Qt.AlignVCenter + Layout.rightMargin: 6 + radius: 4 + color: connectionColor || "gray" + visible: type === "session" + } + // Name area Item { Layout.fillWidth: true diff --git a/gui/ollie9pclient.cpp b/gui/ollie9pclient.cpp index c94323a..84b1194 100644 --- a/gui/ollie9pclient.cpp +++ b/gui/ollie9pclient.cpp @@ -301,7 +301,6 @@ void Ollie9pClient::refreshSessions() av["name"] = agentParts.value(0); av["id"] = agentId; av["state"] = agentParts.value(2); - av["connected"] = isConnected; agents.append(av); // Check if this is the active agent