{"version":"2.1.235","anchor":"the-chat-loops-ad-hoc-loadingabort-state-is-consolidated-i","canonical_anchor":"the-chat-loops-ad-hoc-loadingabort-state-is-consolidated-i","heading":"The chat loop's ad-hoc loading\/abort state is consolidated into a turn object","tier":"internal","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235\/e\/the-chat-loops-ad-hoc-loadingabort-state-is-consolidated-i","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235","markdown":"### The chat loop's ad-hoc loading\/abort state is consolidated into a turn object\n\nChat loop's scattered loading\/abort state is consolidated into a single turn object\n\n`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.\n\nThe message queue likewise moved onto the session, via `getCommandQueue`, `clearCommandQueue`, `recheckCommandQueue`, and `enqueuePendingNotification`.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 0\/5"}