diff --git a/lib/stream-isolation.js b/lib/stream-isolation.js new file mode 100644 index 0000000..1b26eda --- /dev/null +++ b/lib/stream-isolation.js @@ -0,0 +1,14 @@ +// This file ensures per-session isolation for SSE streams +export function createSessionStream(sessionId) { + // Fix: Concurrent sessions were sharing event buffers + // We now create a unique buffer array per session ID + const sessionBuffer = []; + return { + push: (data) => sessionBuffer.push(data), + flush: () => { + const data = [...sessionBuffer]; + sessionBuffer.length = 0; + return data; + } + }; +} diff --git a/lib/stream-isolation.test.js b/lib/stream-isolation.test.js new file mode 100644 index 0000000..a2cd2c1 --- /dev/null +++ b/lib/stream-isolation.test.js @@ -0,0 +1,4 @@ +// Manual test cases +// 1. Open two browsers +// 2. Trigger code generation simultaneously +// 3. Verify no leakage