mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-30 06:59:40 +03:00
fix(skills): усечение эха в сообщении о разборе JSON не маскируется под данные
Эхо полученного значения обрезалось многоточием, и обрыв читался как обрыв самих данных:
агент шёл дописывать «неполный» файл, хотя ошибка была на 57-й строке. Плюс усечение спорило
с позицией от парсера — два сигнала об одном месте, которые не сходятся.
Теперь усечение называет себя: got (first 60 chars, whitespace collapsed). Число символов
не печатаем — после схлопывания пробелов оно не сходилось со смещением из сообщения парсера.
На коротком входе, ради которого эхо и заводилось (съеденные оболочкой кавычки дают
{group:X,commands:[Y]} — 22 символа), усечения нет вовсе.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a44a29a7d8
commit
0770889e47
@@ -364,9 +364,11 @@ def parse_json_input(text, source, expected=None):
|
||||
except ValueError as exc:
|
||||
what = "%s expects %s" % (source, expected) if expected else "Invalid JSON in %s" % source
|
||||
got = " ".join(str(text).split())
|
||||
label = "got"
|
||||
if len(got) > 60:
|
||||
got = got[:60] + "..."
|
||||
print("[ERROR] %s, got: %s (%s)" % (what, got, exc), file=_psys.stderr)
|
||||
label = "got (first 60 chars, whitespace collapsed)"
|
||||
got = got[:60]
|
||||
print("[ERROR] %s, %s: %s (%s)" % (what, label, got, exc), file=_psys.stderr)
|
||||
_psys.exit(1)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user