Fix UTF-8 slicing panics: use floor_char_boundary for all truncation

Byte-position truncation (&s[..s.len().min(N)]) panics when position
N lands inside a multi-byte character. Fixed in parser debug logging,
API error messages, oneshot response logging, and CLI agent display.

Also fixed tool dispatch permissions (removed global fallback).

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
Kent Overstreet 2026-04-08 19:33:05 -04:00
parent 1776222b07
commit fba8fcc587
6 changed files with 12 additions and 10 deletions

View file

@ -179,7 +179,7 @@ impl AutoAgent {
}
dbglog!("[auto] {} response: {}",
self.name, &text[..text.len().min(200)]);
self.name, &text[..text.floor_char_boundary(text.len().min(200))]);
if next_step < self.steps.len() {
if let Some(ref check) = bail_fn {