From 64883cf9b8ae36aa22c8a6a780cba66a5c3e6e05 Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Mon, 3 Aug 2026 00:39:34 +0200 Subject: [PATCH] Revert "render system-user-interruption as styled yellow box in prose" This reverts commit 4e455e2dd325d0214c40104e6c19ba58e72242c9. --- gui/chatblockmodel.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gui/chatblockmodel.cpp b/gui/chatblockmodel.cpp index f93c1a9..9b70b55 100644 --- a/gui/chatblockmodel.cpp +++ b/gui/chatblockmodel.cpp @@ -194,28 +194,26 @@ QString ChatBlockModel::highlightCode(const QString &code, const QString &langua QString ChatBlockModel::renderMarkdown(const QString &markdown) const { // Pre-process: render blocks as styled boxes. - // These appear as prose between code fences (the server closes the tool - // output fence before the interruption and reopens it after). + // Manual global-match loop instead of replace-with-lambda, which requires + // Qt 6.5+ and isn't available on all target systems. static const QRegularExpression interruptionRe( R"(\n([\s\S]*?)\n)"); - QString processed = markdown; + QString processed; { int cursor = 0; - QString rebuilt; auto it = interruptionRe.globalMatch(markdown); while (it.hasNext()) { const auto match = it.next(); - rebuilt += markdown.mid(cursor, match.capturedStart() - cursor); + processed += markdown.mid(cursor, match.capturedStart() - cursor); const QString content = match.captured(1).toHtmlEscaped(); - rebuilt += QStringLiteral( + processed += QStringLiteral( "
" "\u26A0\uFE0F User interruption\n") + content + QStringLiteral("
"); cursor = match.capturedEnd(); } - rebuilt += markdown.mid(cursor); - processed = rebuilt; + processed += markdown.mid(cursor); } static const QRegularExpression fenceRe(