From 700a38b8c17b83f62eebfc15f4d849b494853aa3 Mon Sep 17 00:00:00 2001 From: agessaman Date: Mon, 6 Jul 2026 16:38:45 -0700 Subject: [PATCH] refactor: use public max_size property for offline-queue retention Prefer MessageQueue.max_size (new public property in openhop_core) over the private _max_size attribute, keeping a getattr fallback for older cores that predate the property. --- repeater/companion/frame_server.py | 9 +++++++-- tests/test_companion_settings.py | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/repeater/companion/frame_server.py b/repeater/companion/frame_server.py index 63d0edb..388daa9 100644 --- a/repeater/companion/frame_server.py +++ b/repeater/companion/frame_server.py @@ -61,13 +61,18 @@ class CompanionFrameServer(_BaseFrameServer): async def _persist_companion_message(self, msg_dict: dict) -> None: """Persist message to SQLite and pop from bridge queue. - The bridge's ``offline_queue_size`` (``message_queue._max_size``) doubles + The bridge's ``offline_queue_size`` (``message_queue.max_size``) doubles as the SQLite retention limit: 0 disables offline storage entirely, so the message is dropped instead of persisted. """ if not self.sqlite_handler: return - retention = getattr(self.bridge.message_queue, "_max_size", None) + # Older cores predate the public max_size property. + retention = getattr( + self.bridge.message_queue, + "max_size", + getattr(self.bridge.message_queue, "_max_size", None), + ) if retention == 0: self.bridge.message_queue.pop_last() return diff --git a/tests/test_companion_settings.py b/tests/test_companion_settings.py index 0e4609a..ea423d7 100644 --- a/tests/test_companion_settings.py +++ b/tests/test_companion_settings.py @@ -251,7 +251,7 @@ class TestPersistSkipWhenOff: fs.sqlite_handler = MagicMock() fs.companion_hash = "0x01" bridge = MagicMock() - bridge.message_queue._max_size = max_size + bridge.message_queue.max_size = max_size fs.bridge = bridge return fs