Everruns SDKs record why a change was made
Rust, Python and TypeScript clients gain with_reason (withReason in
TypeScript). It returns a derived client that sends the reason in the
Everruns-Change-Reason header with every request, and the server stores it in
the changed entity’s history. The original client is unchanged, and a blank
reason sends no header.
await client.with_reason("retire the unused agent").agents.delete("agent_123")The server rejects a reason longer than 1000 characters, one with control
characters other than newline and tab, or one that looks like a credential,
with HTTP 400 invalid_change_reason.
See Change history, SDKs and #115.