Fleet
Fleet software updates
The operator console at /app/fleet/ota-updates schedules a firmware, software, config, or security_patch update for one required robot. The background worker advances that row to installing and then waits for that robot's explicit device-reported terminal status. Fleet-wide fan-out is not implemented.
On this page
01 What is shipped
detailsConsole and API create a row
Operators enter firmware_version, update_type (firmware, software, config, security_patch), a required robot_id, and rollout_percentage 0-100. Statuses are pending, downloading, installing, completed, failed, and rolled_back.
Device acknowledgement is authoritative
OTAUpdateWorker advances that robot's row from pending to downloading to installing. It never invents a completed or failed result; the assigned robot must report the terminal status. It also never reads rollout_percentage or fans an update out to member robots, so treat rollout_percentage as stored metadata, not a shipped rollout contract.
List filters are nested
GET /api/v1/operator/ota-updates validates params["filter"] only. ?status=pending is ignored; use filter[status], filter[update_type], and filter[robot_id].
Related docs
see also