• Stefy Lanza (nextime / spora )'s avatar
    text: stop DeepSeek V4 DSML tool markup leaking during streaming · 6e20c8a3
    Stefy Lanza (nextime / spora ) authored
    The streaming tool-content gate withheld <tool>/<|tool_call>/call: markers but
    not DeepSeek V4's native <|DSML|tool_calls>… block (| = U+FF5C), so during a
    streamed tool call the raw markup reached the client token-by-token as visible
    content (even though the post-stream parser extracted the tool_calls correctly).
    
    _gate_tool_content now withholds everything from the first <|DSML| marker to the
    end (dropped on final, surfaced as structured tool_calls), and the trailing-
    partial hold list includes the DSML open tag so a marker split across chunks
    doesn't leak its leading chars.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    6e20c8a3
text.py 119 KB