fix: prevent memory leaks in background agent, tool cache, and comment checker #167
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes multiple memory leak issues identified in issue #165.
Changes
1. BackgroundManager Task Accumulation (
manager.ts)tasksMap forever, causing linear memory growthCOMPLETED_TASK_RETENTION_MS)MAX_COMPLETED_TASKS)timer.unref()to prevent blocking process exit2. Tool Input Cache (
tool-input-cache.ts)setIntervalnever cleared, plus no cache size limitprocess.on("exit")cleanupMAX_CACHE_SIZE)interval.unref()to prevent blocking process exit3. Comment Checker (
comment-checker/index.ts)setIntervalnever clearedprocess.on("exit")cleanupinterval.unref()to prevent blocking process exitTesting
bun test)bun run typecheck)Oracle Review Summary
Oracle (GPT-5.2) reviewed these changes and confirmed:
unref()prevents keeping process alive just for housekeepingCloses #165
🤖 Generated with assistance of OhMyOpenCode