opencode
opencode copied to clipboard
Memory leak: ACP session event streams never aborted
Problem
In the ACP (Agent Communication Protocol) module, sessions and their event streams are not properly cleaned up:
- Session Map Growth - Sessions are stored in a Map but never removed when completed
-
Event Stream Leaks - Event streams created via
session.stream()are never aborted when sessions end -
No Disposal Mechanism - No
dispose()method exists to clean up session resources
Code Location
-
packages/opencode/src/acp/agent.ts -
packages/opencode/src/acp/session.ts -
packages/opencode/src/acp/types.ts
Impact
- Memory grows with each session that completes
- Event stream listeners accumulate
- No way to explicitly clean up session resources
Relates to #5363
Expected Behavior
- Sessions should be removed from Map when completed
- Event streams should be aborted when session ends
- A
dispose()method should be available for explicit cleanup