cab457d722
Review finding on the salvaged collector: _wait_for_process is the shared drain for EVERY env.execute() consumer, not just the terminal tool. Applying tool_output.max_bytes there silently truncated file-operation cat reads (read_file_raw feeds the patch engine — read-modify-write on any file >50KB would corrupt it), paginated read_file, code-execution RPC reads, and log reads. bounded_capture is now an explicit opt-in on execute()/_wait_for_process, set only by the foreground terminal tool. Default preserves the historical full-fidelity capture via an effectively-unbounded collector (single code path). Modal transports accept the kwarg for signature parity. New regression test: default execute() returns a 200KB payload complete and untruncated. E2E: 20MB internal read intact; ShellFileOperations read_file_raw round-trips byte-exact; terminal path still bounded at 50KB.