Summary: Finish the read contract beyond PR #32’s 400-character preview.
Why: long replies cannot be recovered; count/metadata/serialized output and gateway body are not bounded; malformed content can throw; tool schema disagrees with Zod.
Acceptance criteria: explicit truncation metadata plus bounded full/root read or retrievable resource; local entry/result/metadata budgets; gateway deadlines and response-byte limits; safe string normalization; consistent integer 1–200 schema; tests for oversized, malformed, Unicode, and complete long replies.
Parent: #24
Source: GPT-6 Pro post-land review of #27/#28 — https://chatgpt.com/c/6aa89f23-6920-83ea-b98a-a1f155a1ae3f
Summary: Finish the read contract beyond PR #32’s 400-character preview.
Why: long replies cannot be recovered; count/metadata/serialized output and gateway body are not bounded; malformed content can throw; tool schema disagrees with Zod.
Acceptance criteria: explicit truncation metadata plus bounded full/root read or retrievable resource; local entry/result/metadata budgets; gateway deadlines and response-byte limits; safe string normalization; consistent integer 1–200 schema; tests for oversized, malformed, Unicode, and complete long replies.
Parent: #24
Source: GPT-6 Pro post-land review of #27/#28 — https://chatgpt.com/c/6aa89f23-6920-83ea-b98a-a1f155a1ae3f