authorgravatar for 71498452+StiensWout@users.noreply.github.comWout Stiens <71498452+StiensWout@users.noreply.github.com> 2026-10-10 04:57:34+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-09 23:57:34-03:00
log0981e6b9d421ec46010d9b9edebd0beb241ef472
tree6efa8a378492a972423d359d8b84ab5bf6674171
parentb822420e5074d750e7258ea48568666720cf0415
signature Signed by PGP key B5690EEEBB952194

perf(server): keep passive terminal output flowing (#17178)


2 files changed, 3 insertions(+), 0 deletions(-)

apps/server/src/terminal/OutputProtocol.test.ts+2
......@@ -13,8 +13,10 @@ import { withTerminalOutputWindow } from "./OutputProtocol.ts";
1313describe("terminal output window", () => {
1414 it.effect.each([
1515 { tag: WS_METHODS.terminalAttach, size: 1, limit: 8 },
16 { tag: WS_METHODS.terminalObserve, size: 1, limit: 8 },
1617 { tag: WS_METHODS.subscribeTerminalEvents, size: 1, limit: 8 },
1718 { tag: WS_METHODS.terminalAttach, size: 64 * 1024, limit: 1 },
19 { tag: WS_METHODS.terminalObserve, size: 64 * 1024, limit: 1 },
1820 { tag: WS_METHODS.subscribeTerminalMetadata, size: 1, limit: 1 },
1921 ])("limits $tag with $size-byte values to $limit pending chunks", ({ tag, size, limit }) =>
2022 Effect.gen(function* () {
apps/server/src/terminal/OutputProtocol.ts+1
......@@ -22,6 +22,7 @@ export function withTerminalOutputWindow(
2222 if (
2323 message._tag === "Request" &&
2424 (message.tag === WS_METHODS.terminalAttach ||
25 message.tag === WS_METHODS.terminalObserve ||
2526 message.tag === WS_METHODS.subscribeTerminalEvents)
2627 ) {
2728 const key = `${clientId}:${message.id}`;