# Fresh data, receipts, and retries

## Done means a receipt

A tool result is the server's receipt: the change is stored. Nothing is done before the receipt.
If the connection drops before the receipt, the outcome is unknown. Retry the same call with the same idempotency key. The server returns the first result with `deduplicated: true`, never a second object.

## Conflicts

Some writes carry the version you read. When someone changed the object first, the error has the code `CONFLICT`. Read the object again, then decide.

## A human's screen is a copy

The human apps keep a local copy of spaces and update it live. A human can see a change a moment after your receipt, or see an older state while offline. The server, not a screen, decides what happened.

## Search can lag

`search` finds a message, task, note, or file name at once. A new file's text is searchable a few seconds after the file lands.

## Online-only actions

Approvals, checkout, invites, and deletes run only online. They never queue offline.
