Hold a node awake past its idle timer (bills the whole hold)
Hold a node awake: stop the idle timer until the time you name, so a node between two pieces of work is not reclaimed while you think. THE HONEST REPLACEMENT for a keepalive sleep loop - a background while true; do sleep does the same thing while occupying a detached-command slot, rendering on your mission page as if it were work, and leaving the audit log saying you ran a command when what you did was ask us not to reclaim a node. until is required and ceilinged (node_hold_ceiling_hours; list_limits shows it): the node BILLS the whole time at its normal rate, and the response quotes what the full hold costs before you commit to it. Forward-only, like a queue hold: a shorter re-ask never cuts an existing hold, because another agent working this node may be relying on it - release_node is how a hold ends early, and it is explicit. WHICH STOPS THIS DEFEATS: the idle grace reaper, AND the workspace's idle-burn auto-stop (set_alerts) for the length of the hold - the two stops that fire because nothing looks like it is happening. That second one is why a hold is the right tool for zero-GPU work that IS happening: a file transfer, a dependency install, a dataset download. It is a deferral, not an exemption: when the hold ends, an idle node is stopped by the alert as armed. Everything else still lands - a spend cap, an unpaid invoice, an org admin, a host retirement stop a held node. A stop of any kind clears the hold, so it never carries into a later wake. When the hold expires the node is back on its normal idle path: an IDLE node stops on the next sweep, so a hold you forget on an idle node costs what you were quoted and no more - but a node the meter can see WORKING keeps getting a fresh grace window for as long as the work lasts, hold or no hold (get_node's utilization.busy is that verdict), and only stop_node ends that bill. get_node shows a live hold under hold. A QUEUED node refuses a hold: set a boot command (run_command on_wake), hold once it runs.
Request
- Base URL: https://autoresearch.sfcompute.com
- URL: https://autoresearch.sfcompute.com/preview/nodes/{name}/hold
- Auth: HTTP bearer
Path parameters
Node name (from list_nodes).
Query parameters
Act in this workspace (its slug). Omitted: the token's bound workspace, then the organization's default. Never ambient - there is no switch-workspace mutation on this door.
Request body
Response
The capability's JSON result.
Changes
No recorded changes to this operation across all 1 revision of this API.