fix(proxy): honor backpressure in cliproxy local streaming (#1379)

This commit is contained in:
Kai (Tam Nhu) Tran
2026-05-23 21:45:09 -04:00
committed by GitHub
parent 0db9705d75
commit 90d5ca2cbb
+16 -3
View File
@@ -116,9 +116,22 @@ export function createCliproxyLocalProxyRouter(deps: CliproxyLocalProxyDeps = {}
}
res.writeHead(proxyStatus, proxyRes.headers);
// Manual streaming instead of pipe() for Bun runtime compatibility
proxyRes.on('data', (chunk: Buffer) => res.write(chunk));
proxyRes.on('end', () => res.end());
// Manual streaming instead of pipe() for Bun runtime compatibility.
// Explicitly honor downstream backpressure to avoid unbounded buffering.
const onDrain = () => proxyRes.resume();
proxyRes.on('data', (chunk: Buffer) => {
const canContinue = res.write(chunk);
if (!canContinue) {
proxyRes.pause();
res.once('drain', onDrain);
}
});
proxyRes.on('end', () => {
res.off('drain', onDrain);
res.end();
});
}
);