Skip to content

fix: suppress signage heartbeat changefeed events - #327

Merged
stakach merged 3 commits into
masterfrom
ai/146-signage-heartbeat
Sep 16, 2026
Merged

stakach merged 3 commits into
masterfrom
ai/146-signage-heartbeat

Conversation

@stakach

@stakach stakach commented Sep 16, 2026 •

Copy link
Copy Markdown
Member

Signage polling calls ControlSystem#update_last_seen_time, which currently emits a configuration changefeed event and causes core to refresh logic modules. Declare signage_last_seen and playlist_item_id as ignored update columns so heartbeat-only writes persist without running EventBus's notification function.

Require released pg-orm 2.4.0 and remove its unversioned override. Ordinary and mixed configuration updates, INSERT/DELETE and other model notifications remain intact. The existing single UPDATE is unchanged; no migration or core filter is needed.

Review

  • Real PostgreSQL CDC regression checks persisted telemetry, repeated items/nil/empty clearing, event rows, notification suppression with a committed barrier, configuration/mixed updates, create/delete and Zone notifications.
  • Core/rest-api source audit found no explicit dependency on heartbeat events. Current telemetry remains available via SQL reads.
  • Upgrade all trigger-installing services to EventBus 1.1.0+ before enabling this models policy. Policy applies to all writers and persists if a model declaration is later removed; rollback uses EventBus's expected-current-policy replacement.
  • Address existing lint findings; block rescue scopes and return behavior are unchanged. Update models style CI to checkout v7.0.1 and Ameba action v1.0.0, removing the legacy Crystal 1.14 formatter mismatch. Fix random bucket collisions in the Storage default fixture.
  • Completes the models stage of Suppress signage heartbeat changefeed events local#146, after EventBus automatically add Logic module to associated ControlSystem #6 and pg-orm improvement(zone): #tag_list helper #21 were released.

Verification

  • Original regression fails: first heartbeat adds an unwanted sys UPDATE CDC row.
  • Focused green Docker run: 2 examples, 0 failures/errors, verifying all heartbeat suppression and retained notification assertions.
  • Broader local compilation exited 137 (OOM) on the shared 8GB Docker VM, including with one compiler worker. Full suite will run on isolated GitHub CI; unrelated containers were left running.
  • Ameba: 180 files, zero failures. Formatting and diff checks pass; independent review approved.
  • First full CI run passed heartbeat coverage in both images but exposed a Zone callback timeout and random Storage fixture collision. Zone coverage now checks the SQL/notification boundary directly; distinct Storage buckets prevent collisions. Final stable and unstable matrix plus style checks passed on commit 9d16f44: https://github.com/PlaceOS/models/actions/runs/35044561562.

@github-actions github-actions Bot added the type: bug something isn't working label Sep 16, 2026
@stakach
stakach marked this pull request as ready for review September 16, 2026 01:25
@github-actions github-actions Bot added type: bug something isn't working and removed type: bug something isn't working labels Sep 16, 2026
@github-actions github-actions Bot added type: bug something isn't working and removed type: bug something isn't working labels Sep 16, 2026
@stakach
stakach merged commit 09751e6 into master Sep 16, 2026
8 checks passed
@stakach
stakach deleted the ai/146-signage-heartbeat branch September 16, 2026 01:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: bug something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant