195c3e5a3b
The leftover-4001 fix stopped the dispatcher from CREATING a rebind after a tombstone, but a request queued before it still fired, and the push path (markRuntimeGone) never checked at all. Both funnel through requestSessionResume, so guard there: a removal-pending id never gets queued, and no consumer has to re-derive whether an id is doomed. isSessionRemovalPending is now the single predicate. resumeSession keeps its entry guard for requests queued before the tombstone; the session tile gets the same guard via shouldResumeSessionTile, closing the tile twin where a 4001 racing a delete unbound the runtime and re-armed the resume effect against a dead id. Drops the !freshDraftReady clause on explicitlyRequested: a gateway switch also stages a fresh draft while leaving the URL on /:sid, where an explicit request is the only remaining resume lever, so that clause silently dropped plugin and SDK reselects after a connection apply. Co-authored-by: xxxigm <tuancanhnguyen706@gmail.com>