generated from rmcguire/go-server-with-otel
update CHANGELOG
This commit is contained in:
@@ -6,8 +6,26 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [v0.4.0] - 2026-07-16
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
* **Mode control (first mutating RPC).** New `SetMode` RPC on `EconetService`,
|
||||||
|
exposed over gRPC, the REST gateway (`POST /v1alpha1/devices/{serial}/mode`),
|
||||||
|
and as an MCP tool. Writes go out over ClearBlade's REST publish endpoint
|
||||||
|
(`POST /message/{systemKey}/publish`, topic `user/{account_id}/device/desired`,
|
||||||
|
payload `{"@MODE": <idx>, ...}`) — the HTTP equivalent of the app's MQTT
|
||||||
|
publish, so **no MQTT client is required**. The mode is applied
|
||||||
|
asynchronously by the Rheem cloud and only reflected on a later poll.
|
||||||
|
* `Mode` proto enum (`off`, `electric`, `energy-saving`, `heat-pump`,
|
||||||
|
`high-demand`, `gas`, `performance`, `vacation`) with protovalidate rejecting
|
||||||
|
the unspecified value. The enum flows into the MCP tool's input schema, so
|
||||||
|
clients see the valid modes. Supported modes are validated per-device against
|
||||||
|
the unit's reported mode list (`@MODE` is published as an index into it).
|
||||||
|
* Generated MCP server (`econetmcpgen`) built from the proto via
|
||||||
|
`protoc-gen-go-mcp`, now mounted at `/api/mcp`, forwarding in-process to the
|
||||||
|
gRPC server through the go-sdk adapter. The hand-written `econetmcp` package
|
||||||
|
is retained as a one-line-switchable fallback in `pkg/econet/econet.go`.
|
||||||
* Optional Grafana dashboard shipped as a ConfigMap in the Helm chart. Enable
|
* Optional Grafana dashboard shipped as a ConfigMap in the Helm chart. Enable
|
||||||
with `hull.config.settings.grafanaDashboard.enabled=true`; the ConfigMap is
|
with `hull.config.settings.grafanaDashboard.enabled=true`; the ConfigMap is
|
||||||
labeled `grafana_dashboard: "1"` for the Grafana sidecar to auto-import. The
|
labeled `grafana_dashboard: "1"` for the Grafana sidecar to auto-import. The
|
||||||
@@ -17,6 +35,13 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
energy + cost + water usage, a heating-state timeline, WiFi signal, and a
|
energy + cost + water usage, a heating-state timeline, WiFi signal, and a
|
||||||
device-info table. Sidecar label/value and Grafana folder are configurable.
|
device-info table. Sidecar label/value and Grafana folder are configurable.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
* MCP tool surface changed with the switch to generated tools: `/api/mcp` now
|
||||||
|
serves `econet_v1alpha1_EconetService_ListDevices`, `_GetDevice`, and
|
||||||
|
`_SetMode` (structured JSON output) instead of the single `list_water_heaters`
|
||||||
|
summary tool. Switch back via the aliased import in `pkg/econet/econet.go`.
|
||||||
|
|
||||||
## [v0.3.0] - 2026-07-05
|
## [v0.3.0] - 2026-07-05
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
Reference in New Issue
Block a user