opencode
opencode copied to clipboard
fix: clean up pending permissions when session is deleted
Fixes #3013
Summary
- Add
init(),dispose(), andclearSession()toPermissionNextnamespace - Subscribe to
session.deletedbus event to clean up orphaned pending permissions - Reject all pending permission requests when their session is deleted
Problem
When a session is deleted, any pending permission requests for that session remain in the pending map indefinitely. This causes:
- Memory accumulation over time as pending entries are never removed
- Orphaned promises that never resolve or reject
Solution
Subscribe to the session.deleted event and clean up all pending permissions for deleted sessions by:
- Rejecting pending promises with
RejectedError - Removing entries from the
pendingmap
Testing
Added comprehensive tests in test/permission/cleanup.test.ts.