发布

  • fix(adk): report out-of-range read offset instead of emitting the offset value (#1191)

    frostbyte_neo 发布于 2026-08-18 14:32:00 +00:00

    When ReadRequest.Offset exceeds a file's line count, backends report this as
    empty content with no error (see InMemoryBackend.Read). formatLineNumbers then
    ran strings.Split("", "\n"), which returns [""] rather than an empty slice, so
    it emitted a single numbered blank line -- e.g. " 300\t". With the trailing
    tab trimmed for display, the tool output looked exactly like the file contained
    the offset value ("300"), which is both wrong and misleading to the model.

    Empty content now short-circuits in formatLineNumbers, and both read tools go
    through formatReadResult, which explains that the file is empty or the offset
    is past its last line. This also fixes reading a legitimately empty file, which
    previously rendered as a phantom line 1.

    Fixed at the tool layer rather than in InMemoryBackend so third-party backends
    following the same "offset out of range -> empty content" contract are covered.

    Co-authored-by: Claude Opus 5 noreply@anthropic.com

    下载附件