From 397d50f65130b2a8c22aced92bca46582df784f8 Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:35:54 +0800 Subject: [PATCH 1/8] fix: ignore non-object websocket messages --- lighter/ws_client.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lighter/ws_client.py b/lighter/ws_client.py index 14abdf5..5ed2929 100644 --- a/lighter/ws_client.py +++ b/lighter/ws_client.py @@ -42,6 +42,9 @@ def on_message(self, ws, message): if isinstance(message, str): message = json.loads(message) + if not isinstance(message, dict): + return + message_type = message.get("type") if message_type == "connected": @@ -61,7 +64,12 @@ def on_message(self, ws, message): self.handle_unhandled_message(message) async def on_message_async(self, ws, message): - message = json.loads(message) + if isinstance(message, str): + message = json.loads(message) + + if not isinstance(message, dict): + return + message_type = message.get("type") if message_type == "connected": From a2f002c61757b40e95047e9ccbcb230a61316795 Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:36:00 +0800 Subject: [PATCH 2/8] test: cover non-object websocket messages --- test/test_ws_client.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/test_ws_client.py diff --git a/test/test_ws_client.py b/test/test_ws_client.py new file mode 100644 index 0000000..8d49d21 --- /dev/null +++ b/test/test_ws_client.py @@ -0,0 +1,21 @@ +import unittest + +from lighter.ws_client import WsClient + + +class TestWsClient(unittest.IsolatedAsyncioTestCase): + def setUp(self): + self.client = WsClient(order_book_ids=[0]) + + def test_sync_ignores_json_string_message(self): + self.client.on_message(None, '"heartbeat"') + + async def test_async_ignores_json_string_message(self): + await self.client.on_message_async(None, '"heartbeat"') + + async def test_async_ignores_decoded_non_object_message(self): + await self.client.on_message_async(None, ["heartbeat"]) + + +if __name__ == "__main__": + unittest.main() From 02ec39dd86e806668b476ad348f5c32a80c08924 Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:36:07 +0800 Subject: [PATCH 3/8] x --- x | 1 + 1 file changed, 1 insertion(+) create mode 100644 x diff --git a/x b/x new file mode 100644 index 0000000..c1b0730 --- /dev/null +++ b/x @@ -0,0 +1 @@ +x \ No newline at end of file From e79150787906c19c8396fe7cc59bc82449f675dc Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:36:14 +0800 Subject: [PATCH 4/8] chore: remove stray file --- x | 1 - 1 file changed, 1 deletion(-) delete mode 100644 x diff --git a/x b/x deleted file mode 100644 index c1b0730..0000000 --- a/x +++ /dev/null @@ -1 +0,0 @@ -x \ No newline at end of file From 6de86da7eb782ac19e477e67ccd6b5cc63ee6f67 Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:36:21 +0800 Subject: [PATCH 5/8] noop --- .github/placeholder-never | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/placeholder-never diff --git a/.github/placeholder-never b/.github/placeholder-never new file mode 100644 index 0000000..e69de29 From d0062435312eeaedcbc8ef28629da8d50697be70 Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:36:29 +0800 Subject: [PATCH 6/8] chore: remove placeholder --- .github/placeholder-never | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/placeholder-never diff --git a/.github/placeholder-never b/.github/placeholder-never deleted file mode 100644 index e69de29..0000000 From e8d7b075d03803596eca61a73bc6caff54169f28 Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:36:34 +0800 Subject: [PATCH 7/8] none --- .github/none | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/none diff --git a/.github/none b/.github/none new file mode 100644 index 0000000..c86c3f3 --- /dev/null +++ b/.github/none @@ -0,0 +1 @@ +none \ No newline at end of file From 8ad4c729f8852eb699b53de56419890ed317f6ae Mon Sep 17 00:00:00 2001 From: Chu Khac Minh <87845619+Minh3132@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:36:43 +0800 Subject: [PATCH 8/8] chore: remove temporary file --- .github/none | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .github/none diff --git a/.github/none b/.github/none deleted file mode 100644 index c86c3f3..0000000 --- a/.github/none +++ /dev/null @@ -1 +0,0 @@ -none \ No newline at end of file