> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirurobotics.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent

> Changelog and migration steps for the Miru Agent

# v0.10.0

*July 20, 2026*

Miru Agent `v0.10.0` introduces **data uploads**. The agent can now upload files from your devices directly to your own cloud storage bucket: when an [upload rule](/data-uploads/primitives/upload-rules) matches files on a device, the agent streams them straight to your AWS S3 or GCS bucket—your data never passes through Miru.

Reading files for upload may require granting the `miru` user [read access](/developers/agent/filesys-access#data-uploads) to the source paths. To learn more, visit the [data uploads](/data-uploads/overview) documentation.

## Features

* Added data uploads: the agent scans for files matching an upload rule's source glob pattern and uploads them to your configured AWS S3 or GCS bucket

## Fixes

* Send an immediate heartbeat on SSE connection opens so that applications can immediately determine if the connection is healthy
* Redact the MQTT password in logs to prevent credential leakage
* Preserve a deployment's dirty flag when resetting retry state on startup
* Create device RSA keys with `0600`/`0640` permissions without a `chmod` race window

***

# v0.9.0

*May 12, 2026*

Miru Agent `v0.9.0` introduces provisioning tokens as the standard programmatic device-provisioning mechanism, replacing the legacy API key flow.

To learn more, visit the [provisioning tokens](/cfg-mgmt/provision-devices/provisioning-tokens) documentation.

## Breaking changes

* The legacy provisioning script only supports provisioning `miru-agent` versions that precede `v0.9.0`; use [provisioning tokens](/cfg-mgmt/provision-devices/provisioning-tokens) for `miru-agent` versions `v0.9.0` or later

## Features

* Added `provision` and `reprovision` subcommands for enrolling and re-enrolling devices using provisioning tokens
* Upgrading the `miru-agent` package now automatically resets the on-device state so that reprovisioning is no longer required to upgrade the `miru-agent` package

## Fixes

* Resources fetched from on-device applications via the [Device API](/developers/device-api/overview) are now fetched from the Miru control plane if not found locally
* All network communications are now restricted to `mirurobotics.com` and its subdomains (loopback domains such as `127.0.0.1` are permitted for testing)
* Fixed a Debian `postinst` failure (`useradd: group miru exists`) on systems with `USERGROUPS_ENAB=yes`, and added a `tmpfiles.d` entry so `/srv/miru` is recreated on boot
* Resolved a `rustls-webpki` security advisory by routing MQTT TLS through `native-tls` instead of `rustls`
* Fixed a `usize` underflow in cache pruning that, in release builds, could wipe all valid cache entries after invalid entries were removed

***

# v0.8.1

*May 7, 2026*

`v0.8.1` is a bug fix release that restores MQTT command delivery after transient reconnects to the MQTT broker. Devices now correctly re-subscribes to command topics on every successful reconnect, preventing long-lived "connected but not receiving commands" states.

## Fixes

* Re-subscribe to MQTT sync and ping command topics on every successful `ConnAck` so inbound commands continue working after auto-reconnects

***

# v0.8.0

*April 12, 2026*

Miru Agent `v0.8.0` allows config instances to be written to paths outside of the `/srv/miru/config_instances/` directory—any valid file system path is now supported. Configs deployed to paths outside of the `/srv/miru` directory require additional file system permissions to be granted to the `miru` user.

To learn more, visit the [file system access](/developers/agent/filesys-access#configs) documentation.

## Breaking changes

* Removed `ProtectSystem=strict` and `ProtectHome=true` from the default systemd unit to allow writing config files to arbitrary absolute paths if desired

## Features

* Config instances can be deployed anywhere on the file system, not just in the `/srv/miru/` directory
* Deployments being removed now transition through an intermediate `removing` status when removal begins

## Fixes

* Fixed graceful shutdown handling when SSE streams are active
* Scope cooldown periods to be per-deployment so that new deployments are not unnecessarily delayed by other deployment failures

## Improvements

* Default all file system write operations to atomic mode for improved reliability

***

# v0.7.1

*April 7, 2026*

`v0.7.1` adds YAML support and Server-Sent Events (SSE) streaming to the Miru Agent. On-device applications can now receive real-time deployment lifecycle notifications. This release also upgrades the Device API to v0.2.1.

[Device API v0.2.1 changelog »](/changelog/device-api#v0-2-1)

## Features

* Added YAML support for configuration files
* Added Server-Sent Events (SSE) streaming via `GET /v0.2/events` for real-time deployment lifecycle notifications

***

# v0.7.0

*March 13, 2026*

`v0.7.0` upgrades the Miru Agent to Device API [v0.2.0](/changelog/device-api#v0-2-0), adding deployment-pipeline visibility for on-device applications and improving deployment reliability under transient failures.

[Device API migration guide »](/changelog/device-api#v0-2-0)

## Breaking changes

* Upgraded to Device API `v0.2.0`, visit the [v0.2.0 changelog](/changelog/device-api#v0-2-0) for more details

## Features

* Deployments are guaranteed to be atomic—all config instances for a deployment are written to the file system simultaneously or none of them are
* The agent now explicitly tracks `deployed_at` and `archived_at` timestamps on device when deployments are applied
* Config instances deployed to the device's file system are now identical (indents, spacing, etc.) to config instances edited in the config editor

## Improvements

* The agent immediately retries transient network connection errors three times before entering a cooldown period
* Improved config instance caching logic to reduce network calls during sync cycles

## Fixes

* Fixed deployment retry logic to eagerly retry failed deployments instead of waiting for the polling interval to expire (occasionally leaving deployments stuck in a `queued` state)
* Fixed deployment cooldown handling so retry windows are reported and cleared correctly
* JWT tokens are now redacted from debug outputs

***

# v0.6.1

*January 22, 2026*

## Fixes

* The `miru-agent --install` command now correctly returns a non-zero exit code on failure, instead of `0`

***

# Agent install script update

*December 8, 2025*

## Improvements

* Agent install script now runs `sudo chown -R miru:miru /srv/miru` to prevent any permissions issues encountered if the `/srv/miru` directory has previously been created with the wrong permissions

***

# v0.6.0

*October 19, 2025*

`v0.6.0` adds support for installing the agent over poor internet connections, ensuring reliable provisioning on bandwidth-constrained devices.

[Read the full documentation »](/developers/agent/install#poor-connectivity)

## Features

* Poor connectivity installations of the Miru Agent are now supported

***

# v0.5.1

*September 17, 2025*

## Fixes

* Fixed device provisioning script
* Fixed a critical bug where configuration files could go missing if multiple configuration files were queued for deployment while the agent was offline

***

# v0.5.0

*September 5, 2025*

First release with Device API v0.1.0 endpoints, MQTT-based real-time sync, and device session management. Establishes the core on-device integration surface.

## Features

* Added agent version info to device and server updates
* Added device session ID for MQTT authentication
* Added MQTT ping/pong for connection health monitoring
* Added server APIs to sync the agent
* Added version argument to installation scripts
* Added agent information to client headers
* Pretty-printed JSON objects in logs

## Fixes

* Activation script now restarts the agent on failures
* Activation script temporarily stops the agent during provisioning
* Fixed errant `unwrap()` calls that could cause panics
* Improved MQTT network connection error handling
* Fixed unnecessary file system writes for device patches
