queryGuard, setIsLoading, setAbortController, abortController, and the query-completion timestamp state were removed from the main REPL and its helpers, replaced by a single turn handle exposing setAbortController, setExternalLoading, isExternalLoading, abortController, markQueryComplete, and resetTiming. Input handlers, background-session handling, and the interrupt path now all take this turn object instead of the individual pieces. The REPL context no longer threads queryGuard, setIsLoading, setAbortController, and isExternalLoading as separate props; the setAbortController prop was deleted entirely, and background-session and background-query hooks now take turn in its place.
The message queue likewise moved onto the session, via getCommandQueue, clearCommandQueue, recheckCommandQueue, and enqueuePendingNotification.