# One

## 2026.7

### ✨ Features

- **Currency exchange rates** — new service providing EUR-based currency conversion rates.
- **Spot prices** — new public `ListSpotPricesQuery` to fetch prices by area over a start/stop time range.
- **Device configuration revisions** — configuration changes are now versioned, with revision tracking and monitoring.
- **Site egress health & latency** — new schemas exposing egress health status and latency statistics.
- **Leaf entity types in site schemas** — site schemas now support leaf entity types.
- **Key vault key limits** — per-target cap on the number of keys, returning `E_RESOURCE_LIMIT_REACHED` when exceeded; list filters aligned with the standard conventions.
- **Device register columns** — `GetDeviceRegisterEntryColumnsQuery` is now served directly by the grain.
- **More consistent validation & identity handling** across graph commands and queries.

### 🛠️ Fixes

- Event egress consumer: added fault handling and a configurable message-size limit.
- Improved egress consumer maintenance and heartbeat handling.
- More robust Kafka producer error handling and a cleaner shutdown process.

### ⚠️ Deprecations

- The legacy column-params device register query is deprecated — use `GetDeviceRegisterEntryColumnsQuery`.
- `HubsQuery` is deprecated — use `/graph/query` instead.

## 2026.4

### ✨ Features

- KeyVault for storing secrets with rolling updates, supporting Tenant and Device Register.
- Add DeleteTenantCommand for tenant deletion functionality.
- Add GetCurrentTenant and SetCurrentTenant commands with corresponding query and result schemas.
- Egress: Optional lock for HttpClient per domain to avoid concurrent calls to the same domain.

### 🛠️ Fixes

- Reduce site entity device mapping update frequency to avoid excessive updates, plausible duplicates, and improve performance.
- Unwrap ROAMING device events to avoid unnecessary nesting and improve event handling.
- Reduce query context on GetCurrentTenantCommand to avoid unnecessary data fetching and improve performance.


### 🚀 Performance

- Remove OpenAPI generated code for deprecated methods.
- Updated internal methods to accept CancellationToken for improved cancellation support.
- Optimize database query indexes for large dataset retrieval.

## 2026.1
