Repository navigation
fix(sdk): close abandoned SSE responses when a watcher stops - #4246
Conversation
|
364b9d0 to
4abc5af
Compare
Own each response through stream validation and iterator disposal. Preserve original failures and report otherwise failed transport cleanup. Include lifecycle regressions and regenerated extension artifacts. Fixes #4209
4abc5af to
0b7c2f6
Compare
|
Rewrote the complete PR history with the owner's authorization: 8 commits are now one, The new commit reuses the exact prior root tree Fresh checks must be evaluated against the new head. Correction to the earlier chat update: the main run examined at |
Summary
Fixes #4209.
streamOperationowns its HTTP response through validation, parsing, terminal completion, and iterator disposal. Ending a watch closes the response body but never posts an application cancellation request. Cleanup preserves an existing protocol, abort, or transport failure; if otherwise successful disposal cannot close the underlying transport, it returns a typedTraceDecayDisconnectedErrorwith that cause instead of silently succeeding.The generated
plugin/chatgpt-extension/embedded/server.mjsis rebuilt and committed. Temporary owner-scoped repair/generation steps were removed afterward: the existing Renovate workflow is restored byte-for-byte, with no net workflow change.Verified behavior
Cleanup regression and build run:
check:embedded, andgit diff --check: passed.5a173fba2ff4276abacbce396b16dd63c8e89ef0; the following commit only restores the temporary workflow.The SDK command excludes the existing installed-package test; it is not included in the 45-test claim. Full ready-PR CI runs separately and must satisfy repository merge requirements. Earlier draft-only green runs skipped heavy jobs and are not full validation.
Related #4210 (reconnect policy), #4211 (terminal classification), and #4226 (napi-rs consolidation) remain separate.