tascan_heartbeat_run
Extend a claimed local run's lease and mark it running (POST /runs/:run_id/heartbeat -> heartbeat_agent_run). ok false with reason not_live means the run is no longer yours -- the sweep expired it, or it was never yours to begin with -- STOP, do not finish it. Never mints a completion or a receipt. Requires agent:dispatch:code. A run outside your org is 404, never 403.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | The run ID from tascan_claim_run's response. | |
| instance | Yes | The SAME instance string you claimed with -- a mismatch answers not_live. | |
| extend_seconds | No | Optional: push expires_at out to now + this many seconds (60-86400) if that is later than the current lease -- never shortens it. |