The kill button now sends the unforced DELETE immediately instead of asking first. Only the daemon's guard refusal raises a prompt, and it is a real dialog rather than confirm(), so it can offer the override the daemon already implements. The API error envelope is decoded into ApiRequestError, keeping the code and the unsaved-work breakdown so the dialog names what is in the way.