@@ -1167,9 +1167,16 @@ async function routeClaimedDelivery(
11671167 } ;
11681168}
11691169
1170- function runCommand ( args : string [ ] , cwd ?: string , env ?: NodeJS . ProcessEnv , timeoutSeconds = 300 ) : CommandResult {
1170+ function runCommand (
1171+ args : string [ ] ,
1172+ cwd ?: string ,
1173+ env ?: NodeJS . ProcessEnv ,
1174+ timeoutSeconds = 300 ,
1175+ retainedOutputBytes = 8000 ,
1176+ ) : CommandResult {
11711177 const startedAt = Date . now ( ) ;
11721178 const maxOutputBytes = 2 * 1024 * 1024 ;
1179+ const retainedBytes = Math . max ( 1 , Math . min ( retainedOutputBytes , maxOutputBytes ) ) ;
11731180 const proc = spawnSync ( args [ 0 ] , args . slice ( 1 ) , {
11741181 cwd,
11751182 env,
@@ -1183,10 +1190,10 @@ function runCommand(args: string[], cwd?: string, env?: NodeJS.ProcessEnv, timeo
11831190 return {
11841191 args,
11851192 returncode : proc . status ?? 125 ,
1186- stdout : stdout . slice ( - 8000 ) ,
1187- stderr : stderr . slice ( - 8000 ) ,
1188- stdout_truncated : stdout . length > 8000 ,
1189- stderr_truncated : stderr . length > 8000 ,
1193+ stdout : stdout . slice ( - retainedBytes ) ,
1194+ stderr : stderr . slice ( - retainedBytes ) ,
1195+ stdout_truncated : Buffer . byteLength ( stdout , "utf8" ) > retainedBytes ,
1196+ stderr_truncated : Buffer . byteLength ( stderr , "utf8" ) > retainedBytes ,
11901197 output_limit_bytes : maxOutputBytes ,
11911198 duration_ms : Date . now ( ) - startedAt ,
11921199 signal : proc . signal || null ,
@@ -2936,6 +2943,7 @@ async function prepareReviewContext(
29362943 workspace ,
29372944 env ,
29382945 180 ,
2946+ 2 * 1024 * 1024 ,
29392947 ) ;
29402948 localPatches . set ( filename , diff ) ;
29412949 localPatchEvidence . push ( {
@@ -2987,7 +2995,7 @@ export function summarizePrFiles(files: JsonObject[], localPatches?: ReadonlyMap
29872995 const filename = String ( item . filename || "" ) ;
29882996 const localPatch = localPatches ?. get ( filename ) ;
29892997 const localCaptureRequired = localPatches !== undefined ;
2990- const localCaptureSucceeded = localPatch ?. returncode === 0 ;
2998+ const localCaptureSucceeded = localPatch ?. returncode === 0 && localPatch . stdout_truncated !== true ;
29912999 const patch = localCaptureSucceeded ? localPatch . stdout : String ( item . patch || "" ) ;
29923000 const patchTruncated = patchEvidenceIncomplete ( patch , Number ( item . additions || 0 ) , Number ( item . deletions || 0 ) ) ;
29933001 const binaryPatch = patch . includes ( "GIT binary patch" ) || patch . includes ( "Binary files " ) ;
0 commit comments