# stop.py DOX ## Purpose - Own the authenticated WebUI endpoint that stops an active agent run without deleting or resetting its chat context. ## Ownership - `stop.py` resolves the requested in-memory context and cancels its current process. ## Runtime Contracts - `Stop` derives from `ApiHandler`, retaining the default authentication and CSRF protections. - Input uses the selected chat ID in `context`; the endpoint never creates a missing context. - Stopping cancels the context task through `AgentContext.kill_process()`, clears pause state, preserves chat history and queued messages, and does not start another run. - The endpoint clears active progress and logs a terminal `Agent process stopped.` info step so the WebUI closes the interrupted process group. - The response contains `message`, `context`, and a `stopped` boolean indicating whether the context was running when requested. ## Work Guidance - Keep this endpoint aligned with the composer stop-button state and the existing `AgentContext` task lifecycle. ## Verification - Run `pytest tests/test_stop_agent.py` and smoke-test stopping during model streaming and tool execution. ## Child DOX Index No child DOX files.