v0.10.3
September 17, 2026 Miru Agentv0.10.3 connects to the MQTT broker over TLS on port 443 instead of 8883, so devices behind firewalls that only allow outbound 443/HTTPS traffic can maintain their real-time connection to the control plane.
Improvements
- The agent now maintains its real-time MQTT connection over TLS on port
443instead of8883, so it works on networks that only permit outbound443/HTTPS traffic
v0.10.2
September 6, 2026 Miru Agentv0.10.2 adds provision --check so fleet automation can tell whether a device is already provisioned without minting a token, and stops retrying failed retention deletes forever.
Features
- Added
provision --checkto report whether the device is already provisioned via exit code, without contacting the control plane - Retention file rule delete jobs now stop after 10 failed attempts instead of retrying forever, leaving the file on disk
Fixes
- Fixed a bug where a backward clock step could stall the upload retry queue
v0.10.1
August 12, 2026Features
- Added support for the latest file rule capabilities, including retention-only rules and a configurable delay period before deletion
Fixes
- Fixed a bug where failing to shut down one component of the agent would block other unrelated components from gracefully shutting down
- Upload failures are more robust to network connection errors by no longer counting them against a file upload’s retry budget for a given upload
v0.10.0
July 20, 2026 Miru Agentv0.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 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 to the source paths. To learn more, visit the data uploads 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/0640permissions without achmodrace window
v0.9.0
May 12, 2026 Miru Agentv0.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 documentation.
Breaking changes
- The legacy provisioning script only supports provisioning
miru-agentversions that precedev0.9.0; use provisioning tokens formiru-agentversionsv0.9.0or later
Features
- Added
provisionandreprovisionsubcommands for enrolling and re-enrolling devices using provisioning tokens - Upgrading the
miru-agentpackage now automatically resets the on-device state so that reprovisioning is no longer required to upgrade themiru-agentpackage
Fixes
- Resources fetched from on-device applications via the Device API are now fetched from the Miru control plane if not found locally
- All network communications are now restricted to
mirurobotics.comand its subdomains (loopback domains such as127.0.0.1are permitted for testing) - Fixed a Debian
postinstfailure (useradd: group miru exists) on systems withUSERGROUPS_ENAB=yes, and added atmpfiles.dentry so/srv/miruis recreated on boot - Resolved a
rustls-webpkisecurity advisory by routing MQTT TLS throughnative-tlsinstead ofrustls - Fixed a
usizeunderflow in cache pruning that, in release builds, could wipe all valid cache entries after invalid entries were removed
v0.8.1
May 7, 2026v0.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
ConnAckso inbound commands continue working after auto-reconnects
v0.8.0
April 12, 2026 Miru Agentv0.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 documentation.
Breaking changes
- Removed
ProtectSystem=strictandProtectHome=truefrom 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
removingstatus 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.2
September 17, 2026 Backport of the MQTT port-443 change to the v0.7 line. Miru Agent v0.7.2 connects to the MQTT broker over TLS on port 443 instead of 8883 so devices behind firewalls that only allow outbound 443/HTTPS traffic can maintain their real-time connection, and hardens the MQTT TLS stack.
Fixes
- Moved the MQTT TLS stack from
rustlstonative-tls, resolving the knownrustls-webpkisecurity advisories RUSTSEC-2026-0098, RUSTSEC-2026-0099, and RUSTSEC-2026-0104
Improvements
- The agent now maintains its real-time MQTT connection over TLS on port
443instead of8883, so it works on networks that only permit outbound443/HTTPS traffic
v0.7.1
April 7, 2026v0.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 »
Features
- Added YAML support for configuration files
- Added Server-Sent Events (SSE) streaming via
GET /v0.2/eventsfor real-time deployment lifecycle notifications
v0.7.0
March 13, 2026v0.7.0 upgrades the Miru Agent to Device API v0.2.0, adding deployment-pipeline visibility for on-device applications and improving deployment reliability under transient failures.
Device API migration guide »
Breaking changes
- Upgraded to Device API
v0.2.0, visit the v0.2.0 changelog 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_atandarchived_attimestamps 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
queuedstate) - 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, 2026Fixes
- The
miru-agent --installcommand now correctly returns a non-zero exit code on failure, instead of0
Agent install script update
December 8, 2025Improvements
- Agent install script now runs
sudo chown -R miru:miru /srv/miruto prevent any permissions issues encountered if the/srv/mirudirectory has previously been created with the wrong permissions
v0.6.0
October 19, 2025v0.6.0 adds support for installing the agent over poor internet connections, ensuring reliable provisioning on bandwidth-constrained devices.
Read the full documentation »
Features
- Poor connectivity installations of the Miru Agent are now supported
v0.5.1
September 17, 2025Fixes
- 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

