Reproduction
createNetScriptChatStreamProxy() resolves the upstream URL from target + streamPath, then constructs the upstream Request without copying new URL(request.url).search.
A durable chat subscriber calls the Fresh proxy with State-Protocol parameters such as:
/api/chat-stream?id=session-1&offset=42&live=sse&handle=h1
The upstream request reaches the durable-stream service without offset, live, or handle, so resume/live polling semantics are lost. The id parameter is application routing metadata and should remain removable, but protocol query parameters must survive.
Expected
The helper forwards the incoming query by default, or exposes a documented query-mapping hook, with tests for offset, live, handle, and cursor.
Consumer evidence
rickylabs/eis-chat PR #169 retains a thin streamPath adapter that appends all query parameters except id. Remove it once the published helper owns the behavior.
Follow-up to closed #251; related to #238.
Reproduction
createNetScriptChatStreamProxy()resolves the upstream URL fromtarget+streamPath, then constructs the upstreamRequestwithout copyingnew URL(request.url).search.A durable chat subscriber calls the Fresh proxy with State-Protocol parameters such as:
The upstream request reaches the durable-stream service without
offset,live, orhandle, so resume/live polling semantics are lost. Theidparameter is application routing metadata and should remain removable, but protocol query parameters must survive.Expected
The helper forwards the incoming query by default, or exposes a documented query-mapping hook, with tests for
offset,live,handle, andcursor.Consumer evidence
rickylabs/eis-chat PR #169 retains a thin
streamPathadapter that appends all query parameters exceptid. Remove it once the published helper owns the behavior.Follow-up to closed #251; related to #238.