Address PR feedback: add flush before kill, try-catch in flushDataBuffer and its test coverage

This commit is contained in:
Raza Rauf
2026-01-16 18:06:50 +05:00
parent f21cd0b442
commit 640aa0a8ff
2 changed files with 592 additions and 515 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1813,7 +1813,18 @@ export class ProcessManager extends EventEmitter {
// Emit accumulated data
if (managedProcess.dataBuffer) {
this.emit('data', sessionId, managedProcess.dataBuffer);
try {
this.emit('data', sessionId, managedProcess.dataBuffer);
} catch (err) {
logger.error(
'[ProcessManager] Error flushing data buffer',
'ProcessManager',
{
sessionId,
error: String(err)
}
);
}
managedProcess.dataBuffer = undefined;
}
}
@@ -1962,6 +1973,12 @@ export class ProcessManager extends EventEmitter {
if (!process) return false;
try {
// Clear any pending buffer timeout
if (process.dataBufferTimeout) {
clearTimeout(process.dataBufferTimeout);
}
this.flushDataBuffer(sessionId);
if (process.isTerminal && process.ptyProcess) {
process.ptyProcess.kill();
} else if (process.childProcess) {