Ship Assistent 0.10.18: settings as a peer tab, stream/VRAM chat fixes.

Move settings beside Chat/Cards; stop fence ramble, sticky scroll, horny echo filter, and force-warm after Generate.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-22 04:12:53 +03:00
co-authored by Cursor
parent 43984208fc
commit 536637714c
11 changed files with 490 additions and 163 deletions
+21
View File
@@ -192,6 +192,10 @@ public partial class SwarmAssistentExtension
string body = await resp.Content.ReadAsStringAsync();
JObject parsed = JObject.Parse(body);
string reply = parsed["message"]?["content"]?.ToString() ?? parsed["response"]?.ToString() ?? "";
if (TryTruncateAtCompleteFence(reply, out string cut))
{
reply = cut;
}
return (reply, parsed);
}
StringBuilder full = new();
@@ -215,6 +219,23 @@ public partial class SwarmAssistentExtension
if (!string.IsNullOrEmpty(delta))
{
full.Append(delta);
// Closed ```json``` patch → stop reading. Models otherwise ramble («Готово!», 2nd aspect…).
if (TryTruncateAtCompleteFence(full.ToString(), out string cut))
{
string extra = full.Length > cut.Length ? full.ToString(cut.Length, full.Length - cut.Length) : "";
full.Clear();
full.Append(cut);
if (onDelta is not null)
{
// Only forward the part of this delta that stays inside the fence.
int keep = delta.Length - extra.Length;
if (keep > 0)
{
await onDelta(delta.Substring(0, keep));
}
}
break;
}
if (onDelta is not null)
{
await onDelta(delta);