Skip to content

fix(cli): restore read tool streaming - #11533

Merged
marius-kilocode merged 1 commit into
mainfrom
concise-pin
Jun 22, 2026
Merged

fix(cli): restore read tool streaming#11533
marius-kilocode merged 1 commit into
mainfrom
concise-pin

Conversation

@marius-kilocode

Copy link
Copy Markdown
Collaborator

The OpenCode v1.14.51 integration in #11031 resolved conflicts in the Read tool by replacing the streaming path restored in #10077 with an fs.readFile whole-file decode. That made ordinary text reads buffer complete files before applying offsets, limits, or the 50 KB output cap, and left the streaming helper unused. In the same path, zero limits could produce non-advancing pagination, while UTF-16 truncation could split surrogate pairs and produce provider-rejected tool output (#10467).

This restores UTF-8 reads through AppFileSystem.stream and uses buffered encoding detection only as a fallback when bytes are not valid UTF-8. Stream teardown follows output caps, Effect interruption, and session cancellation. Explicit offsets and limits retain their current behavior, zero limits clamp to one item, and both line-level and compacted tool output preserve Unicode surrogate pairs.

The contract remains explicit: an omitted offset still means line 1, and the tool does not maintain an implicit per-file cursor. Existing total-line reporting semantics are also unchanged, so line-limited reads can continue scanning to EOF even though file contents are no longer buffered in memory.

Fixes #10467

@marius-kilocode
marius-kilocode merged commit dc6d083 into main Jun 22, 2026
23 checks passed
@marius-kilocode
marius-kilocode deleted the concise-pin branch June 22, 2026 15:34
NJ-2020 pushed a commit to NJ-2020/kilocode that referenced this pull request Jul 4, 2026
t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
fix(cli): restore read tool streaming
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

'Read' tool with offset and limit reads broken/splitted surrogate pairs, that are rejected by llama-server

3 participants