Skip to content

Commit 9872877

Browse files
author
Aegis-AI
committed
fix: Correct buffer range removal in ThinkingStateTracker (use ..<upperBound)
1 parent 3f116b3 commit 9872877

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

Sources/mlx-server/Server.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -982,7 +982,7 @@ struct ThinkingStateTracker {
982982
if let range = buffer.range(of: "<think>") {
983983
// Flush text before the tag as response content
984984
content += String(buffer[buffer.startIndex..<range.lowerBound])
985-
buffer.removeSubrange(buffer.startIndex...range.upperBound.index(before: range.upperBound))
985+
buffer.removeSubrange(buffer.startIndex..<range.upperBound)
986986
phase = .thinking
987987
} else if buffer.hasSuffix("<") || buffer.hasSuffix("<t") || buffer.hasSuffix("<th") ||
988988
buffer.hasSuffix("<thi") || buffer.hasSuffix("<thin") || buffer.hasSuffix("<think") {
@@ -996,7 +996,7 @@ struct ThinkingStateTracker {
996996
if let range = buffer.range(of: "</think>") {
997997
// Flush reasoning before the closing tag
998998
reasoning += String(buffer[buffer.startIndex..<range.lowerBound])
999-
buffer.removeSubrange(buffer.startIndex...range.upperBound.index(before: range.upperBound))
999+
buffer.removeSubrange(buffer.startIndex..<range.upperBound)
10001000
phase = .responding
10011001
} else if isSuffixOfClosingTag(buffer) {
10021002
// Partial closing tag — hold in buffer

0 commit comments

Comments
 (0)