Ship Assistent 0.10.21: slider/remember guards and Generate spinner fix.

Strip controls from Generate patches, skip Auto-Gen on remember turns, clear board spinner when Swarm finishes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-22 04:38:45 +03:00
co-authored by Cursor
parent 536637714c
commit 036484c7b7
7 changed files with 195 additions and 40 deletions
+12 -6
View File
@@ -468,10 +468,11 @@ public sealed class AssistentConfig
/// <summary>
/// Drop control keys that merely restate schema defaults while the user already has a
/// different saved value — models often echo Exact defaults inside Generate patches and
/// that was resetting Хорни / Вкус after every reply.
/// Keep intentional changes: non-default values, or default when it matches current, or
/// when the patch is controls-only (e.g. /horny-game).
/// different saved value — models often echo Exact defaults inside patches and that was
/// resetting Хорни / Вкус after every reply.
/// Always ignore default-echo when current differs (Generate or not). Intentional resets
/// go through AssistentSaveControls / controls-only patches with a non-default target, or
/// Generate patches are stripped of controls entirely in ApplyPersonaActions.
/// </summary>
public static JObject FilterEchoedControlDefaults(JObject schema, JObject current, JObject incoming, bool patchLooksLikeGen)
{
@@ -480,6 +481,11 @@ public sealed class AssistentConfig
{
return result;
}
// Generate patches must not mutate persona sliders — strip everything.
if (patchLooksLikeGen)
{
return result;
}
current ??= new JObject();
foreach (JProperty prop in incoming.Properties())
{
@@ -503,8 +509,8 @@ public sealed class AssistentConfig
{
continue;
}
if (patchLooksLikeGen
&& !double.IsNaN(defVal)
// Default echo while the user has a tuned value — ignore even on controls-only patches.
if (!double.IsNaN(defVal)
&& Math.Abs(incomingVal - defVal) < 0.0005
&& !double.IsNaN(curVal)
&& Math.Abs(curVal - defVal) > 0.0005)