data_release
Release a claimed row — the NORMAL end of processing one row, and the
counterpart of data_claim_next. Guarded by worker (same label as at claim
time), and addressed by the _id that data_claim_next returned.
⚠️ Call it after EVERY row you finish, not only when abandoning: writing a "final" status no longer frees the row (#317). If you wrap your work in run_start / run_finish, closing the run frees everything it held — that is the safety net when you forget.
On a table that declares lifecycle.advance, releasing a row you WROTE since
claiming it moves it to the next state (advanced: {field, from, to} in the
reply); a row you did not write stays where it is.
datastore = the table's NUMBER (ns_id, the one data_claim_next handed
you) — the form to use. Its name still resolves until 2026-11-08, then is
refused. slot:<name> also works.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"datastore": "<datastore>",
"id": "<id>",
"worker": "<worker>"
},
"name": "data_release"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| _org | No | Org (id) de CET APPEL. `oto_list_orgs()`. | |
| _group | No | Équipe (id) de CET APPEL, sous son org parente. | |
| worker | Yes | ||
| _run_id | No | OBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas. | |
| _project | No | Projet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`. | |
| datastore | Yes |