Summary
removeRequest in lib/detached-processes/cleanup-process.ts uses a self-comparison in its existence check:
- The predicate compares
currentRequestInfo with itself, so it evaluates to true whenever the request queue is non-empty.
- The subsequent
_.remove call already correctly compares each queued request against the supplied requestInfo.
As a result, removing a request that was never queued can log that it was removed when there are other queued requests. The request list itself is not incorrectly modified; the impact is limited to the success-versus-absent-request log branch.
Required change
Update the removeRequest existence predicate to compare currentRequestInfo with the incoming requestInfo, matching the predicate used by _.remove.
Affected area
lib/detached-processes/cleanup-process.ts — removeRequest
Acceptance criteria
removeRequest selects the successful-removal branch only when an equal queued request exists.
- Removing an absent request logs the existing “cannot remove … has not been added before” message.
- Removing an existing request continues to remove it and log the existing successful-removal message.
Context
Summary
removeRequestinlib/detached-processes/cleanup-process.tsuses a self-comparison in its existence check:currentRequestInfowith itself, so it evaluates to true whenever the request queue is non-empty._.removecall already correctly compares each queued request against the suppliedrequestInfo.As a result, removing a request that was never queued can log that it was removed when there are other queued requests. The request list itself is not incorrectly modified; the impact is limited to the success-versus-absent-request log branch.
Required change
Update the
removeRequestexistence predicate to comparecurrentRequestInfowith the incomingrequestInfo, matching the predicate used by_.remove.Affected area
lib/detached-processes/cleanup-process.ts—removeRequestAcceptance criteria
removeRequestselects the successful-removal branch only when an equal queued request exists.Context