daemon: in a workflow, and an automation, which can be pointed at a different machine for the same project.
When something does need to choose, Reliant resolves it in a fixed order, from the most specific instruction to the least:
daemon: on a single node wins over a daemon: on the whole workflow, which wins over the machine the automation was activated with, which wins over the project’s own machine.
Automations
When you activate an automation you choose its machine, or No machine if the workflow allows it. The runs it starts use that machine’s tools even if the project’s chats use another. If you leave it unset for a project that has several candidates, you are asked to choose; an unattended run is never sent somewhere by guesswork.The daemon: field
A workflow, or any node in it, can name where its tools run. The shorthand takes a kind or a machine name:
local, cloud and any are kinds; any other string is matched against machine names. Here the workflow defaults to your own computer, and the build node overrides that to run on a cloud machine.
For more control, use a selector. Every field you give must match:
id, name, type (local, cloud or any) and labels; every label listed must be present on the machine. Machines advertise labels to Reliant when they connect, but reliant daemon start has no flag for setting your own, so rely on id, name and type unless you know what a machine advertises.
The value can also be a CEL expression, such as "{{ inputs.where }}", which may produce a string or a map with the same keys.
Machine status
A running daemon sends a heartbeat every 15 seconds and is treated as gone after 30 seconds without one.