Merge branch 'feature/script-live' into feature/script-live-ask-first

This commit is contained in:
ispyisail
2026-10-02 11:15:15 +13:00
2 changed files with 11 additions and 2 deletions
+9
View File
@@ -280,6 +280,15 @@ void LiveServer::handle(const QJsonObject &request)
if (request.contains(QStringLiteral("id")))
answer.insert(QStringLiteral("id"), request.value(QStringLiteral("id")));
send(answer);
//One request per connection: close it from this side once it is
//answered. Waiting for the client to hang up raced the next
//request on Windows, where a named pipe's disconnection reaches
//QLocalSocket late -- the second call of a quick pair was turned
//away as "another assistant" (found under Wine, 2026-10-02).
if (m_client) {
m_client->disconnectFromServer();
m_client = nullptr;
}
emit handled(request, answer);
}
+2 -2
View File
@@ -40,8 +40,8 @@ class QWidget;
The channel is a QLocalServer only the user's own account can open,
with a random name and token written to live-session.json in the data
folder, which the MCP server reads; the file goes when the channel
closes. One request per line, one answer per line, both JSON; every
request carries the token.
closes. One JSON request per connection, one JSON answer back, then
the server closes the connection; every request carries the token.
Requests are never handled inside the socket's readyRead: each is
queued to the event loop first. QETApp::receiveMessage() learnt why --