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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user