samzong
5b310a7b27
fix(agents): release abandoned provider streams
Fix streamed provider cleanup so abandoned managed fetch bodies no longer keep undici sockets open, and cancel Anthropic/Gemini SSE readers deterministically when parsing exits early.
Keep the FinalizationRegistry abort path as a last-resort GC safety net for unmanaged/abandoned responses, while parser-owned paths cancel readers explicitly on thrown errors or malformed events.
Also records the browser-only Control UI redactor alias in the optional deadcode allowlist and keeps mocked exec supervisor tests off shell snapshot wrapping after the branch was rebased onto default shell snapshots.
Fixes #67461
Verification:
- node scripts/run-vitest.mjs src/agents/provider-transport-fetch.test.ts src/agents/anthropic-transport-stream.test.ts extensions/google/transport-stream.test.ts src/agents/bash-tools.test.ts src/agents/bash-tools.exec.path.test.ts test/scripts/test-live-shard.test.ts
- pnpm check:test-types
- node scripts/run-oxlint-shards.mjs --threads=8
- .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main --parallel-tests "node scripts/run-vitest.mjs src/agents/provider-transport-fetch.test.ts src/agents/anthropic-transport-stream.test.ts extensions/google/transport-stream.test.ts src/agents/bash-tools.test.ts src/agents/bash-tools.exec.path.test.ts test/scripts/test-live-shard.test.ts"
- git diff --check origin/main...HEAD
- PR CI on a1db789652
Co-authored-by: samzong <samzong.lu@gmail.com>
Signed-off-by: samzong <samzong.lu@gmail.com>
2026-05-31 17:17:53 +01:00
..
2026-05-31 14:46:17 +01:00
2026-05-31 00:29:44 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 15:55:32 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 17:03:55 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 17:00:24 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 17:17:53 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 16:43:46 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 09:00:00 -07:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 16:52:11 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 08:16:11 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 15:51:41 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 17:07:41 +01:00
2026-05-31 16:41:24 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 09:32:52 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-27 19:24:04 +01:00
2026-05-31 16:58:46 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 15:53:14 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 14:46:17 +01:00
2026-05-31 15:53:14 +01:00
2026-05-27 12:41:10 +02:00