cloverleaf-larry/VERSION
Bryan Johnson 38d1eeede4 v0.6.3: route all large jq inputs through tempfiles, not argv
v0.6.2 fixed the TOOLS_JSON argv overflow but four other call sites had
the same risk pattern — any of them would have crashed under Cygwin's
~32KB argv cap with large user input, large agent responses, or large
tool results:

  add_user_text         --arg c "$content"     ← multi-paragraph prompts
  add_assistant_blocks  --argjson b "$blocks"  ← long assistant turns
  add_user_tool_results --argjson b "$blocks"  ← chained tool results
  agent_turn loop       --arg c "$result"      ← tool output (up to 250KB
                                                  for read_file, 500 lines
                                                  for ssh_exec, etc.)
  agent_turn loop       --arg system "$system_prompt"  ← agents/*.md
                                                  total ~25KB

All five are now passed via tempfile + --rawfile (for raw strings) or
--slurpfile (for pre-parsed JSON). Same proven pattern as the v0.6.2
TOOLS_JSON fix. Tempfiles are cleaned at every return path.

Verified by pushing a 60KB user prompt through the pipeline on macOS
(also has the larger 256KB argv cap that masked these bugs locally
before, but the codepath now uses files for the large values regardless
of platform). Messages file stored the full 60025-char prompt with no
warnings.

After this commit, the only --arg / --argjson calls remaining all carry
known-small values (UUIDs, version strings, port numbers, etc.).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 12:20:20 -07:00

2 lines
6 B
Plaintext