Skip to content

Fix retained metadata contracts and bound snapshot refresh memory - #21

Merged
mot-yelraf merged 1 commit into
trunkfrom
fix-meta-contracts
Sep 20, 2026
Merged

mot-yelraf merged 1 commit into
trunkfrom
fix-meta-contracts

Conversation

@mot-yelraf

Copy link
Copy Markdown
Owner

Summary

Persisted configuration edits previously emitted only non-retained patches, leaving offline subscribers with stale metadata. Publish a retained meta/config companion, advertise saved calibration/display/Time/HomeAssistant values, and include physical switch configuration with live switch state. Refresh persisted metadata one serialized snapshot at a time after command replies drain, reducing allocation pressure on CircuitPython boards.

Document the Sensorius subscriber migration and broker/heap validation procedure. Firmware version: v0.26.263.3.

Related issue

No separate issue; this focused change corrects the retained metadata contract and refresh behavior observed during operator validation.

Verification

  • ruff check .: passed.
  • pytest -q: 893 passed.
  • git diff --check: passed.
  • scripts/nodus_mpy.sh --target pico2w --no-stage-libs: compiled 70 modules with CircuitPython 9.2.8.
  • scripts/nodus_mpy.sh --target xesp32s3 --no-stage-libs: compiled 70 modules with CircuitPython 10.2.1.
  • Operator confirmed verification before requesting commit/publish/merge. Existing broker-visible Pico2 W observations and the acceptance procedure are recorded in docs/metadata_validation.md. The latest confirmation did not specify board/profile/duration/filesystem mode or attach a new capture; no additional hardware run was performed during PR publication. Full two-board acceptance coverage is not claimed.

Checklist

  • I kept the change focused and avoided unrelated reformatting.
  • I added or updated focused tests when behavior changed.
  • ruff check . passes.
  • pytest -q passes.
  • I updated docs and TOML templates when public behavior or configuration changed (no new configuration keys).
  • I did not commit credentials, live device configuration, private logs, or host-specific files.
  • I preserved CircuitPython compatibility and constrained-memory behavior.
  • I documented relevant hardware validation, or explained why it was not required.
  • I updated the firmware version only if runtime behavior changed.

@mot-yelraf
mot-yelraf merged commit 92ca791 into trunk Sep 20, 2026
5 checks passed
@mot-yelraf
mot-yelraf deleted the fix-meta-contracts branch September 20, 2026 16:19
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.

1 participant