fix(core): ensure childProcessFallback also streams file_data unconditionally without truncation

This commit is contained in:
Spencer
2026-04-10 16:43:03 +00:00
parent 63a6211fe0
commit e064cfe043

View File

@@ -375,7 +375,6 @@ export class ShellExecutionService {
const outputFilePath = path.join(os.tmpdir(), outputFileName);
const outputStream = fs.createWriteStream(outputFilePath);
let isBinaryStream = false;
let totalBytesWritten = 0;
const interceptedOnOutputEvent = (event: ShellOutputEvent) => {
@@ -383,14 +382,11 @@ export class ShellExecutionService {
case 'raw_data':
break;
case 'file_data':
if (!isBinaryStream) {
outputStream.write(event.chunk);
totalBytesWritten += Buffer.byteLength(event.chunk);
}
outputStream.write(event.chunk);
totalBytesWritten += Buffer.byteLength(event.chunk);
break;
case 'binary_detected':
case 'binary_progress':
isBinaryStream = true;
break;
default:
break;
@@ -788,6 +784,24 @@ export class ShellExecutionService {
}
if (decodedChunk) {
const rawEvent: ShellOutputEvent = {
type: 'raw_data',
chunk: decodedChunk,
};
onOutputEvent(rawEvent);
if (child.pid) {
ExecutionLifecycleService.emitEvent(child.pid, rawEvent);
}
const fileEvent: ShellOutputEvent = {
type: 'file_data',
chunk: stripAnsi(decodedChunk),
};
onOutputEvent(fileEvent);
if (child.pid) {
ExecutionLifecycleService.emitEvent(child.pid, fileEvent);
}
const event: ShellOutputEvent = {
type: 'data',
chunk: decodedChunk,