Skip to content

revert: restore accumulator and consumer to stable 2.5.1 behavior#133

Merged
cayossarian merged 2 commits intomainfrom
release/v2.5.4
Apr 10, 2026
Merged

revert: restore accumulator and consumer to stable 2.5.1 behavior#133
cayossarian merged 2 commits intomainfrom
release/v2.5.4

Conversation

@cayossarian
Copy link
Copy Markdown
Member

The 2.5.2 lifecycle changes (property clearing, unconditional lifecycle transition on $state=init, generation counter) and the 2.5.3 partial fix both caused false energy dip spikes on panel reboots and network events.

Revert accumulator.py and homie.py to their 2.5.1 state. The existing dirty-node tracking handles reboot transitions correctly without special-case lifecycle management.

Bumps version to 2.5.4.

The 2.5.2 lifecycle changes (property clearing, unconditional lifecycle
transition on $state=init, generation counter) and the 2.5.3 partial fix
both caused false energy dip spikes on panel reboots and network events.

Revert accumulator.py and homie.py to their 2.5.1 state. The existing
dirty-node tracking handles reboot transitions correctly without
special-case lifecycle management.

Bumps version to 2.5.4.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Reverts the MQTT/Homie accumulator + consumer lifecycle behavior back to the stable 2.5.1 semantics to prevent false energy “dip spike” artifacts during panel reboots and transient network events, and bumps the package version to 2.5.4.

Changes:

  • Reverted HomiePropertyAccumulator lifecycle handling (removes generation counter and avoids unconditional READY disruption on transient $state values like init).
  • Simplified HomieDeviceConsumer snapshot caching by removing generation-based cache invalidation and relying on dirty-node tracking.
  • Updated release metadata (version bump + changelog) and removed tests that targeted the reverted behavior.

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/span_panel_api/mqtt/accumulator.py Removes generation tracking and restores prior lifecycle transition behavior.
src/span_panel_api/mqtt/homie.py Drops generation-based cache invalidation logic in snapshot building.
tests/test_accumulator.py Removes reboot/description-related lifecycle tests tied to the reverted behavior.
tests/test_mqtt_homie.py Removes a snapshot-cache invalidation test that depended on the reverted generation/lifecycle logic.
CHANGELOG.md Adds 2.5.4 entry describing the revert; updates version history summary.
pyproject.toml Bumps project version to 2.5.4.
uv.lock Updates locked project version; also drops some wheel entries for certain architectures.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…ervation

Lock in the core 2.5.4 revert invariants: transient $state values
(init, sleeping, alert) must not disrupt READY lifecycle or snapshot
caching, and property/timestamp/target values must survive reboot
cycles with cache invalidation driven by dirty-node tracking.
@cayossarian cayossarian merged commit 1dab904 into main Apr 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants