fix: deduplicate pollingPhase MQTT publishes#436
Merged
nanomad merged 2 commits intoSAIC-iSmart-API:developfrom Mar 15, 2026
Merged
fix: deduplicate pollingPhase MQTT publishes#436nanomad merged 2 commits intoSAIC-iSmart-API:developfrom
nanomad merged 2 commits intoSAIC-iSmart-API:developfrom
Conversation
__publish_polling_phase() was called on every polling cycle via should_refresh(), publishing the phase to MQTT even when unchanged. Track the current phase and skip redundant publishes, matching the existing deduplication pattern in set_refresh_mode(). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Verifies that the deduplication correctly re-publishes a phase after an intervening different phase (OFF -> FORCE -> OFF publishes 3 times). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
__publish_polling_phase()was called on every polling cycle viashould_refresh(), publishing to MQTT even when the phase hadn't changedset_refresh_mode()publish_counttracking to the test mock publisher and a test asserting the phase is only published once when unchangedTest plan
test_vehicle_state.pytests pass (phase is still published on transitions)test_polling_phase_not_republished_when_unchangedconfirms deduplication worksmypyandruffpass🤖 Generated with Claude Code