Skip to content

v0.4.0

@dcj dcj tagged this 25 May 19:34
coerce_payload was lowercasing payload.type ("PRICE" → "price") while
EventPayloadDescriptor.payload_type and ReportPayloadDescriptor.payload_type
passed the wire value through unchanged. The result was a within-event
mismatch that broke any consumer joining interval payload rows against
payload_descriptors[].payload_type by string equality (silent dict-lookup
miss). Preserve the wire case throughout so descriptor and payload sides
agree. Surfaced by the openadr3-ven-hass 0.4.0 → 0.4.1 incident.

Also: add CHANGELOG.md (Keep-a-Changelog format), document the
Trusted-Publisher release flow in CONTRIBUTING.md, link the changelog
from README, and update the payload-coercion table to reflect the new
pass-through behavior.

Fixes POA3-bp6.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Assets 2
Loading