diff --git a/gui/ChatPane.qml b/gui/ChatPane.qml index dc504cb..8e25e19 100644 --- a/gui/ChatPane.qml +++ b/gui/ChatPane.qml @@ -23,13 +23,25 @@ Item { property string paneCwd: "" property int chatOffset: 0 + // Per-session draft text storage + property var _drafts: ({}) + property string _prevSessionId: "" + // Fetch chat when session changes onSessionIdChanged: { + // Save draft from previous session + if (_prevSessionId !== "") { + _drafts[_prevSessionId] = panePrompt.text + } + paneModel.rawText = "" chatOffset = 0 paneState = "idle" paneCwd = "" if (sessionId !== "") { + // Restore draft for new session (or empty) + panePrompt.text = _drafts[sessionId] || "" + // Fetch initial chat and config let chat = dbus.getChat(sessionId, 0) if (chat) { @@ -40,7 +52,10 @@ Item { if (cfg && cfg.cwd) paneCwd = cfg.cwd let st = dbus.getState(sessionId) if (st) paneState = st + } else { + panePrompt.text = "" } + _prevSessionId = sessionId } // Listen for D-Bus signals filtered to our session