d30dc78409
Three coordinated tweaks in runEphemeralTurn and the supporting #buildEphemeralSnapshot so IRC reply text stops leaking tool-call markup, duplicating verbatim, and breaking DeepSeek-class encoders: - Drop the recipient's tools array entirely instead of relying on toolChoice:"none" (not every backend enforces it). The model now has no tool surface to emit so leaked function_call / DSML markup stops. - Preserve thinking content blocks when snapshotting the in-flight streaming assistant message so the openai-completions encoder can re-emit reasoning_content for DeepSeek-routed recipients (10 reports of HTTP 400 "'reasoning_content' in thinking mode must be passed back"). - Collapse consecutive duplicate sentences in replyText and cap reply length so a looping recipient does not spam the IRC channel with the same line repeated N times.