# Changelog All notable changes to this project will be documented in this file. ## [0.3.0] - 2025-11-30 ### Bug Fixes - [`431d8bb`](https://gitea.pufereq.pl/judas/judas_client/commit/431d8bb3bb5171a4d12ea306bfc767776bf6fb2a) **__main__.py**: fix wrong import - [`a00668e`](https://gitea.pufereq.pl/judas/judas_client/commit/a00668ecf3e99cf0453a7c333de4f6ab57cbcac3) **client.py**: fix wrong import - [`b756270`](https://gitea.pufereq.pl/judas/judas_client/commit/b7562703ddc82456859cb72da59e74b4bddf2dc9) **connector.py**: handle multiple messages in one packet ### Documentation - [`3a46ed1`](https://gitea.pufereq.pl/judas/judas_client/commit/3a46ed197a1e700cf4cd66ec3accd96431873772) **connector.py**: add docstrings ### Features - [`bc62dbe`](https://gitea.pufereq.pl/judas/judas_client/commit/bc62dbed66b08990a9aca790a831b07d8b5afcdb) **connector.py**: handle `self.selector.unregister` exceptions in `Connector.close()` - [`54d2ba0`](https://gitea.pufereq.pl/judas/judas_client/commit/54d2ba0083194ba2d6ea2df07372050f03d8182f) **connector.py**: add `pending_acks` and handle inbound/outbound ACKs - [`5458281`](https://gitea.pufereq.pl/judas/judas_client/commit/54582811864da1df0526763ef74b79544c695d01) **connector.py**: add `Connector.send()` method - [`99e94e2`](https://gitea.pufereq.pl/judas/judas_client/commit/99e94e2f5a3e89396e0a1140665edc1ba48cb0f2) **connector.py**: add `Connector.running` attribute - [`b887525`](https://gitea.pufereq.pl/judas/judas_client/commit/b887525cf1f6295b41c92dc8415d73c70b51a667) **__init__.py**: import `Client` and `Connector` - [`5261ad8`](https://gitea.pufereq.pl/judas/judas_client/commit/5261ad8e9fe6a07033395e6936713b48c29ae30c) **connector.py**: call `on_message()` on receive - [`3c86a5f`](https://gitea.pufereq.pl/judas/judas_client/commit/3c86a5fefd04ae03cc1503aa552cb3b5e846017b) **connector.py**: add `on_message` handler function argument to init - [`cc1145a`](https://gitea.pufereq.pl/judas/judas_client/commit/cc1145a4acb9b96e75e327d0060706f5f7f871ac) **connector.py**: get mac address from init argument - [`21bc86f`](https://gitea.pufereq.pl/judas/judas_client/commit/21bc86fa8aab7e2fae1b966ee8b831187e7e24e2) **client.py**: add `Client` class ### Miscellaneous Tasks - [`3512608`](https://gitea.pufereq.pl/judas/judas_client/commit/3512608dd19480499e7e03592db6af88c1866e65) **connector.py**: reduce loop interval to 0.1 s in `_loop()` - [`cf78a4b`](https://gitea.pufereq.pl/judas/judas_client/commit/cf78a4b05b356fda9d31d31002af69143f5121d4) **connector.py**: clarify debug message for connector loop ### Refactor - [`53912ed`](https://gitea.pufereq.pl/judas/judas_client/commit/53912ed3394b0b1909f15976bd149b3a023c210c) **connector.py**: rewrite `Connector` to use selectors - [`b8333b6`](https://gitea.pufereq.pl/judas/judas_client/commit/b8333b64088916dbef6c965566b0c3e38741e634) **connector.py**: avoid recursion in `connect()` - [`7ce3285`](https://gitea.pufereq.pl/judas/judas_client/commit/7ce32855c49435f31b0c82c7690754ae668f8709) **__main__.py**: use `Client` - [`014c429`](https://gitea.pufereq.pl/judas/judas_client/commit/014c4296e0cd91f0920d83e2f0993ba87166a118) **connector.py**: remove unused `Connector._get_mac_address()` method - [`1182e08`](https://gitea.pufereq.pl/judas/judas_client/commit/1182e089bcd74c1811faac2d6514832ba037ab42) **connector.py**: make `connect_timeout` and `ack_timeout` keyword-only - [`35b3af3`](https://gitea.pufereq.pl/judas/judas_client/commit/35b3af31bef60fda7549d229fa818a2a5b607e7d) **connector.py**: fix typing of `Connector.ack_timeout` ### Revert - [`9b077c8`](https://gitea.pufereq.pl/judas/judas_client/commit/9b077c8c4868e7ef020cb2b25203b04b3fb42554) "feat(__init__.py): import `Client` and `Connector`" ### Styling - [`38d663a`](https://gitea.pufereq.pl/judas/judas_client/commit/38d663a50178523304df0c0eff0714aef5066c74) **connector.py**: add typing to variables - [`a28c724`](https://gitea.pufereq.pl/judas/judas_client/commit/a28c724145534982d56b2d4b47b429af9f7eb275) **connector.py**: add blank line ### Build - [`fcaa7da`](https://gitea.pufereq.pl/judas/judas_client/commit/fcaa7dae70abe1139ac9e7f5d1d9e7947c0814e3) **uv.lock**: update judas_protocol to 0.5.0 - [`00d1d86`](https://gitea.pufereq.pl/judas/judas_client/commit/00d1d869d59e4bf5014a0c2baa5c0d9e3cc0fef5) **uv.lock**: update judas_protocol to 0.4.3 - [`8646388`](https://gitea.pufereq.pl/judas/judas_client/commit/8646388851c0276616610550326e81ea9974f579) **uv.lock**: update judas_protocol to 0.3.0 - [`b9d0fd9`](https://gitea.pufereq.pl/judas/judas_client/commit/b9d0fd92a65bd88c5069fd5e5961b1b968ab7039) **uv.lock**: update judas_protocol to 0.2.0 ## [0.2.0] - 2025-09-19 ### Bug Fixes - [`30b2305`](https://gitea.pufereq.pl/judas/judas_client/commit/30b2305dd1c988bfd6c7b38d125a6382bc75c84b) **connector.py**: fix hanging ACK double check in `send_hello()` - [`6efc775`](https://gitea.pufereq.pl/judas/judas_client/commit/6efc7754f998e3b27e7dda736c8f1a5fafe55d1d) **connector.py**: avoid recursion on failure in `send()` ### Features - [`8d06775`](https://gitea.pufereq.pl/judas/judas_client/commit/8d06775c276089667d9bcdf679e89d9063834036) **connector.py**: add `no_check_ack` arg to `send()` - [`5d5dbd3`](https://gitea.pufereq.pl/judas/judas_client/commit/5d5dbd371f60f6049a3abb397a8254a9e72305bc) **connector.py**: ensure sent data is ACK'd in `send()` ### Styling - [`bce62f6`](https://gitea.pufereq.pl/judas/judas_client/commit/bce62f6973aa357e308d976e52c3000c3070d608) **connector.py**: order imports - [`6953922`](https://gitea.pufereq.pl/judas/judas_client/commit/6953922b3b5f8f7f5013b820d0a0c4e5ff4c6b8d) **__main__.py**: order imports - [`a25908b`](https://gitea.pufereq.pl/judas/judas_client/commit/a25908bf46aa47446cc9354bf1c60f23a3f01cea) **connector.py**: add empty line for clarity ### Build - [`9d751b4`](https://gitea.pufereq.pl/judas/judas_client/commit/9d751b4fac67940240fdf429ec05ed50d6f63266) add ruff lint depedency - [`c63b7f9`](https://gitea.pufereq.pl/judas/judas_client/commit/c63b7f9f4d7e69abdcd574e08a49831013cbe551) add isort lint depedency ## [0.1.0] - 2025-08-28 ### Bug Fixes - [`49f2d69`](https://gitea.pufereq.pl/judas/judas_client/commit/49f2d69e0bc6a5b0203025dec5d208e4808d04a4) **connector.py**: return empty bytestring if no data in `receive()` ### Features - [`5844d4b`](https://gitea.pufereq.pl/judas/judas_client/commit/5844d4b52123a3e28be79c980f037e922656fe58) **connector.py**: require ACK for HELLO message, retry if not received - [`4496fc6`](https://gitea.pufereq.pl/judas/judas_client/commit/4496fc60aa8e048870ca5a958f3423c0e3c53f4f) **connector.py**: add `reconnect()` method to simplify reconnecting to server - [`25f6ebb`](https://gitea.pufereq.pl/judas/judas_client/commit/25f6ebbf59c5cbeb7a0c9ea3de764f0552361dd3) **connector.py**: add `send_hello()` method - [`8c30c43`](https://gitea.pufereq.pl/judas/judas_client/commit/8c30c4328dffe2064019f468a6138d66f31c2d89) **connector.py**: add `Connector` class - [`eec14b9`](https://gitea.pufereq.pl/judas/judas_client/commit/eec14b91fdd1f254afd13c5247cff229b629b8b1) **__main__.py**: add `__main__.py` ### Miscellaneous Tasks - [`eef39bc`](https://gitea.pufereq.pl/judas/judas_client/commit/eef39bc2c0f7f8488867d0c6b8d2eb6224c72454) **connector.py**: remove redundant hello send in `run()` - [`18e60ee`](https://gitea.pufereq.pl/judas/judas_client/commit/18e60ee8c7d7d7cdf700456f6975d9e17e647e29) **.vscode/launch.json**: add 'Debug client' preset - [`52eb609`](https://gitea.pufereq.pl/judas/judas_client/commit/52eb6094f9b3c14cdd14e5e9364c97297acaf641) initial commit ### Refactor - [`432ef9e`](https://gitea.pufereq.pl/judas/judas_client/commit/432ef9e2428c198497be28bc9bc53e7b7847cb05) **connector.py**: change max retry_interval to more sensible 30 secs - [`43e61e7`](https://gitea.pufereq.pl/judas/judas_client/commit/43e61e7e681a7a133bc7b66aae722ad80abdb594) **connector.py**: move time.sleep to the top of `Connector._loop()` to avoid infinite immediate retrying if data empty ### Build - [`84d4b98`](https://gitea.pufereq.pl/judas/judas_client/commit/84d4b9821435857fa49c2d05e1ae8366d010a64d) **uv.lock**: add depedency on judas_protocol - [`88bba5c`](https://gitea.pufereq.pl/judas/judas_client/commit/88bba5c44972c1a7fb2a6ca554d1148f45c842c3) **pyproject.toml**: add depedency on judas_protocol