### Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

#### [4.2.4](https://github.com/craigerl/aprsd/compare/4.2.3...4.2.4)

> 17 October 2025

- update github release build action [`0373db9`](https://github.com/craigerl/aprsd/commit/0373db958f848866a4e694c4ed7cfd2f8c7325d3)
- Remove update_timestamp during _send_direct [`6c3c16f`](https://github.com/craigerl/aprsd/commit/6c3c16f09d38c16802493cad9bfb95b4f42a8578)
- remove some debug noise [`be26f31`](https://github.com/craigerl/aprsd/commit/be26f318960125be0c9773ebae40332e59b58da0)

#### [4.2.3](https://github.com/craigerl/aprsd/compare/4.2.2...4.2.3)

> 12 October 2025

- Remove printf from tcpkiss [`4b9e7fe`](https://github.com/craigerl/aprsd/commit/4b9e7fee4e85dc75d8ae79b8b2bbc1c593c00026)
- Added line numbers in trace [`9a1c096`](https://github.com/craigerl/aprsd/commit/9a1c0961e6a51d3cb50acee423b3b36a41aabde3)
- Stop all collectors on signal [`643e19b`](https://github.com/craigerl/aprsd/commit/643e19b0ac17d4a86a8d3931c4f2ec2fb8c9bceb)
- Added stop_all to stats collector. [`eb8104b`](https://github.com/craigerl/aprsd/commit/eb8104be2f4e21ad2055a01f1514d23d46bbd8d8)
- Cleanup of tcpkiss [`3d353dc`](https://github.com/craigerl/aprsd/commit/3d353dcd26b93bcfd9130708f221c48084353ffc)
- Driver protocol is_alive is property [`7c5d9ee`](https://github.com/craigerl/aprsd/commit/7c5d9ee92d138055d8388bab22c06cd4a5213103)
- Make fake driver conform to protocol [`093ada0`](https://github.com/craigerl/aprsd/commit/093ada06b107f01e852a51f7a9446ae51cfae96a)
- Fixed aprsis client connected tracking [`056acc3`](https://github.com/craigerl/aprsd/commit/056acc3ba55395d168ebc72a4b9a5db93e78e144)
- Fixed client base class connection tracking [`24019ae`](https://github.com/craigerl/aprsd/commit/24019ae353fd0fb1c4667d8549ecab19ec945f79)
- Fixed unit tests [`961d3e9`](https://github.com/craigerl/aprsd/commit/961d3e946a73cead8f5a42a338bfdbfc369e58fd)
- update for 4.2.3 [`8932524`](https://github.com/craigerl/aprsd/commit/8932524a46433e0da4a4b96c4cc983297294d0bd)

#### [4.2.2](https://github.com/craigerl/aprsd/compare/4.2.1...4.2.2)

> 8 October 2025

- Fixed an issue with client.reset [`4920256`](https://github.com/craigerl/aprsd/commit/49202569a81d1d8f982efe2c6d015f44f6ec4a5a)

#### [4.2.1](https://github.com/craigerl/aprsd/compare/4.2.0...4.2.1)

> 7 October 2025

- Sanity check around decoding packet [`58cb046`](https://github.com/craigerl/aprsd/commit/58cb046b3131f4300255c527dee4c7291a4aeed2)
- Added CONF.is_digipi [`f3039eb`](https://github.com/craigerl/aprsd/commit/f3039ebfa153d0fbad4a390089fce360e6148854)
- Fixed stats issue with tcpkiss client. [`556554b`](https://github.com/craigerl/aprsd/commit/556554b1a76743989fa88877e7f694b918f770cf)
- Fixed missing f string [`8cd61a7`](https://github.com/craigerl/aprsd/commit/8cd61a72c8f16e8651533baf2d677d3345bd3712)
- Added ThirdPartyPacket decoding in tcpkiss driver [`3961e1d`](https://github.com/craigerl/aprsd/commit/3961e1d1adf428ff0fa66ed5fe0d6192adf164bf)
- refactored list-plugins [`c7c9a92`](https://github.com/craigerl/aprsd/commit/c7c9a92b153ccc673275dca628d485d1df88db12)
- Added package [`e15322e`](https://github.com/craigerl/aprsd/commit/e15322ede384d6e463c42e9496502e2c6ea0886c)
- Some client and driver cleanup. [`328c027`](https://github.com/craigerl/aprsd/commit/328c027ad3db594f3d5622a2cab7cafb21d1cfd6)
- Fixed some unit tests [`af0feaf`](https://github.com/craigerl/aprsd/commit/af0feaf9c81b8b9f443e58fbe7d23f1ff7ba63d2)
- Update Changelog for 4.2.1 release [`9bf4bfd`](https://github.com/craigerl/aprsd/commit/9bf4bfd92c847e70b6cb674632a0f5a12fd5b748)

#### [4.2.0](https://github.com/craigerl/aprsd/compare/4.1.2...4.2.0)

> 12 August 2025

- Reworked the entire client and drivers [`#191`](https://github.com/craigerl/aprsd/pull/191)
- Update the docker-compose.yml [`#193`](https://github.com/craigerl/aprsd/pull/193)
- Use OpenWeatherMap One Call v3.0 API [`#186`](https://github.com/craigerl/aprsd/pull/186)
- use OWM onecall v3.0 [`16bfda4`](https://github.com/craigerl/aprsd/commit/16bfda431c54a2ec6fbd011edd710c1d787ae1de)
- Fixed a problem with WeatherPacket [`5469610`](https://github.com/craigerl/aprsd/commit/54696107797c3d788e5d0b2dad164e1a7cf439f2)
- Ensure filter is set [`4c53c13`](https://github.com/craigerl/aprsd/commit/4c53c13e793356228f97e26a275d3d4c54b4bf54)
- Remove flask_enabled [`ce79f01`](https://github.com/craigerl/aprsd/commit/ce79f0112ff0f80db8adfff03c9ec8e62655bcc0)
- Make some catchall fields non hashable. [`acd639a`](https://github.com/craigerl/aprsd/commit/acd639a9100893a2e1d08d9ba65ef65ce6ed87e6)
- Fixed setup for AVWXWeatherPlugin [`2fcd574`](https://github.com/craigerl/aprsd/commit/2fcd574f12d48eaec122f96b6b15e9408d395b72)
- removed old flask_enabled global [`8f471c2`](https://github.com/craigerl/aprsd/commit/8f471c229c1073834c2ac66522fbaf2a561e296a)
- Updated requirements [`211ac11`](https://github.com/craigerl/aprsd/commit/211ac1132b2f1e2736b1c680936711e114556e90)
- Don't log an IOError on shutdown [`d41064b`](https://github.com/craigerl/aprsd/commit/d41064ba05faf6167c0d26db2ab525d0bb410bf8)
- Honor quiet setting for log.setup_logging [`1ae4375`](https://github.com/craigerl/aprsd/commit/1ae437581f753d903c20a6ef54868438eb034800)
- Make sure packet has addressee field [`034f11b`](https://github.com/craigerl/aprsd/commit/034f11b4f9f3392e003cfbd0e5f8b9fb5f594089)
- Fix tox failures [`74887af`](https://github.com/craigerl/aprsd/commit/74887af507755cd7ee27f13129b177f4d58ca8e0)
- log the exception when tx fails. [`fa5d0c6`](https://github.com/craigerl/aprsd/commit/fa5d0c643ae85fc9ad3f615f9d0afc590f422283)
- Updated requirements for 4.2.0 [`2c476d8`](https://github.com/craigerl/aprsd/commit/2c476d8a04df8cebbaa50780688e58d8b9df2bc9)
- Updated Changelog for 4.2.0 [`b9fea98`](https://github.com/craigerl/aprsd/commit/b9fea982f977e9cf60c4695ca1892adaeee64298)

#### [4.1.2](https://github.com/craigerl/aprsd/compare/4.1.1...4.1.2)

> 6 March 2025

- Allow passing in a custom handler to setup_logging [`d262589`](https://github.com/craigerl/aprsd/commit/d2625893134f498748859da3b1684b04d456f790)
- Changelog for 4.1.2 [`6dba56f`](https://github.com/craigerl/aprsd/commit/6dba56f74d27e418ed2e124e7a3592c274b2da1e)

#### [4.1.1](https://github.com/craigerl/aprsd/compare/4.1.0...4.1.1)

> 5 March 2025

- Added new config to disable logging to console [`0fa5b07`](https://github.com/craigerl/aprsd/commit/0fa5b07d4bf4bc5d5aaad1de52b78058e472fe24)
- Added threads.service [`c1c89fd`](https://github.com/craigerl/aprsd/commit/c1c89fd2c2c69c5e6c5d29a736a7b89e3d45cfe2)
- Update requirements [`2b185ee`](https://github.com/craigerl/aprsd/commit/2b185ee1b84598c832d8a5d73753cb428854b932)
- Fixed some more ruff checks [`94ba915`](https://github.com/craigerl/aprsd/commit/94ba915ed44b11eaabc885e033669d67d8c341a5)
- 4.1.1 release [`7ed8028`](https://github.com/craigerl/aprsd/commit/7ed80283071c1ccebf1e3373727608edd0a56ee9)

#### [4.1.0](https://github.com/craigerl/aprsd/compare/4.0.2...4.1.0)

> 20 February 2025

- Added new PacketFilter mechanism [`#184`](https://github.com/craigerl/aprsd/pull/184)
- Update to build from pypi [`3b57e75`](https://github.com/craigerl/aprsd/commit/3b57e7597d77303ffc03b082370283bb2fea2838)
- Updated APRSIS driver [`1606585`](https://github.com/craigerl/aprsd/commit/1606585d41f69133192199d139b53344bb320fa9)
- Updated packet_list to allow infinit max store [`19c12e7`](https://github.com/craigerl/aprsd/commit/19c12e70f30a6f1f7d223a2f0fd3bf1182579fa4)
- Update StatsStore to use existing lock [`227ddbf`](https://github.com/craigerl/aprsd/commit/227ddbf148be2e14d4b4f27e48a4b091a98f15df)
- Try and stop chardet logging! [`101904c`](https://github.com/craigerl/aprsd/commit/101904ca77d816ae9e70bc7d22e6d8516fc3c5ce)
- Fixed some pep8 failures. [`e9e7e6b`](https://github.com/craigerl/aprsd/commit/e9e7e6b59f9f93f3f09142e56407bc87603a44cb)
- updated gitignore [`fd517b3`](https://github.com/craigerl/aprsd/commit/fd517b32188fdf15835a74fbd515ce417e7ef1f5)
- Remove sleep in main RX thread [`6cd7e99`](https://github.com/craigerl/aprsd/commit/6cd7e997139e8f2687bee753d9e0d2b22b1c42a3)
- Changed Objectstore log to debug [`361663e`](https://github.com/craigerl/aprsd/commit/361663e7d2cf43bd2fd53da0d8c5205bb848dbc2)
- fix for None packet in rx thread [`d82a81a`](https://github.com/craigerl/aprsd/commit/d82a81a2c3c1a7f50177a0a6435a555daeb858aa)
- Fix runaway KISS driver on failed connnection [`b6da0eb`](https://github.com/craigerl/aprsd/commit/b6da0ebb0d2f4d7078dbbf91d8c03715412d89ea)
- CONF.logging.enable_color option added [`06bdb34`](https://github.com/craigerl/aprsd/commit/06bdb34642640d91ea96e3c6e8d8b5a4b8230611)
- Update Changelog for 4.1.0 release [`a3cda9f`](https://github.com/craigerl/aprsd/commit/a3cda9f37d4c9b955b523f46b2eb8cf412a84407)

#### [4.0.2](https://github.com/craigerl/aprsd/compare/4.0.1...4.0.2)

> 25 January 2025

- Fix for KISS/Fake client drivers [`edeba7f`](https://github.com/craigerl/aprsd/commit/edeba7f5141c3197a3ddff5fe45127894c861e07)
- Trap for failed parsing of packets on KISS [`9501a63`](https://github.com/craigerl/aprsd/commit/9501a63bd61a681daf9eb9e41704e31570b7b385)
- Pass branch in github release_build [`1f65bbe`](https://github.com/craigerl/aprsd/commit/1f65bbe13a33c1fffad650c87c949bbe844d27f6)
- Removed some verbose output from KISS [`c1319c3`](https://github.com/craigerl/aprsd/commit/c1319c3ab8822f24c0e3b2c74d151d4e13a0039a)
- Look in multiple places for fortune bin [`97ffffc`](https://github.com/craigerl/aprsd/commit/97ffffc10dd05bd785134877ddb94437cf9b7f97)
- Added uv.lock [`2f26eb8`](https://github.com/craigerl/aprsd/commit/2f26eb86f44625547f72f7c3612494b1bc44bc99)
- Fix the testing of fortune path [`3c4e200`](https://github.com/craigerl/aprsd/commit/3c4e200d700c24125479bb754b5f68bdf35b85a6)
- update the install from github in Dockerfile [`bea4815`](https://github.com/craigerl/aprsd/commit/bea481555bc1270ab371a22c69973d648e526d54)
- Prep for 4.0.2 [`000adef`](https://github.com/craigerl/aprsd/commit/000adef6d4f2792d33980d59d37f4b139e0c693c)

#### [4.0.1](https://github.com/craigerl/aprsd/compare/4.0.0...4.0.1)

> 24 January 2025

- Update pyproject for README.rst -&gt; md [`e080394`](https://github.com/craigerl/aprsd/commit/e08039431ebde92a162ab422c05391dc55d3d3fa)
- Updated Changelog [`24f5672`](https://github.com/craigerl/aprsd/commit/24f567224cf8ecdebd51f49804425565883acb94)

### [4.0.0](https://github.com/craigerl/aprsd/compare/3.5.0...4.0.0)

> 24 January 2025

- Migrate admin web out of aprsd. [`#183`](https://github.com/craigerl/aprsd/pull/183)
- Enable packet stats for listen command in Docker [`e5d8796`](https://github.com/craigerl/aprsd/commit/e5d8796cda1a007aa868c760b96b50b364351519)
- Added activity to README [`cdd297c`](https://github.com/craigerl/aprsd/commit/cdd297c5bbc8b93f4739f5850a3e5971ce8baeba)
- Added star history to readme [`02e2940`](https://github.com/craigerl/aprsd/commit/02e29405ce2f8310e4f87f68498dfd6575c2e43b)
- removed pytest from README [`1cba31f`](https://github.com/craigerl/aprsd/commit/1cba31f0ac9bd5ee532721a909fc752f023f3b06)
- Updated Docker for using alpine and uv [`24db814`](https://github.com/craigerl/aprsd/commit/24db814c82c9bb6634566d7428603bf7a9ae37d1)
- Update the admin and setup.sh for container [`044ea4c`](https://github.com/craigerl/aprsd/commit/044ea4cc9a0059101851d6e722e986ee236833e8)
- added healthcheck.sh [`1054999`](https://github.com/craigerl/aprsd/commit/10549995686b08e4c166f780efdec5bdae496cab)
- updated healthcheck.sh [`dabb48c`](https://github.com/craigerl/aprsd/commit/dabb48c6f64062c1fed8f83a4f0b8ffba0c206a5)
- try making image for webchat [`ba8acdc`](https://github.com/craigerl/aprsd/commit/ba8acdc5849fc7b2d8a1ee11af6f5e317cf30f45)
- Added APRSD logo [`0ed648f`](https://github.com/craigerl/aprsd/commit/0ed648f8f8a961dbbd9e22bcebadcde525ee41ae)
- Added plugin and extension links [`447451c`](https://github.com/craigerl/aprsd/commit/447451c6c97e1f2d3d0bf580db21ecd176690258)
- reduced logo size 50% [`cf4a29f`](https://github.com/craigerl/aprsd/commit/cf4a29f0cb3ed366b21ec3120a189614e0955180)
- Updated README.md TOC [`375a5e5`](https://github.com/craigerl/aprsd/commit/375a5e5b34718cadc6ee8a51484fc91441440a61)
- chore: update AUTHORS [skip ci] [`c556f51`](https://github.com/craigerl/aprsd/commit/c556f5126f725904822a75427475d46986f8e9f3)
- Updated requirements [`4a7a902`](https://github.com/craigerl/aprsd/commit/4a7a902a337759a352560d4d92dc314b1726412a)
- Updated ChangeLog for 4.0.0 [`934ebd2`](https://github.com/craigerl/aprsd/commit/934ebd236d044625b911dd8ca45293f6c5680a68)

#### [3.5.0](https://github.com/craigerl/aprsd/compare/3.4.4...3.5.0)

> 10 January 2025

- Migrate admin web out of aprsd. [`c48ff8d`](https://github.com/craigerl/aprsd/commit/c48ff8dfd4bd4ce2f95b36e71dce13da5446a658)
- Remove webchat as a built in command. [`8f8887f`](https://github.com/craigerl/aprsd/commit/8f8887f0e496d960b0e71275893b75408a40fdb2)
- Remove email plugin [`0880a35`](https://github.com/craigerl/aprsd/commit/0880a356e6df1a0924cbf6e815e68cba5f5c6cf1)
- Fixed make clean [`ae28dbb`](https://github.com/craigerl/aprsd/commit/ae28dbb0e6bc216bf78c0bd9d7804f57b39091d1)
- removed email reference [`fcd1629`](https://github.com/craigerl/aprsd/commit/fcd1629fdebb485fc763e19d73bfdafc10de6251)
- Removed more email references. [`f0c0260`](https://github.com/craigerl/aprsd/commit/f0c02606ebfc5170b80b55c73de191d27a8778a0)
- Removed LocationPlugin from aprsd core [`3bba8a1`](https://github.com/craigerl/aprsd/commit/3bba8a19da88b0912064cea786bc9f8203038946)
- Include haversine library [`bbdbb9a`](https://github.com/craigerl/aprsd/commit/bbdbb9aba189d536497ea3cd7d30911fe3d9d706)
- Update Makefile [`caa4bb8`](https://github.com/craigerl/aprsd/commit/caa4bb8bd01cbd2e02024d75e1c8af97acf6c657)
- Added new KeepAliveCollector [`30d1eb5`](https://github.com/craigerl/aprsd/commit/30d1eb57dd249c609f5b092d8084c40cadda7bd9)
- Changed to ruff [`72d068c`](https://github.com/craigerl/aprsd/commit/72d068c0b8944c8c9eed494fc23de8d7179ee09b)
- Changed README.rst -&gt; README.md [`b1a830d`](https://github.com/craigerl/aprsd/commit/b1a830d54e9dec473074b34f9566f161bdec0030)
- fixed list-plugins [`ec1adf4`](https://github.com/craigerl/aprsd/commit/ec1adf418203fc7d1a8fb175a075c73fa27d772b)
- Updated README.md [`fd74405`](https://github.com/craigerl/aprsd/commit/fd74405b5fb2ec3d0b432e95d715a8934d76dcd8)
- updated workflow [`df14eb8`](https://github.com/craigerl/aprsd/commit/df14eb8f288aa8cd8cab9b9263ca64093bb63c34)
- Some cleanup with list plugins [`5274c5d`](https://github.com/craigerl/aprsd/commit/5274c5dc563b40f87436378558ad843517be6939)
- Updated README.md [`275e335`](https://github.com/craigerl/aprsd/commit/275e33538db7f014eeb02deddd76bfbb63516871)
- removed BeautifulSoup usage [`a21432f`](https://github.com/craigerl/aprsd/commit/a21432fb249577489795e8a9f5d969b63c2af716)
- updated github workflows [`e3a7e7f`](https://github.com/craigerl/aprsd/commit/e3a7e7fb8a8448f7893fbe3f8cf7e876a5e2ff58)
- updated requirements-dev [`fbec716`](https://github.com/craigerl/aprsd/commit/fbec7168eb37621c0f3ca54274148704c857f506)
- updated requirements [`7f2c1d7`](https://github.com/craigerl/aprsd/commit/7f2c1d712417b55cd3535888d18d41c6a00e4d07)
- updated plugin example [`0073865`](https://github.com/craigerl/aprsd/commit/007386505ab539200b8eef438250bc73dac0079f)
- updated docs rst files [`3cd9bfa`](https://github.com/craigerl/aprsd/commit/3cd9bfa7bb79fb2ebaad7d921c7d9fd2128392f3)
- added authors.yml [`c8735c2`](https://github.com/craigerl/aprsd/commit/c8735c257a32b31974508c2ed9c1cdc8848b5150)
- updated action versions [`7702d68`](https://github.com/craigerl/aprsd/commit/7702d68cf722746952b94782ac4ed5cba935d53b)
- update to py 3.10 [`3ee422b`](https://github.com/craigerl/aprsd/commit/3ee422b5c9f79e9ee2d757abd1de9b9f2d0fc52e)
- Added .mailmap [`8d98546`](https://github.com/craigerl/aprsd/commit/8d9854605584fa35117af888fe219df610fb7cb4)
- updated tools in pre-commit [`e4f82d6`](https://github.com/craigerl/aprsd/commit/e4f82d6054d4d859023423bccdd5c402d7a83494)
- some cleanup [`e332d7c`](https://github.com/craigerl/aprsd/commit/e332d7c9d046066e2686ea0522ae06b86d2f162d)

#### [3.4.4](https://github.com/craigerl/aprsd/compare/3.4.3...3.4.4)

> 6 December 2024

- Update counter.py [`#182`](https://github.com/craigerl/aprsd/pull/182)
- Added an option to disable the loading of the help plugin. [`#177`](https://github.com/craigerl/aprsd/pull/177)
- Added unit test for client base [`#181`](https://github.com/craigerl/aprsd/pull/181)
- Walt listen test [`#180`](https://github.com/craigerl/aprsd/pull/180)
- Bump werkzeug from 3.0.4 to 3.0.6 [`#178`](https://github.com/craigerl/aprsd/pull/178)
- Added new aprsd admin command [`0271ccd`](https://github.com/craigerl/aprsd/commit/0271ccd14582cf042846e9c65c64fe501538bc5a)
- Added some changes to listen [`df0ca04`](https://github.com/craigerl/aprsd/commit/df0ca0448373b1ce5707b01b2acaca9a50340715)
- Added some changes to listen [`d863474`](https://github.com/craigerl/aprsd/commit/d863474c133d7650f9c79d1a88f0a4a04a2b056f)
- Fix a small issue with packet sending failures [`3fd6069`](https://github.com/craigerl/aprsd/commit/3fd606946db8df368da0cd0e9f6e9a0c18d36525)
- Fix a small issue with packet sending failures [`f265e8f`](https://github.com/craigerl/aprsd/commit/f265e8f3541701eeaaba820ed93eb23902b40f05)
- Added new dump-stats command [`add18f1`](https://github.com/craigerl/aprsd/commit/add18f1a6f08a8eda6729c82634c0e68f73b48f8)
- Update PacketList [`7e8d7cd`](https://github.com/craigerl/aprsd/commit/7e8d7cdf8671fbc559400ef2041d5bbe6fdb8c6d)
- Updated APRSClient [`d808e21`](https://github.com/craigerl/aprsd/commit/d808e217a2bdd1cfffa7d69344a0b9a664bf2f6f)
- Calculate delta once and reuse it [`0be87d8`](https://github.com/craigerl/aprsd/commit/0be87d8b4f1fa258a5cd32188eccd4aa22b7446e)
- Added unit test for ClientFactory [`ab2de86`](https://github.com/craigerl/aprsd/commit/ab2de86726106582c06230ed4e513d78f0bafb03)
- Added unit test for APRSISClient [`224686c`](https://github.com/craigerl/aprsd/commit/224686cac5e4cefd559fb9149ccac18069914423)
- optimized Packet.get() [`579d0c9`](https://github.com/craigerl/aprsd/commit/579d0c95a085a7cb796ae9476da8c48fca201601)
- fixed name for dump-stats output [`563b068`](https://github.com/craigerl/aprsd/commit/563b06876c02eb9193b0c7559765e47d932a5978)
- updated README.rst [`229155d`](https://github.com/craigerl/aprsd/commit/229155d0ee63aa80c8bc4ffbdbb5a3eb8a4a6e7c)
- Only load EmailStats if email is enabled [`2fdc7b1`](https://github.com/craigerl/aprsd/commit/2fdc7b111d31006b568e820ee7aaa8290f5944b9)
- Added rich output for dump-stats [`d0018a8`](https://github.com/craigerl/aprsd/commit/d0018a8cd39d8d9b74b83655083b33be2e2b70a7)
- Allow disabling sending all AckPackets [`6e62ac1`](https://github.com/craigerl/aprsd/commit/6e62ac14b8cca193faf6c73464eb47e54efd7abe)
- Allow loading a specific list of plugins [`9f3c8f8`](https://github.com/craigerl/aprsd/commit/9f3c8f889f1866a7747bc82c1b3c2c39687dcb1c)
- Catch and log exceptions in consumer [`adcf94d`](https://github.com/craigerl/aprsd/commit/adcf94d8c755af7020ac93d7fb3731c637aefc3e)
- Fixed the protocol for Stats Collector [`bd0bcc1`](https://github.com/craigerl/aprsd/commit/bd0bcc19244a8a5bf0bf851533eb303e7845c8ca)
- Added new features to listen command. [`7d1e739`](https://github.com/craigerl/aprsd/commit/7d1e73950288c721bb5a07224bc4b5bb52bb9164)
- Don't break logging aprslib failures [`98a6210`](https://github.com/craigerl/aprsd/commit/98a62102b742960ff7202b0614fc2801dd60ad12)
- Change healthcheck email thread check timeout [`03ce5a3`](https://github.com/craigerl/aprsd/commit/03ce5a3d506a1304b93fd11cd2a43661f874d144)
- Addressing comments in PR. [`2471492`](https://github.com/craigerl/aprsd/commit/24714923be4c55fdac434a868707e917b6ed21b1)
- Update utils.trace [`c3df974`](https://github.com/craigerl/aprsd/commit/c3df97400458d1f3c72a03d0f9ae72addad63d29)
- Update requirements [`257fa0d`](https://github.com/craigerl/aprsd/commit/257fa0db7d9f9cef8b3235cacf954adb862a2bfb)
- Fixes for webchat UI. [`f0b9956`](https://github.com/craigerl/aprsd/commit/f0b99564d15fedb055c9e2cb1ea9146814024478)
- Sending message to new callsign displays in an active tab [`d42638e`](https://github.com/craigerl/aprsd/commit/d42638efe3ebb22d777573d934ed4dd8216ac705)
- Update WebChat [`9f7d169`](https://github.com/craigerl/aprsd/commit/9f7d169c18c6ac593d49efd9dde42bc40b28bc70)
- Update Client to report login status [`06c1fb9`](https://github.com/craigerl/aprsd/commit/06c1fb985efea1f6697bedbe340557cde7225bf4)
- Updated server client checks [`1c50c39`](https://github.com/craigerl/aprsd/commit/1c50c39e6104d6e9462fd9ed5e2deed7f9e6b1fe)
- Fixed broken unit tests [`c82e9ba`](https://github.com/craigerl/aprsd/commit/c82e9ba5977424e6f03ddbbfcbd816634ef667ce)
- Fixed pep8 failure on counter.py [`1eaa4b8`](https://github.com/craigerl/aprsd/commit/1eaa4b8e10f12ba8fe17b0cee44d6dee4a5689aa)
- No reason to create the client in init [`e99c906`](https://github.com/craigerl/aprsd/commit/e99c906fed564fecae0f389fa21f25e624db9088)
- Added APRSDThread pause/unpause capability [`95094b8`](https://github.com/craigerl/aprsd/commit/95094b874cc99201497cb7920a0c73c7c332e65a)
- Added client_exists() for client factory [`505565d`](https://github.com/craigerl/aprsd/commit/505565d3a6befaba3b57c87c22333b0e965ab347)
- Added pause_all, unpause_all in threadlist [`76d275d`](https://github.com/craigerl/aprsd/commit/76d275db9c8968ce5bd9b52e52fa39c9002aaa86)
- Make sure to sleep(1) in the main RX thread [`98a96cb`](https://github.com/craigerl/aprsd/commit/98a96cbe34ee50bbd242542c5891768608e586b4)
- Put safety checks around the timeago for keepalive [`be6357a`](https://github.com/craigerl/aprsd/commit/be6357a552e8c05b5fd5a94d4fb6318abaf78cfc)
- Properly report TCPKISS connection [`3e488db`](https://github.com/craigerl/aprsd/commit/3e488db3d7e864c6b4411ce67d5018648faeac2d)
- Fix call in kiss consumer [`aba5bb0`](https://github.com/craigerl/aprsd/commit/aba5bb03a2dd973e545a5f1ec0515c8f500ddadb)
- Update RX Packet dupe checking [`8f3da96`](https://github.com/craigerl/aprsd/commit/8f3da961e7802340f9a77d437631c6bbe94e0102)
- Webchat: Don't automatically fetch location KISS [`e8ae380`](https://github.com/craigerl/aprsd/commit/e8ae3807db87880ec65923854b07e5cc225a72c3)
- Fixed issue not processing null msg ids [`a17b80d`](https://github.com/craigerl/aprsd/commit/a17b80ddd871bfd16c59b29a9a7f7ef34f921f6c)
- Updated keepalive thread to report client [`8529f1f`](https://github.com/craigerl/aprsd/commit/8529f1f8d1a4a86a66aecfda6e6075c394bbff56)
- Fixed webchat popovers not working. [`3a8b8f2`](https://github.com/craigerl/aprsd/commit/3a8b8f26dda9d7b4099061b2a24a393fb639124c)
- Fixed issue with packet object and prepare() [`f66b962`](https://github.com/craigerl/aprsd/commit/f66b96288f7c594bc9775f28ffc93e3bbd3bb46f)
- Fixed webchat packets without msgNo [`d4ae726`](https://github.com/craigerl/aprsd/commit/d4ae72608b9d7c2da1b89c20bf58fcae796f552d)
- Added __contains__ to threadlist [`d94a3e7`](https://github.com/craigerl/aprsd/commit/d94a3e7b908fd313a8af0c71a4928114ea83cf35)
- Update healthcheck [`7fb0c74`](https://github.com/craigerl/aprsd/commit/7fb0c7454ea9fe4cd5886989e9890ef70a789fdf)
- Remove dataclasses from requirements [`db73a54`](https://github.com/craigerl/aprsd/commit/db73a540baf0c8d658d1f9efa08ba9f085ce01d4)
- Update requirements.dev [`0d8a1ac`](https://github.com/craigerl/aprsd/commit/0d8a1ac33441cf85270423b80264110fe9286754)
- Added new acked property to the core Packet [`3c058f3`](https://github.com/craigerl/aprsd/commit/3c058f3e7b89227c613234f8ae91687fbdf19ae1)
- Fixed some pep8 failures [`63bcd41`](https://github.com/craigerl/aprsd/commit/63bcd4139bb40718152b66002dfa45f236c54e11)
- Update Changelog for 3.4.4 [`bc709b3`](https://github.com/craigerl/aprsd/commit/bc709b377c423412e9093e8ecc78e561031023b8)

#### [3.4.3](https://github.com/craigerl/aprsd/compare/v3.4.3...3.4.3)

> 18 November 2024

#### [v3.4.3](https://github.com/craigerl/aprsd/compare/v3.4.2...v3.4.3)

> 29 October 2024

- Change virtual env name to .venv [`882e907`](https://github.com/craigerl/aprsd/commit/882e90767dd967a4d1018c834a074b33ca9dcb06)
- Fixed issue in send_message command [`ecf30d3`](https://github.com/craigerl/aprsd/commit/ecf30d33978e26150bf41ff60b97ff00ab5d5f96)
- Update Changelog for v3.4.3 [`5780626`](https://github.com/craigerl/aprsd/commit/578062648bb1c188e578c88000852e477a429364)

#### [v3.4.2](https://github.com/craigerl/aprsd/compare/v3.4.1...v3.4.2)

> 18 October 2024

- Removed remnants of QueryPlugin [`758007e`](https://github.com/craigerl/aprsd/commit/758007ea3ff809944f9ed4685c74e7eaff0f813b)
- Removed dumping of the stats on exit [`5314856`](https://github.com/craigerl/aprsd/commit/5314856101fbf9f306b112121706e7ac9513a0e4)
- Added color logging of thread names at keepalive [`5e9f92d`](https://github.com/craigerl/aprsd/commit/5e9f92dfa68a9a8841c4a10a1e8a68b3c3d9401d)
- Added packet log distance and new arrows [`3e9bf24`](https://github.com/craigerl/aprsd/commit/3e9bf2422acafe33e4bc3a3eb8d812cd81722ae2)
- Log closing client connection. [`9951b12`](https://github.com/craigerl/aprsd/commit/9951b12e2d0097975d7f482dbe818021f772fce1)
- Sort changelog commits by date [`a65262d`](https://github.com/craigerl/aprsd/commit/a65262d2ff68b5744e402d305656b00bb9950c90)
- Add final stages in Dockerfile [`8cdbf18`](https://github.com/craigerl/aprsd/commit/8cdbf18befd709a88100934cce953572b3a5f473)
- Collector cleanup [`765e02f`](https://github.com/craigerl/aprsd/commit/765e02f5b3237796936cb0378abd560ced906283)
- cleaned up some requirements [`c12c42b`](https://github.com/craigerl/aprsd/commit/c12c42b87605b97fa836a8b40713168602c89d50)
- Cleanup test failures [`14c0a69`](https://github.com/craigerl/aprsd/commit/14c0a699cb70be899d8dfdc11aa15d64bc49155c)

#### [v3.4.1](https://github.com/craigerl/aprsd/compare/v3.4.0...v3.4.1)

> 23 September 2024

- Bump zipp from 3.18.2 to 3.19.1 [`#170`](https://github.com/craigerl/aprsd/pull/170)
- Bump certifi from 2024.2.2 to 2024.7.4 [`#169`](https://github.com/craigerl/aprsd/pull/169)
- Bump urllib3 from 2.2.1 to 2.2.2 [`#168`](https://github.com/craigerl/aprsd/pull/168)
- Refactor client and drivers [`#164`](https://github.com/craigerl/aprsd/pull/164)
- Refactor Dockerfile [`#167`](https://github.com/craigerl/aprsd/pull/167)
- Bump requests from 2.31.0 to 2.32.0 [`#166`](https://github.com/craigerl/aprsd/pull/166)
- Bump jinja2 from 3.1.3 to 3.1.4 [`#163`](https://github.com/craigerl/aprsd/pull/163)
- Put an upper bound on the QueueHandler queue [`93a9cce`](https://github.com/craigerl/aprsd/commit/93a9cce0c0d0d1d1195e591cbd7ab9583a33c0c9)
- Eliminate need for PBR [`f159741`](https://github.com/craigerl/aprsd/commit/f15974131c4b55f1c4c1085f4d78d6e179da7157)
- Use newer python -m build to build aprsd wheel [`2abf8bc`](https://github.com/craigerl/aprsd/commit/2abf8bc750542b07bbbbc96efa4613aeffc5db8a)
- updated requirements [`fa2d2d9`](https://github.com/craigerl/aprsd/commit/fa2d2d965d403c028fd81a15665fe1c42c950692)
- --- [`18fb2a9`](https://github.com/craigerl/aprsd/commit/18fb2a9e2b650c694651b3eef939ecd4ed24b300)
- removed [`f7a9f7a`](https://github.com/craigerl/aprsd/commit/f7a9f7aaab5185c6aba8b3ff5ccd9b8ad549b225)
- Updated README [`8f1733e`](https://github.com/craigerl/aprsd/commit/8f1733e4939ef91dbef30e3271f2e803359f0214)
- Hack Dockerfile for admin fixes? [`f07ef71`](https://github.com/craigerl/aprsd/commit/f07ef71ce0849714b4d2a26b369720d6bf8ba851)
- update to pyproject [`4b26e2b`](https://github.com/craigerl/aprsd/commit/4b26e2b7f7e41d3a3d3850118a3c25a58af68be1)
- Fixed reference to ThirdPartyPacket [`ffa28fa`](https://github.com/craigerl/aprsd/commit/ffa28fa28adc60375ec0ca03f730fc321f09bfc6)
- Use auto-changelog to generate changelog [`673b34c`](https://github.com/craigerl/aprsd/commit/673b34c78ba38ce3ad22e2ba5ceb399af1f6c0f4)
- Renamed Changelog [`5ebbb52`](https://github.com/craigerl/aprsd/commit/5ebbb52a2c2a00ca9ae34a252699559f85b3e8c6)
- Updated Makefile to build Changelog [`3741555`](https://github.com/craigerl/aprsd/commit/37415557b5a38151a5de142c264a921f8d81ae5a)
- Update base docs [`92cb92f`](https://github.com/craigerl/aprsd/commit/92cb92f89cfb0fc5ea71b4e6344da6b0e3b8f7fe)
- added m2r package to dev requirements [`49e8a62`](https://github.com/craigerl/aprsd/commit/49e8a622a75fcac50f6e542ecdc611f29833d80b)
- Updated requirements [`9d3f45a`](https://github.com/craigerl/aprsd/commit/9d3f45ac3079a277cb7bd66544a753bc14915a02)
- Fixed pep8 with packet_list [`b172c6d`](https://github.com/craigerl/aprsd/commit/b172c6dbdeb460d480a0091a14002251ac6b0324)
- Rebuild ChangeLog [`af3d741`](https://github.com/craigerl/aprsd/commit/af3d74183315d3a616e14279672b884c0c1ec632)
- No limit on change log commits [`e3ab6e7`](https://github.com/craigerl/aprsd/commit/e3ab6e7f59fbab44a5c7266f63d3c1c662f98c6f)
- retagged v3.4.1 in prep for release [`a6f84e4`](https://github.com/craigerl/aprsd/commit/a6f84e42bc4f7ab02db784f8e5ca6e1560608363)
- Build &gt; python 3.10 [`e5662b9`](https://github.com/craigerl/aprsd/commit/e5662b95f8e498af3cfad60b64ae61d9e49726eb)
- Update ChangeLog [`9b843ee`](https://github.com/craigerl/aprsd/commit/9b843eead9774ac5c456dc7834d921684d05fb6f)
- Removed invalid pyproject classifier [`a5dc322`](https://github.com/craigerl/aprsd/commit/a5dc322066f7f9e39cf911faee845861b8d34c47)
- Update Changelog [`a74a66d`](https://github.com/craigerl/aprsd/commit/a74a66d9c359d66566c3351699511dab75f8b61f)

#### [v3.4.0](https://github.com/craigerl/aprsd/compare/v3.3.4...v3.4.0)

> 29 April 2024

- Reworked the stats making the rpc server obsolete. [`#159`](https://github.com/craigerl/aprsd/pull/159)
- Update client.py to add consumer in the API. [`#158`](https://github.com/craigerl/aprsd/pull/158)
- Packet updates [`#154`](https://github.com/craigerl/aprsd/pull/154)
- Bump black from 24.2.0 to 24.3.0 [`#155`](https://github.com/craigerl/aprsd/pull/155)
- Fixed access to conf.log in logging_setup [`c1acdc2`](https://github.com/craigerl/aprsd/commit/c1acdc2510c7b3999a9ea4c2bc878bc931c03d4e)
- Fixed call to setup_logging in uwsgi [`8797dfd`](https://github.com/craigerl/aprsd/commit/8797dfd072c596c933e4399aa369c5175327165c)
- replaced access to conf from uwsgi [`82b3761`](https://github.com/craigerl/aprsd/commit/82b3761628fc7f012f0ec851cc41ba564a7ca1c8)
- Update tox for mypy runs [`d0f53c5`](https://github.com/craigerl/aprsd/commit/d0f53c563f4186510bede7b81456c3cd6059069c)
- Start to add types [`12dab28`](https://github.com/craigerl/aprsd/commit/12dab284cb6aef896a8f885f5574ed5a8ac9a0b4)
- No need to synchronize on stats [`29b4b04`](https://github.com/craigerl/aprsd/commit/29b4b04eee071b0e65298759ad685275280d1256)
- Moved Threads list for mypy [`d80277c`](https://github.com/craigerl/aprsd/commit/d80277c9d8f882297ee35ffa0d1174150c290b1c)
- Added type setting on pluging.py for mypy [`9c77ca2`](https://github.com/craigerl/aprsd/commit/9c77ca26be8af072aa80236338450a1de26b6e09)
- small refactor of stats usage in version plugin [`90f212e`](https://github.com/craigerl/aprsd/commit/90f212e6dc15835d162d28d2deb579149202d525)
- removed print [`6f1d6b4`](https://github.com/craigerl/aprsd/commit/6f1d6b412209aea6bffad37083e4921dff9594f5)
- Refactored packets [`1477e61`](https://github.com/craigerl/aprsd/commit/1477e61b0fbcea4f7eda8faba7901517a89e1b0f)
- Fixed some tox errors related to mypy [`00e185b`](https://github.com/craigerl/aprsd/commit/00e185b4e7ca5abed9f56282924e183b1201ea33)
- updated dev-requirements [`eada5e9`](https://github.com/craigerl/aprsd/commit/eada5e9ce25ea388913af699b3042b13156b91f3)
- Fix for micE packet decoding with mbits [`386d2be`](https://github.com/craigerl/aprsd/commit/386d2bea6260e6b0ea63aec0b26151e2a9602984)
- Eliminated need for from_aprslib_dict [`e386e91`](https://github.com/craigerl/aprsd/commit/e386e91f6e58e63a405eb2365809501c52a05abd)
- Don't call stats so often in webchat [`9858955`](https://github.com/craigerl/aprsd/commit/9858955d34b88003285c4c588eacb32ca3a4ce67)
- Added missing packet types in listen command [`f450238`](https://github.com/craigerl/aprsd/commit/f450238348e6869f5ec04d247d6825f719582a5f)
- Fixed some logging in webchat [`127d3b3`](https://github.com/craigerl/aprsd/commit/127d3b3f267b9f547a1c593ecbdbaf510d633fd5)
- Completely redo logging of packets!! [`1e6c483`](https://github.com/craigerl/aprsd/commit/1e6c483002be894c8862dd218b7ab7a52b65d2ef)
- Fix some pep8 issues [`b461231`](https://github.com/craigerl/aprsd/commit/b461231c008127ede1e4fcbc24067bfd283bef4c)
- Added new webchat config option for logging [`9e26df2`](https://github.com/craigerl/aprsd/commit/9e26df26d6da1298cc3dfaead7579cb19854448c)
- Some packet cleanup [`da7b712`](https://github.com/craigerl/aprsd/commit/da7b7124d7982e8d24a8e7b22bd8276f679dffe4)
- Added new config option log_packet_format [`c581dc5`](https://github.com/craigerl/aprsd/commit/c581dc5020b140955e005cea41eb094f85c1d250)
- Show comment in multiline packet output [`f4356e4`](https://github.com/craigerl/aprsd/commit/f4356e4a2075c2d2d5342024848ef739840f5309)
- More packet cleanup and tests [`f53df24`](https://github.com/craigerl/aprsd/commit/f53df2498890c252fdc06e1973e060f1e7d1957a)
- added packet counter random int [`873fc06`](https://github.com/craigerl/aprsd/commit/873fc066080cb588658e56574100dd5200e1edbc)
- Fix for filtering curse words [`f400c60`](https://github.com/craigerl/aprsd/commit/f400c6004e74b71a482429fc56d7595796fb5748)
- Change debug log color [`c062359`](https://github.com/craigerl/aprsd/commit/c0623596cd2253e4f9bc6e0d20dd524bde2bc948)
- Put packet.json back in [`0321cb6`](https://github.com/craigerl/aprsd/commit/0321cb6cf10e7194eddd8c44c3ddce254de6b504)
- update requirements [`8f588e6`](https://github.com/craigerl/aprsd/commit/8f588e653dc59511ce42c683fa967c8691e0d523)
- Fix for sample-config warning [`428edac`](https://github.com/craigerl/aprsd/commit/428edaced96165bf559debcb3e944d66f1f54e8b)
- Fixed pep8 errors and missing files [`a270c75`](https://github.com/craigerl/aprsd/commit/a270c75263aaf16bd066eded2454d71f28945a4c)
- Got unit tests working again [`f92b2ee`](https://github.com/craigerl/aprsd/commit/f92b2ee3646fe2f2c2ec5decfb98ff391faf092f)
- Fixed access to log_monitor [`01cd0a0`](https://github.com/craigerl/aprsd/commit/01cd0a03270cd6d85187190da80aa2053ee7ea6f)
- Fixed issues with watch list at startup [`e2e5853`](https://github.com/craigerl/aprsd/commit/e2e58530b26bb603875d311dea73428c434f1e24)
- Allow stats collector to serialize upon creation [`71d72ad`](https://github.com/craigerl/aprsd/commit/71d72adf065f1fb96d4e198612a98ae4322a3289)
- Lock around client reset [`50e491b`](https://github.com/craigerl/aprsd/commit/50e491bab43ca4c6fa11165c3348f97cc482c17e)
- Remove the logging of the conf password if not set [`a8d56a9`](https://github.com/craigerl/aprsd/commit/a8d56a99670097653c78c642761f8adcc941a7c1)
- Removed RPC Server and client. [`333feee`](https://github.com/craigerl/aprsd/commit/333feee80501198df2eeffa2f40bcf10df7ccb0f)
- Admin UI working again [`0ca9072`](https://github.com/craigerl/aprsd/commit/0ca9072c97978fb298fc94ef974726852dfb9eb5)
- Delete more stats from webchat [`fcc02f2`](https://github.com/craigerl/aprsd/commit/fcc02f29af1f649f45c16a0dbd08a51cddf94486)
- Remove rpyc as a requirement [`7114269`](https://github.com/craigerl/aprsd/commit/7114269ceecc088db00a7a703c69b74a2404c295)
- Removed json-viewer [`bc3bdc4`](https://github.com/craigerl/aprsd/commit/bc3bdc48d2b647a5d18ecc26c769b2bec0b406cf)
- Updated prism to 1.29 [`db2fbce`](https://github.com/craigerl/aprsd/commit/db2fbce079bfdd3a9db240f85dfac0cd7a344fc8)
- changed admin web_ip to StrOpt [`6845d26`](https://github.com/craigerl/aprsd/commit/6845d266f29b50f36f32002cfa8b73634c30a5b4)
- LOG failed requests post to admin ui [`da882b4`](https://github.com/craigerl/aprsd/commit/da882b4f9b337b11bd48b74bf21b4a25693a8ddc)
- Ensure latest pip is in docker image [`a839dbd`](https://github.com/craigerl/aprsd/commit/a839dbd3c54fcd836d091ab0b8056de5f6025ebd)
- Ensure StatsStore has empty data [`80705cb`](https://github.com/craigerl/aprsd/commit/80705cb341c532bfeb9010ea0e9d93aaa66485c0)
- Admin interface catch empty stats [`2c5bc6c`](https://github.com/craigerl/aprsd/commit/2c5bc6c1f70fdf7bfd166b42f0d6554f4fcfcf28)
- Fix some issues with listen command [`8728926`](https://github.com/craigerl/aprsd/commit/8728926bf4163dc7919d7e42772fe7da93f4a89b)
- Fixed scrolling problem with new webchat sent msg [`2e9cf3c`](https://github.com/craigerl/aprsd/commit/2e9cf3ce8813c7ba7eec82f58561275fbaaddc39)
- Added human_info property to MessagePackets [`8f6f800`](https://github.com/craigerl/aprsd/commit/8f6f8007f4a9634b6163a66be135650876fccf0b)
- Get rid of some useless warning logs [`b388989`](https://github.com/craigerl/aprsd/commit/b3889896b9cc229dadd2baabeb1d3fdb0df8e470)
- Update webchat, include GATE route along with WIDE, ARISS, etc [`aa6e732`](https://github.com/craigerl/aprsd/commit/aa6e7329358247b504c49c0767cd4226638dc8b6)
- add GATE route to webchat along with WIDE1, etc [`886ad9b`](https://github.com/craigerl/aprsd/commit/886ad9be0976dbb6af135b8eaf62a8206fef216d)
- Fix time plugin [`94f36e0`](https://github.com/craigerl/aprsd/commit/94f36e0aadcd6c85f3dce0f9b58f4dc35fb3b76c)
- Fix issue not tracking RX Ack packets for stats [`3bef131`](https://github.com/craigerl/aprsd/commit/3bef1314f87d11910d94a2be0b28ebc7f4939615)
- Another fix for ACK packets [`f34120c`](https://github.com/craigerl/aprsd/commit/f34120c2df11b9facc2c5b8378f08fe000f1c7e3)
- Fixed a problem with the webchat tab notification [`5fa4eaf`](https://github.com/craigerl/aprsd/commit/5fa4eaf909b4ef5343d8b1a2284a725cbb6798d2)
- Fixed PacketList maxlen [`5ff62c9`](https://github.com/craigerl/aprsd/commit/5ff62c9bdfc67a0ffac72aa8ff90cf774800b6eb)
- Lock on stats for PacketList [`f59b65d`](https://github.com/craigerl/aprsd/commit/f59b65d13c77f98209972c839292e4300df7e889)
- syncronize the add for StatsStore [`026dc6e`](https://github.com/craigerl/aprsd/commit/026dc6e3761019308dd609a8d0e610c13425bfca)
- Limit packets to 50 in PacketList [`f682890`](https://github.com/craigerl/aprsd/commit/f682890ef02fc5f4754c303b32fa04f1f656d3c9)
- Remove packet from tracker after max attempts [`4c2a40b`](https://github.com/craigerl/aprsd/commit/4c2a40b7a7acc1a3f75a8086dd82964285890012)
- Added new default_ack_send_count config option [`40c028c`](https://github.com/craigerl/aprsd/commit/40c028c84411680df80a4d8782342e02aa865ff5)
- Fixed issue with APRSDThreadList stats() [`66e4850`](https://github.com/craigerl/aprsd/commit/66e48503537cbe17c9e24794963fc90d4235e4b3)
- Added threads table in the admin web ui [`c6079f8`](https://github.com/craigerl/aprsd/commit/c6079f897d73a0c6c27940f5d16f9ff2f5927e58)
- ensure thread count is updated [`91ba6d1`](https://github.com/craigerl/aprsd/commit/91ba6d10ceef699c811e0e1caa408b62394ed6f8)
- set packetlist max back to 100 [`3bd7add`](https://github.com/craigerl/aprsd/commit/3bd7adda447440867e85c1a6d0357e736948d934)
- Added threads chart to admin ui graphs [`f2d39e5`](https://github.com/craigerl/aprsd/commit/f2d39e5fd25489e3be46e9a31f373e533d70f6f1)
- Update requirements [`1a7694e`](https://github.com/craigerl/aprsd/commit/1a7694e7e2b16e58716fd4ad43fc9ffe07793337)
- Added new config optons for PacketList [`8392d6b`](https://github.com/craigerl/aprsd/commit/8392d6b8efec4aeb3c87edf381c672440ee2cf07)
- ismall update [`5b2a59f`](https://github.com/craigerl/aprsd/commit/5b2a59fae39eae4f3990be2d3d1a773da6d0e72c)
- force uwsgi to 2.0.24 [`c2f8af0`](https://github.com/craigerl/aprsd/commit/c2f8af06bc4687aa6a24e0d67e4f5f852b720bcd)
- added packet_count in packet_list stats [`7c93534`](https://github.com/craigerl/aprsd/commit/7c935345e50678265be4345984a8749cf12259b1)
- Fix access to PacketList._maxlen [`1c9f25a`](https://github.com/craigerl/aprsd/commit/1c9f25a3b3043352909504e62fe70f13ea439107)
- removed Packet.last_send_attempt and just use send_count [`758ea43`](https://github.com/craigerl/aprsd/commit/758ea432ed75e2e211f38b3bd74eae90708af68f)
- another fix for tx send [`3e87163`](https://github.com/craigerl/aprsd/commit/3e8716365ecd2553e6ad3d1d057947a032fdb0bc)
- Added PacketList.set_maxlen() [`4542c0a`](https://github.com/craigerl/aprsd/commit/4542c0a643618940ea15468619cec7737c50d309)
- Changed Stats Collector registration [`dc4879a`](https://github.com/craigerl/aprsd/commit/dc4879a367dd43720d21a2b8cbe65a0568ae0a6e)
- Added support for RX replyacks [`8d86764`](https://github.com/craigerl/aprsd/commit/8d86764c234cbd5f9d39d3100d5acd1b9442c49a)
- Fixed Keepalive access to email stats [`cb0cfee`](https://github.com/craigerl/aprsd/commit/cb0cfeea0bedba8512b9da0629d0e4394c08e193)
- Added new PacketCollector [`a656d93`](https://github.com/craigerl/aprsd/commit/a656d9326333c79482d0797f676a6e865d49541c)
- Fixed issue with PacketList being empty [`7541f13`](https://github.com/craigerl/aprsd/commit/7541f131745203e3d590027bc206107210e0d99e)
- Remove error logs from watch list [`27359d6`](https://github.com/craigerl/aprsd/commit/27359d61aade368cea49dcf255dd7a60968bfd9e)
- Added try except blocks in collectors [`88d2624`](https://github.com/craigerl/aprsd/commit/88d26241f5f3685e011b710bcc40bb2e609a32bb)
- Webchat Send Beacon uses Path selected in UI [`4c7e27c`](https://github.com/craigerl/aprsd/commit/4c7e27c88bbac8e8b471685ac07cc85e802816b2)
- Added PacketTrack to packet collector [`717db60`](https://github.com/craigerl/aprsd/commit/717db6083eb0fbd82c8cbff0d6cbd0cff9893136)
- Call packet collecter after prepare during tx. [`bef3205`](https://github.com/craigerl/aprsd/commit/bef32059f4e5443cec80dbcf4d63fe7b3c89afe8)
- Added default_packet_send_count config [`813bc7e`](https://github.com/craigerl/aprsd/commit/813bc7ea29f3a73133f467c86faf884c2c4169d4)
- Fix APRSDStats start_time [`29d97d9`](https://github.com/craigerl/aprsd/commit/29d97d9f0cdf33ffe454ff4722b531afc5dc6145)
- Added config for enable_seen_list [`c43652d`](https://github.com/craigerl/aprsd/commit/c43652dbea3c55243b1457ce3abba235d50fcea1)
- Added fox for entry_points with old python [`09b9708`](https://github.com/craigerl/aprsd/commit/09b97086bc6e6b789c69bb9446cf370a38f437fa)
- Update Dockerfiles [`f02db20`](https://github.com/craigerl/aprsd/commit/f02db20c3eecacbed79935d28eba3dbd0b6816a2)
- Removed the requirement on click-completion [`992485e`](https://github.com/craigerl/aprsd/commit/992485e9c7d86fca71fb9bee4dfb1434b04c403d)
- Fixed PacketTrack with UnknownPacket [`2b2bf6c`](https://github.com/craigerl/aprsd/commit/2b2bf6c92dc8d8c3cb921768088ecb94753adf87)
- Make all the Objectstore children use the same lock [`c206f52`](https://github.com/craigerl/aprsd/commit/c206f52a763a665c4b22aaaa4bf0234d0d998da7)
- Added config enable_packet_logging [`63f3de4`](https://github.com/craigerl/aprsd/commit/63f3de47b7f69956527ca07bb3972a2c9fc103b3)
- Fixed unit tests failing with WatchList [`c4b17ee`](https://github.com/craigerl/aprsd/commit/c4b17eee9d9f75d3ed31e025c68ba7b4290f20ca)
- Fixed docker setup.sh comparison [`a5680a7`](https://github.com/craigerl/aprsd/commit/a5680a7cbb121d59f776b986d58e82adbfa33dab)
- Change setup.h [`fc9ab4a`](https://github.com/craigerl/aprsd/commit/fc9ab4aa74d077b9875ba51d5244d09b5e6fc464)
- Updated Changelog for 3.4.0 [`cb2a344`](https://github.com/craigerl/aprsd/commit/cb2a3441b4dac0f4a6e6c58805f5deb0e3fcb7c6)

#### [v3.3.4](https://github.com/craigerl/aprsd/compare/v3.3.3...v3.3.4)

> 21 April 2024

- Fix for entry_points where python &lt; 3.10 [`fa9ff7d`](https://github.com/craigerl/aprsd/commit/fa9ff7d77fb5a83b860b8ceaca07e2dceba0597a)
- Fixed entry_points [`e9febbb`](https://github.com/craigerl/aprsd/commit/e9febbbc52a4850de9a7cafa6d06184e211f3652)

#### [v3.3.3](https://github.com/craigerl/aprsd/compare/v3.3.2...v3.3.3)

> 27 March 2024

- Fix for sample-config warning [`8e0de9c`](https://github.com/craigerl/aprsd/commit/8e0de9c5ac72a50206c1ec4025b6a82f98a6f578)

#### [v3.3.2](https://github.com/craigerl/aprsd/compare/v3.3.1...v3.3.2)

> 13 March 2024

- Removed print in utils [`f810c02`](https://github.com/craigerl/aprsd/commit/f810c02d5d75b8fad03ba5065b0950d3133de86b)
- Remove warning during sample-config [`d485f48`](https://github.com/craigerl/aprsd/commit/d485f484ecb4e6d026e9d5a36adbf1b8c77b6044)
- Changelog for 3.3.2 [`71cd7e0`](https://github.com/craigerl/aprsd/commit/71cd7e0ab5fcb73c4b9302a7d0378719981244a1)

#### [v3.3.1](https://github.com/craigerl/aprsd/compare/v3.3.0...v3.3.1)

> 12 March 2024

- Fixed problem with list-plugins [`cb9456b`](https://github.com/craigerl/aprsd/commit/cb9456b29d68ec4b64377c457214d55803242b70)
- Fixed failure with fetch-stats [`10d023d`](https://github.com/craigerl/aprsd/commit/10d023dd7bbc6da252fa02ef452fc4142d313bed)
- Updates for 3.3.1 [`50e24ab`](https://github.com/craigerl/aprsd/commit/50e24abb81dd36c604c5109c5ec95f4d5fa8c52e)

#### [v3.3.0](https://github.com/craigerl/aprsd/compare/v3.2.3...v3.3.0)

> 12 March 2024

- Replace slow rich logging with loguru [`#147`](https://github.com/craigerl/aprsd/pull/147)
- Added location for callsign tabs in webchat [`#146`](https://github.com/craigerl/aprsd/pull/146)
- Update for v3.2.3 [`8bceb82`](https://github.com/craigerl/aprsd/commit/8bceb827ecb20c87224a74868d2843e67c977e6e)
- Update requirements.txt [`a4230d3`](https://github.com/craigerl/aprsd/commit/a4230d324a409479ff14de420bfd44050190244f)
- Updated dev test-plugin command [`03c58f8`](https://github.com/craigerl/aprsd/commit/03c58f83cd0f6a98cfd77861871edfd65c4e28fa)
- Added Location info on webchat interface [`d6f0f05`](https://github.com/craigerl/aprsd/commit/d6f0f053156dcbc86f1f44f860c755efdcbe8a9e)
- update github action branchs to v8 [`a88de2f`](https://github.com/craigerl/aprsd/commit/a88de2f09cc758a63e0eb7541721dfc8a374459e)
- Create codeql.yml [`a00c4ea`](https://github.com/craigerl/aprsd/commit/a00c4ea84095cdb25f8306ce66a47f5497bcfa3b)
- updated gitignore [`1a5c5f0`](https://github.com/craigerl/aprsd/commit/1a5c5f0dcef60a192c44b0e8774f1598d2ed48b2)
- Added support for loading extensions [`b143072`](https://github.com/craigerl/aprsd/commit/b14307270c1438b6f5cdf8de5bb179729a62f993)
- Added some missing classes to threads [`e89f8a8`](https://github.com/craigerl/aprsd/commit/e89f8a805bc47f8d951fcbfb350a3b40d8befbd3)
- Added iterator to objectstore [`df2798e`](https://github.com/craigerl/aprsd/commit/df2798eafb3ff0201bb8c33f8d80f1cbcc32944e)
- removed some unneeded code [`9683459`](https://github.com/craigerl/aprsd/commit/968345944aedc9af11b1d9286b8c0d4a3354867e)
- updated requirements files [`275bf67`](https://github.com/craigerl/aprsd/commit/275bf67b9e0b474674d5efb69551ee0d2a308ec0)
- Added BeaconPacket [`11f1e95`](https://github.com/craigerl/aprsd/commit/11f1e9533e89ca236006d3a5d0b9e1b3ce0f4088)
- Cleanup some logs [`68f23d8`](https://github.com/craigerl/aprsd/commit/68f23d8ca78cf20b8f0efc7e26d75b9a319efb33)
- Added installing extensions to Docker run [`4118541`](https://github.com/craigerl/aprsd/commit/41185416cbf1ee9add54ebcae6674824384e6104)
- Added the new APRS Registry thread [`1e4f0ca`](https://github.com/craigerl/aprsd/commit/1e4f0ca65af38f728de6c917d09b19450aceaa2b)
- add py310 gh actions [`1ad2e13`](https://github.com/craigerl/aprsd/commit/1ad2e135dc8f27a52d5e9b0d713bd72e753649c0)
- Added sending software string to registry [`8264c94`](https://github.com/craigerl/aprsd/commit/8264c94bd63e283313161ab51297b7a501a21cb9)
- Don't send uptime to registry [`38fe408`](https://github.com/craigerl/aprsd/commit/38fe408c82ab493d8b9ebb3c281bd060afa749ae)
- py311 fails in github [`f0ad6d7`](https://github.com/craigerl/aprsd/commit/f0ad6d7577cb462ffc2c21ce53c9fb04978c1624)
- fix pep8 failures [`e9c48c1`](https://github.com/craigerl/aprsd/commit/e9c48c1914395277aa7207c7ae1a8b2917a3351f)
- Fixed default service registry url [`cb291de`](https://github.com/craigerl/aprsd/commit/cb291de047f80f77b63e07419ff4bb9ebaec8bce)
- changed the default packet timeout to 5 minutes [`a1e21e7`](https://github.com/craigerl/aprsd/commit/a1e21e795d2745ce0cec6327f9b036091e9bf546)
- fixed references to conf [`7a5b55f`](https://github.com/craigerl/aprsd/commit/7a5b55fa77642927f5c853ee8975d03b83324f54)
- fixed frequency_seconds to IntOpt [`6a7d7ad`](https://github.com/craigerl/aprsd/commit/6a7d7ad79b197ce0ae77195187d4ae0936eddd20)
- Add log info for Beacon and Registry threads [`a4630c1`](https://github.com/craigerl/aprsd/commit/a4630c15bede44cbf2272fae162521ac4d1b4b81)
- Change defaults for beacon and registry [`5fd91a2`](https://github.com/craigerl/aprsd/commit/5fd91a2172c7d4e1b1b3c65b8704f02500e0de87)
- Added list-extensions and updated README.rst [`ff051bc`](https://github.com/craigerl/aprsd/commit/ff051bc2859223a2979c1e050b8aae7fc947b6de)
- Fixed pep8 [`d1a09fc`](https://github.com/craigerl/aprsd/commit/d1a09fc6b5234835b49da7a19bbc65d4655481dd)
- Updated requirements [`d092a43`](https://github.com/craigerl/aprsd/commit/d092a43ec9ad9284d3f8b0060719b9e6c86f1976)
- Put threads first after date/time [`2cb9c2a`](https://github.com/craigerl/aprsd/commit/2cb9c2a31cf88904381f5e2aa456be77941d9ecb)
- Make registry thread sleep [`5d3f42f`](https://github.com/craigerl/aprsd/commit/5d3f42f411d801f0bdb22ae8a172528b19a8d89e)
- Disable debug logs for aprslib [`24bbea1`](https://github.com/craigerl/aprsd/commit/24bbea1d499644d9d4bd7aab62f05b5802b2867e)
- use log.setup_logging [`aec88d4`](https://github.com/craigerl/aprsd/commit/aec88d4a7e107cdfbc6d38e6bc744a74b6ef3b9b)
- Fixed RegistryThread not sending requests [`0b0afd3`](https://github.com/craigerl/aprsd/commit/0b0afd39ede5d437d41255563684144f62f0f323)
- Changed processpkt message [`66004f6`](https://github.com/craigerl/aprsd/commit/66004f639fcfe429fde4a6903ebeb8a5afc55847)
- Fixed registry url post [`2e9c9d4`](https://github.com/craigerl/aprsd/commit/2e9c9d40e1716e15356cbb73f2f5b3e9f455a176)
- sample-config fix [`0ca5cee`](https://github.com/craigerl/aprsd/commit/0ca5ceee7e50387a65d538a32b2da614e1ca7cb9)
- Changelog for 3.3.0 [`c37e1d5`](https://github.com/craigerl/aprsd/commit/c37e1d58bbf124fa99b33d12029e611bcb82c4da)

#### [v3.2.3](https://github.com/craigerl/aprsd/compare/v3.2.2...v3.2.3)

> 9 January 2024

- aprsd: main.py: Fix premature return in sample_config [`#144`](https://github.com/craigerl/aprsd/pull/144)
- Rework Location Plugin [`#140`](https://github.com/craigerl/aprsd/pull/140)
- Fixed a bug with OWMWeatherPlugin [`0433768`](https://github.com/craigerl/aprsd/commit/043376878460f2324f66205aa0bccf285c6517cb)
- Update weather.py [`b6df9de`](https://github.com/craigerl/aprsd/commit/b6df9de8aa3a1e2bb4a2951d3f7949c715ed2c3a)
- Update weather.py  both weather plugins have new Ww regex [`651cf01`](https://github.com/craigerl/aprsd/commit/651cf014b7874b95549ecd9d81cd59ada42862ce)
- Update weather.py  because you can't sort icons by penis [`9350cf6`](https://github.com/craigerl/aprsd/commit/9350cf653434b6d29d4ff4874de98a4579abeceb)
- Added missing fortune app [`f02824b`](https://github.com/craigerl/aprsd/commit/f02824b7960c0a9e8ca872d12cd69453211d2830)
- Added fortune to Dockerfile-dev [`682e138`](https://github.com/craigerl/aprsd/commit/682e138ec23dd0be1cd443d6ecfc25422a97ea8f)
- added /usr/games to path [`026a64c`](https://github.com/craigerl/aprsd/commit/026a64c003c776b0ea3ca668ed142234fc28b0b2)
- Force fortune path during setup test [`12a3113`](https://github.com/craigerl/aprsd/commit/12a311319227347e648dcc3ecff4f095e62fb4d4)

#### [v3.2.2](https://github.com/craigerl/aprsd/compare/v3.2.1...v3.2.2)

> 22 November 2023

- Walt test [`#139`](https://github.com/craigerl/aprsd/pull/139)
- Try to localize js libs and css for no internet [`#138`](https://github.com/craigerl/aprsd/pull/138)
- Normalize listen --aprs-login [`#137`](https://github.com/craigerl/aprsd/pull/137)
- Bump werkzeug from 2.3.7 to 3.0.1 [`#136`](https://github.com/craigerl/aprsd/pull/136)
- Update INSTALL with new conf files [`#135`](https://github.com/craigerl/aprsd/pull/135)
- Bump urllib3 from 2.0.6 to 2.0.7 [`#134`](https://github.com/craigerl/aprsd/pull/134)
- Test new packet serialization [`fe1ebf2`](https://github.com/craigerl/aprsd/commit/fe1ebf2ec159ead44412e3bbd2d13754b327aced)
- Reworked the admin graphs [`763c9ab`](https://github.com/craigerl/aprsd/commit/763c9ab897343c3ff882e0769e9c582ce0b71e56)
- Updated requirements [`4b1214d`](https://github.com/craigerl/aprsd/commit/4b1214de74785af70b9bd4e530edfb52eb7d5fc6)
- removed invalid reference to config.py [`fae7032`](https://github.com/craigerl/aprsd/commit/fae7032346bf14129f27cd23a5397b524bf450aa)
- Fixed datetime access in core.py [`b9dd21b`](https://github.com/craigerl/aprsd/commit/b9dd21bc14eddd1a126d6eac1fa1fa4f5cd53609)
- remove python 3.12 from github builds [`638128a`](https://github.com/craigerl/aprsd/commit/638128adf8862b9cade055fd9539a553f4f12fbb)
- pep8 fixes [`6b397cb`](https://github.com/craigerl/aprsd/commit/6b397cbdf18c4257fc20d99fc15a9b0f258cde39)
- Fix wsgi for prod [`b0bfdaa`](https://github.com/craigerl/aprsd/commit/b0bfdaa1fb15158b4cff95fbf7619ae0c8c3309e)
- Fix for types [`809a41f`](https://github.com/craigerl/aprsd/commit/809a41f1238a9d00252e069207ddf43555e0fbe3)
- Update for v3.2.2 release [`c0e2ef1`](https://github.com/craigerl/aprsd/commit/c0e2ef119939db41b07e2ad053e55bfbdaf07329)

#### [v3.2.1](https://github.com/craigerl/aprsd/compare/v3.2.0...v3.2.1)

> 9 October 2023

- Bump urllib3 from 2.0.4 to 2.0.6 [`#133`](https://github.com/craigerl/aprsd/pull/133)
- Fix for dupe packets. [`#132`](https://github.com/craigerl/aprsd/pull/132)
- Log a warning on dupe [`0d7e50d`](https://github.com/craigerl/aprsd/commit/0d7e50d2ba0ba55ae82a0c8df98bb0e7c283cdd8)
- rewrote packet_list and drop dupe packets [`4f87d5d`](https://github.com/craigerl/aprsd/commit/4f87d5da12a5588d943b0e3644d57a93e26ccafe)
- pep8 fixes [`99a0f87`](https://github.com/craigerl/aprsd/commit/99a0f877f4b97dcc91cbf9552f72fe9e29ac9ba1)
- Fixed import of Mutablemapping [`f79b88e`](https://github.com/craigerl/aprsd/commit/f79b88ec1b44ea66572ee83ef040cb0f81d82549)
- Fixed issue with packet tracker and msgNO Counter [`9bdfd16`](https://github.com/craigerl/aprsd/commit/9bdfd166fd213983ddd55e57b726bb8fc7eba8b7)
- Fixed another msgNo int issue [`751bbc2`](https://github.com/craigerl/aprsd/commit/751bbc25149f8623f54e9e853c22191533fda45c)
- Don't process AckPackets as dupes [`59cec13`](https://github.com/craigerl/aprsd/commit/59cec1317da8fea28e2c6496f95ce8ea5bf1c73b)
- Make Packet objects hashable [`544600a`](https://github.com/craigerl/aprsd/commit/544600a96b6a23fc5999c1be117511998a2228b2)
- Add ability to change path on every TX packet [`ddd4d25`](https://github.com/craigerl/aprsd/commit/ddd4d25e9dbb98603fbda1854d224baae2f2a3aa)
- Added packet_dupe_timeout conf [`f41488b`](https://github.com/craigerl/aprsd/commit/f41488b48a37a8c8bd1695304ea286bd58291faf)
- Fix path for KISS clients [`746eeb8`](https://github.com/craigerl/aprsd/commit/746eeb81b0b68d09c668267b74e0c09b134757ff)
- Set a default password for admin [`8116960`](https://github.com/craigerl/aprsd/commit/81169600bd264f1708eddd387f14c20b3fb57429)
- Fixed default path for tcp_kiss client. [`156d9d9`](https://github.com/craigerl/aprsd/commit/156d9d9592d590e9168a70ff7d01d704cd10192e)
- Changed the path option to a ListOpt [`0155923`](https://github.com/craigerl/aprsd/commit/01559233412399f25b4ce7496f6c19036ce16609)
- Update the webchat paths [`5ae45ce`](https://github.com/craigerl/aprsd/commit/5ae45ce42fe50b41ca1216a028cb85c99f52240a)
- Update the packet_dupe_timeout warning [`bf905a0`](https://github.com/craigerl/aprsd/commit/bf905a0e9faedab4b160764a26e7e310e16ba7e7)
- Update index.html disable form autocomplete [`8e9a021`](https://github.com/craigerl/aprsd/commit/8e9a0213e9aaf43fda2e6279f6343229fc758e86)
- Changelog for 3.2.1 [`acf2b62`](https://github.com/craigerl/aprsd/commit/acf2b62bce741364311edca104934be91f678b2e)

#### [v3.2.0](https://github.com/craigerl/aprsd/compare/v3.1.3...v3.2.0)

> 26 September 2023

- Bump gevent from 23.9.0.post1 to 23.9.1 [`#131`](https://github.com/craigerl/aprsd/pull/131)
- Webchat saved bootstrapjs [`#130`](https://github.com/craigerl/aprsd/pull/130)
- fixed webchat logging.logformat typeoh [`8dd3b05`](https://github.com/craigerl/aprsd/commit/8dd3b05bb16f792ff588494811ac6a669cb629ef)
- Added new webchat config section [`f922b3f`](https://github.com/craigerl/aprsd/commit/f922b3f97b741aa80da642fe4a6def966c3677a7)
- Make use of webchat gps config options [`2e9a204`](https://github.com/craigerl/aprsd/commit/2e9a204c7466446a895f3ba62e0aab69ea1be21f)
- Convert webchat internet urls to local static urls [`1d6a667`](https://github.com/craigerl/aprsd/commit/1d6a667987f3d239512ab2458209c99e5a776e9b)
- Webchat suppress to display of dupe messages [`a8dd9ce`](https://github.com/craigerl/aprsd/commit/a8dd9ce0129d24a16c033546ffbff7d9b59f0885)
- click on the div after added. [`377842c`](https://github.com/craigerl/aprsd/commit/377842c2ec9a063602aa9f4a780ac7979950bc2b)
- Added dupe checkig code to webchat mobile [`2416f0e`](https://github.com/craigerl/aprsd/commit/2416f0ea1a52da1d58a2562ecbe8172aa3779e3c)
- fixed an issue in the mobile webchat [`34311f0`](https://github.com/craigerl/aprsd/commit/34311f0fbd1a501dc9eb27ec6e6f5532a4fe43cc)
- Start keepalive thread first [`859f904`](https://github.com/craigerl/aprsd/commit/859f904602081a22d8b6f1228502053decb921c2)
- RPC Server logs the client IP on failed auth [`9582812`](https://github.com/craigerl/aprsd/commit/958281204175d7315ac3a62b0b6eb0656864e0ca)
- Fixed admin page packet date [`570fdb9`](https://github.com/craigerl/aprsd/commit/570fdb98a748d26126a1e4c9abdf0aff35927e81)
- Removed some RPC server log noise [`82f77b7`](https://github.com/craigerl/aprsd/commit/82f77b7a6ad8d322488034b3944970744377dd3c)
- Removed admin_web.py [`a9e8050`](https://github.com/craigerl/aprsd/commit/a9e8050ae69e9cabb2ec37ef872f0dd23b13b0ac)
- Updated documentation build [`10bf049`](https://github.com/craigerl/aprsd/commit/10bf04929e9916b48147171a0f810dad91f8c9a7)
- updated github workflows [`4b56e99`](https://github.com/craigerl/aprsd/commit/4b56e99689e4aeb518bc78bec8212bfd3d8a845e)
- recreate client during reset() [`008b2ab`](https://github.com/craigerl/aprsd/commit/008b2ab09efb98251fe55d721c75be64b1fdd8cc)
- Remove VIM from Dockerfile [`619b1b7`](https://github.com/craigerl/aprsd/commit/619b1b708e0059745e7f55d2ec4f08cc2b57f3fe)
- Restore previous conversations in webchat [`7292744`](https://github.com/craigerl/aprsd/commit/7292744a78c179d17caadd4d659caba38cccc4f8)
- Updated the webchat UI to look like iMessage [`29f21a9`](https://github.com/craigerl/aprsd/commit/29f21a946951b0d42aab6f339da684933c6e95ed)
- Reworked webchat with new UI [`14e984c`](https://github.com/craigerl/aprsd/commit/14e984c9b4143309b595c9e55ad8e9126095f9c4)
- Added close X on webchat tabs [`8527602`](https://github.com/craigerl/aprsd/commit/852760220f10b6bf29ae6f9bacb1ff1908412027)
- Deleted webchat mobile pages [`70ddc44`](https://github.com/craigerl/aprsd/commit/70ddc44b5c30e0381d5806a8a0c20979bcc0c464)
- Update index.html to use chat.css [`ba6b410`](https://github.com/craigerl/aprsd/commit/ba6b410795808e737c7dd035812c674ce8f9755f)
- Center the webchat input form [`b4e02c7`](https://github.com/craigerl/aprsd/commit/b4e02c760ee1eac155406b0939ad058fdf0e2449)
- webchat: set to_call to value of tab when selected [`8a90d54`](https://github.com/craigerl/aprsd/commit/8a90d5480ae379a3af225a4f73d452c8d5ae402e)
- webchat: got active tab onclick working [`1400e3e`](https://github.com/craigerl/aprsd/commit/1400e3e71144d4dc8a48874301b90960485a3768)
- WebChat: Send GPS Beacon working [`81a19dd`](https://github.com/craigerl/aprsd/commit/81a19dd10164f7d3b5702e1cb58898893120ac67)
- Ensure parse_delta_str doesn't puke [`140fa4a`](https://github.com/craigerl/aprsd/commit/140fa4ace49385da2d8b2c675c91441a1c8d34a0)
- Ensure Keepalive doesn't reset client at startup [`ef206b1`](https://github.com/craigerl/aprsd/commit/ef206b12837738779bfda5beb1ccfb0edbf38649)
- Webchat: Fixed bug deleteing first tab [`f770c5f`](https://github.com/craigerl/aprsd/commit/f770c5ffd569a2d8cb722b382872494a35bedc1c)
- Webchat: tweaks to UI for expanding chat [`b393060`](https://github.com/craigerl/aprsd/commit/b393060edb0afd592d4cb88be143df6e20d1ee66)
- WebChat: fixed content area scrolling [`7130ca2`](https://github.com/craigerl/aprsd/commit/7130ca2fd9425c438a787b5521e512bc5d572f18)
- WebChat: Prevent sending message without callsign [`f151ae4`](https://github.com/craigerl/aprsd/commit/f151ae434820c24c4d09beb1876eeff12296339b)
- Webchat: Added tab notifications and raw packet [`9635893`](https://github.com/craigerl/aprsd/commit/9635893934e1a6f29bafde003bcde911a0a63fb9)
- Webchat: Fix pep8 errors [`3f5dbe0`](https://github.com/craigerl/aprsd/commit/3f5dbe0a12349de221ce65c4687b83ab2ac14128)
- WebChat: new tab should get focus [`ff35898`](https://github.com/craigerl/aprsd/commit/ff358987a9206772792358ee2c14345fd63fc426)
- Webchat: Fix chat css on older browsers [`6b083d4`](https://github.com/craigerl/aprsd/commit/6b083d4c4d7dec874c3d67cca176b9de97bd867a)
- Webchat: Fix issue accessing msg.id [`d63c685`](https://github.com/craigerl/aprsd/commit/d63c6854aff0d5962d7e9a6aca277606955bdf49)
- WebChat: flash a dupe message [`12dfdef`](https://github.com/craigerl/aprsd/commit/12dfdefb624b410f205086f3954a6809d0fa0956)
- WebChat: cleanup some console.logs [`82d2591`](https://github.com/craigerl/aprsd/commit/82d25915fc28244232ee250dd45e41d4ef2e3cf5)
- Webchat: fix input maxlength [`788a72c`](https://github.com/craigerl/aprsd/commit/788a72c643e3d4f82defc63c068fa1d5f938aa50)
- minor cleanup prior to release [`c9dc4f6`](https://github.com/craigerl/aprsd/commit/c9dc4f67d43a95c4abf39c0bf3e90dabe7778662)
- Update Changelog for 3.2.0 [`7408894`](https://github.com/craigerl/aprsd/commit/740889426ab0dd9604b1d1492ce7bff4948eeed3)

#### [v3.1.3](https://github.com/craigerl/aprsd/compare/v3.1.2...v3.1.3)

> 15 August 2023

- Forcefully allow development webchat flask [`33c7871`](https://github.com/craigerl/aprsd/commit/33c7871dbe86a07405e5186515adaea412498f24)
- prep for 3.1.3 [`e06305f`](https://github.com/craigerl/aprsd/commit/e06305fceb551c7917c545ae76c984293d045c2f)

#### [v3.1.2](https://github.com/craigerl/aprsd/compare/v3.1.1...v3.1.2)

> 15 August 2023

- Removed adhoc ssl support in webchat [`182887c`](https://github.com/craigerl/aprsd/commit/182887c20a36d34122e5eefef77e28fcc814c7a5)
- Disable the Send GPS Beacon button [`65a5a90`](https://github.com/craigerl/aprsd/commit/65a5a90458fd38dfdb9a9629598d9ee97b8d631e)
- Added support for ThirdParty packet types [`ae9e4d3`](https://github.com/craigerl/aprsd/commit/ae9e4d31ad8333451d6e81dd6440085052c192a0)
- Updated Changelog for 3.1.2 [`b2f95b0`](https://github.com/craigerl/aprsd/commit/b2f95b0f4e1fd627da327354568d773f1172060f)

#### [v3.1.1](https://github.com/craigerl/aprsd/compare/v3.1.0...v3.1.1)

> 7 August 2023

- Fix sending packets over KISS interface [`#128`](https://github.com/craigerl/aprsd/pull/128)
- Update the Dockerfile [`#125`](https://github.com/craigerl/aprsd/pull/125)
- Max out the client reconnect backoff to 5 [`26f354b`](https://github.com/craigerl/aprsd/commit/26f354b3a9113a41c6d9a7d5d71dac0ffba11809)
- remove loop log [`e0c3c5c`](https://github.com/craigerl/aprsd/commit/e0c3c5cbbff6ec3ede4d4d8756c42481634a1d61)
- Use config web_ip for running admin ui from module [`011cfc5`](https://github.com/craigerl/aprsd/commit/011cfc55e100ffda5153c7ed14b287f6757842c2)
- re-enable USWeatherPlugin to use mapClick [`986df39`](https://github.com/craigerl/aprsd/commit/986df391b2eb5af78f26b95fa1c989760dfa2a56)
- Fixed pep8 failures [`db9e1d2`](https://github.com/craigerl/aprsd/commit/db9e1d23d1421ca0842208f862fe50849d7fcfd8)
- Updated Changelog for v3.1.1 [`f228144`](https://github.com/craigerl/aprsd/commit/f228144f4bfb3fc739d48d6628804efaa04a0f6a)

#### [v3.1.0](https://github.com/craigerl/aprsd/compare/v3.0.3...v3.1.0)

> 24 July 2023

- replacement of flask-socketio with python-socketio [`#124`](https://github.com/craigerl/aprsd/pull/124)
- Remove flask pinning [`#123`](https://github.com/craigerl/aprsd/pull/123)
- Update requirements for upgraded cryptography [`#122`](https://github.com/craigerl/aprsd/pull/122)
- Fixed rain numbers from aprslib [`#119`](https://github.com/craigerl/aprsd/pull/119)
- Example plugin wrong function [`#116`](https://github.com/craigerl/aprsd/pull/116)
- Update Dockerfile to help build cryptography [`00f1c3a`](https://github.com/craigerl/aprsd/commit/00f1c3a2baf6c0afc5a697ee5a895110a6c38cac)
- Ensure conf is imported for threads/tx [`4e99e30`](https://github.com/craigerl/aprsd/commit/4e99e30f165d4e6dc12e1fa2aefbba790b96211f)
- Add .readthedocs.yaml [`43d6b62`](https://github.com/craigerl/aprsd/commit/43d6b627604a50dd7c566316c0c9491b777151d9)
- Fixed .readthedocs.yaml format [`cad22e1`](https://github.com/craigerl/aprsd/commit/cad22e174432bcfb28d2c8cbaaab995f38a95461)
- Update location plugin and reworked requirements [`26c1e7a`](https://github.com/craigerl/aprsd/commit/26c1e7afbb1875bfcaf3016a2d85b34bcda48048)
- Added rpc server for listen [`8b73372`](https://github.com/craigerl/aprsd/commit/8b73372b6e63b0e6f58dffa7668a73990a599dc4)
- Fixed pep8 violation [`5bc589f`](https://github.com/craigerl/aprsd/commit/5bc589f21fd3dc33a4f0aa361cbd06d1c4288219)
- Update github workflows [`15bf371`](https://github.com/craigerl/aprsd/commit/15bf3710d25328cfd5ff3fb27710746636ea6899)
- force tox to 4.3.5 [`da20ff0`](https://github.com/craigerl/aprsd/commit/da20ff038b40160695773e6b5fedfbf51d9da8bf)
- Updated requirements [`319969c`](https://github.com/craigerl/aprsd/commit/319969cc08f9e49deabe27f38f941409a4c5e2ed)
- USe new tox and update githubworkflows [`9931c8a`](https://github.com/craigerl/aprsd/commit/9931c8a6c5f84ca46521e8d8f66d58a4c88a9890)
- Fixed unit tests for Location plugin [`80b85e6`](https://github.com/craigerl/aprsd/commit/80b85e648f0d40325964517ecc9db7cd999009de)
- Add github manual trigger for master build [`09a0c4c`](https://github.com/craigerl/aprsd/commit/09a0c4cb026101dab53d1a9544135d29f15040cd)
- Update master-build.yml [`f4d6035`](https://github.com/craigerl/aprsd/commit/f4d60357ee15e7b16fb24738fdb882d46f068795)
- Added manual master build [`311ceba`](https://github.com/craigerl/aprsd/commit/311cebaf2770ee293c7166ee56030146cba4a274)
- add arm64 for manual github build [`b172c69`](https://github.com/craigerl/aprsd/commit/b172c692a1ff9bfce1cdd49695fc17544a058216)
- Added some utilities to Dockerfile-dev [`9b94414`](https://github.com/craigerl/aprsd/commit/9b944142bd6a21285d112929791fc87a26c9cdf9)
- Replace ratelimiter with rush [`fe0d71d`](https://github.com/craigerl/aprsd/commit/fe0d71de4d75979968a67e6ff1122a11a303c3bc)
- Added the fetch-stats command [`b2e621d`](https://github.com/craigerl/aprsd/commit/b2e621da4b058a1fc727ff6741a27c03a0b220e4)
- added counts to the fetch-stats table [`0a14b07`](https://github.com/craigerl/aprsd/commit/0a14b07fae0e2eb2c867c624d510ca60602fab5d)
- Populate stats object with threads info [`191e1ff`](https://github.com/craigerl/aprsd/commit/191e1ff552ac3c9d769de2417d5c9a0d5f85362c)
- Fixed pep8 errors [`005675c`](https://github.com/craigerl/aprsd/commit/005675cb467863f54db1cf5ffc94f5693326b72d)
- Try and fix Dockerfile-dev [`bba7b68`](https://github.com/craigerl/aprsd/commit/bba7b68112c0b6372f21a1d2a9a7df52fa028a05)
- Fix in for aprslib issue #80 [`63bf82a`](https://github.com/craigerl/aprsd/commit/63bf82aab5cce54f7b96d95c77043067185b1c4b)
- Fixed rpc client initialization [`7f2aba7`](https://github.com/craigerl/aprsd/commit/7f2aba702abc079d6b36b7fbb0e5b4d8e8d03f7f)
- Limit the float values to 3 decimal places [`0bd11d0`](https://github.com/craigerl/aprsd/commit/0bd11d05c666d5304e3173e2e010a23fd6d9e6e0)
- Changed weather plugin regex pattern [`565ffe3`](https://github.com/craigerl/aprsd/commit/565ffe3f7287a257a84c693f74e2dff6f35f84af)
- Moved logging to log for wsgi.py [`35d4158`](https://github.com/craigerl/aprsd/commit/35d41582ee0cfc9dce505526e8a5648d93a1be12)
- Replace Dockerfile-dev with python3 slim [`ccd564a`](https://github.com/craigerl/aprsd/commit/ccd564a52e6de2ef800934492d5e420e90d4e365)
- Added more libs for Dockerfile-dev [`ad00463`](https://github.com/craigerl/aprsd/commit/ad004633de75176bf70c6a4df19763f57350fbbb)
- update manual build github [`fa6e738`](https://github.com/craigerl/aprsd/commit/fa6e738a2069721eb0100ad71cbb41bfd012bc43)
- Update Dockerfile-dev to fix plugin permissions [`d8318f2`](https://github.com/craigerl/aprsd/commit/d8318f2ae23f5299bad2cdfb07a549bc74d83d3f)
- Update master build to include linux/arm/v8 [`dee73c1`](https://github.com/craigerl/aprsd/commit/dee73c1060be62f01e87413bfd9edef04a3ec675)
- Removed flask-classful from webchat [`6a6e854`](https://github.com/craigerl/aprsd/commit/6a6e854caf18fc01b6f38badbffe38272c73508c)
- Update docker bin/admin.sh [`fa452cc`](https://github.com/craigerl/aprsd/commit/fa452cc773b4aacd4ecb56900e1f954887dea999)
- removed linux/arm/v8 [`5723e3a`](https://github.com/craigerl/aprsd/commit/5723e3a77b78325e5e381b703bed61f2fef147f4)
- Added timing after each thread loop [`d3a93b7`](https://github.com/craigerl/aprsd/commit/d3a93b735deb222d9a2c27015a413973c810f4d0)
- updated wsgi config default /config/aprsd.conf [`588e140`](https://github.com/craigerl/aprsd/commit/588e140a7f1de089d9813c22c116d7cc6b6169f0)
- Add info logging for rpc server calls [`6ae55fc`](https://github.com/craigerl/aprsd/commit/6ae55fc9a14bb4e760fedce6b21705ee248fb2cc)
- Ensure fetch-stats ip is a string [`cbef93b`](https://github.com/craigerl/aprsd/commit/cbef93b3278b2d638c96558271ae62d72ede886a)
- Change how fetch-stats gets it's defaults [`5383b69`](https://github.com/craigerl/aprsd/commit/5383b698ea8d92b76ee22a8ba239d6de945e0375)
- change port to 8000 [`e51a501`](https://github.com/craigerl/aprsd/commit/e51a50154459a5f50b3faa7784f68555bb442952)
- Fixed pep8 [`4664ead`](https://github.com/craigerl/aprsd/commit/4664ead9e7b833f610b5c04acebbc9cced4447d5)
- Update Dockerfile-dev to include uwsgi [`1ab9c3f`](https://github.com/craigerl/aprsd/commit/1ab9c3fee4ea228a8e9194340d8fb31fc6cd7b65)
- Fixed sio namespace registration [`099b87e`](https://github.com/craigerl/aprsd/commit/099b87e25048e2be2bf453130d9ba99299079190)
- Use CONF.admin.web_port for single launch web admin [`c7d629f`](https://github.com/craigerl/aprsd/commit/c7d629f88a754ef1210a1ab87a96fe8f71036f38)
- Changelog updates for v3.1.0 [`dfd3688`](https://github.com/craigerl/aprsd/commit/dfd3688d8ff1110ac011e8adf866f67ba2ad0d86)

#### [v3.0.3](https://github.com/craigerl/aprsd/compare/v3.0.2...v3.0.3)

> 25 April 2023

- Add ratelimiting for acks and other packets [`#111`](https://github.com/craigerl/aprsd/pull/111)
- Update Dockerfile [`8a456ca`](https://github.com/craigerl/aprsd/commit/8a456cac4887933e11c37b323a73e4e34fb0a7ce)
- Update Listen command [`483afce`](https://github.com/craigerl/aprsd/commit/483afce5adb39b973f4f6e5c57431007c3318889)
- Added listen.sh for docker [`c353877`](https://github.com/craigerl/aprsd/commit/c353877321af14fd8bb4804a45cd8422471dd47f)
- Change listen command plugins [`0ec41f7`](https://github.com/craigerl/aprsd/commit/0ec41f76053a0c1278d4fde14de4f853ea542669)
- Added listen args. [`66ebb28`](https://github.com/craigerl/aprsd/commit/66ebb286d8fa13a64971cdc2e9dded01637dd9c9)
- Don't load help plugin for listen command [`17d9c06`](https://github.com/craigerl/aprsd/commit/17d9c06b07232276156c015daa5692ed9413223e)
- Fixed loading of plugins for server [`e21e2a7`](https://github.com/craigerl/aprsd/commit/e21e2a7c50455c9d43c51858f0dfe81b2d2d6296)
- cleanup some debug messages [`5694cab`](https://github.com/craigerl/aprsd/commit/5694cabd93ff03e31fb0edddc1b28b2c62d9c368)
- Update Changelog to 3.0.3 [`0527ddf`](https://github.com/craigerl/aprsd/commit/0527ddfdbad58fe172f9bc24563c5c49506e22a6)

#### [v3.0.2](https://github.com/craigerl/aprsd/compare/v3.0.1...v3.0.2)

> 16 January 2023

- Import RejectPacket [`4aa4a4b`](https://github.com/craigerl/aprsd/commit/4aa4a4b5d3e4326c0f479e62bd5a04d0c2e0d338)
- Update Changelog for 3.0.2 [`357a193`](https://github.com/craigerl/aprsd/commit/357a193a75a4e2a5efd0768ca79f71998539d2d1)

#### [v3.0.1](https://github.com/craigerl/aprsd/compare/v3.0.0...v3.0.1)

> 14 January 2023

- Add support for Reject messages. [`#109`](https://github.com/craigerl/aprsd/pull/109)
- Update Docker builds for 3.0.0 [`3872590`](https://github.com/craigerl/aprsd/commit/38725907f31a56a9619035f17d6ae1b0f9955a17)
- Add support to Reject messages. [`c68b270`](https://github.com/craigerl/aprsd/commit/c68b270ee280a7f58163784511d5fbea810c977c)

### [v3.0.0](https://github.com/craigerl/aprsd/compare/v2.6.1...v3.0.0)

> 9 January 2023

- Convert config to oslo_config [`#107`](https://github.com/craigerl/aprsd/pull/107)
- Dataclasses [`#106`](https://github.com/craigerl/aprsd/pull/106)
- Started using dataclasses to describe packets [`082db73`](https://github.com/craigerl/aprsd/commit/082db7325de50c508a96db225ad196e47fbaf806)
- Updated plugins and plugin interfaces for Packet [`67a441d`](https://github.com/craigerl/aprsd/commit/67a441d443f4460b0db0c67f404b6d5db85024af)
- Reworked all packet processing [`94fb481`](https://github.com/craigerl/aprsd/commit/94fb481014dea7960c0a029b3deb8828fea22ad8)
- cleanup webchat [`1b49f12`](https://github.com/craigerl/aprsd/commit/1b49f128a96197bd11d47feba203d1029e022a50)
- Added contructing a GPSPacket for sending [`59e5af8`](https://github.com/craigerl/aprsd/commit/59e5af8ee59bfeac4c72662c42bcf0663162e3ef)
- Cleaned out all references to messaging [`bfc0a5a`](https://github.com/craigerl/aprsd/commit/bfc0a5a1e9bd56c808edac679a50426efc5d322e)
- More messaging -&gt; packets cleanup [`6030cb3`](https://github.com/craigerl/aprsd/commit/6030cb394ba72e70c1e3cf161f3ddef39ddf183e)
- Fix packets timestamp to int [`f1de7bc`](https://github.com/craigerl/aprsd/commit/f1de7bc6815be2ee129a27ff4a898abbc48a5b51)
- Cleaned up packet transmit class attributes [`c201c93`](https://github.com/craigerl/aprsd/commit/c201c93b5d01f73eb2a308d309103e114e5f6ff1)
- Make tracking objectstores work w/o initializing [`1187f1e`](https://github.com/craigerl/aprsd/commit/1187f1ed738890b63201c136e607a88781a8b36e)
- Change RX packet processing to enqueu [`123b3ff`](https://github.com/craigerl/aprsd/commit/123b3ffa81c5eb6366378cd4e28d936086af7686)
- Removed unused threading code [`9fc5356`](https://github.com/craigerl/aprsd/commit/9fc5356456a60cd96c085a842cbeed0eb315e949)
- reworked collecting and reporting stats [`e37f99a`](https://github.com/craigerl/aprsd/commit/e37f99a6ddbb32e5d1a59f30c7179bb81451fc6a)
- Updated webchat and listen for queue based RX [`ad0d89d`](https://github.com/craigerl/aprsd/commit/ad0d89db401847a44b2d2af82d9901b40ecd9b5a)
- Added WeatherPacket encoding [`899a6e5`](https://github.com/craigerl/aprsd/commit/899a6e5363690a1463c6102b30033e6ff1888c3c)
- Add packet filtering for aprsd listen [`d01392f`](https://github.com/craigerl/aprsd/commit/d01392f6a588b38134875acfa085f5664febacf6)
- Fix pep8 violation [`a1188d2`](https://github.com/craigerl/aprsd/commit/a1188d29d41df7a609fe29d23010cf8fb50fa5cc)
- Fix some WeatherPacket formatting [`f19043e`](https://github.com/craigerl/aprsd/commit/f19043ecd994ffd2d1c6958f08a47d5328c64258)
- Update routing for weatherpacket [`088cbb8`](https://github.com/craigerl/aprsd/commit/088cbb81eddd3bf947e2e2bd970b0f3ac094bd41)
- Cleaned up PluginManager [`7dfa4e6`](https://github.com/craigerl/aprsd/commit/7dfa4e6dbf1924b5ce1061e6be2d1a00ffd095d8)
- Cleaned up PluginManager [`220fb58`](https://github.com/craigerl/aprsd/commit/220fb58f9779946c33429613ff397c7082fe84eb)
- Fix PluginManager.get_plugins [`2ca3636`](https://github.com/craigerl/aprsd/commit/2ca36362ec5ce9f6083487eb903f2132ac91fcb2)
- Removed watchlist plugins [`f464ff0`](https://github.com/craigerl/aprsd/commit/f464ff0785b2b6a2869effa4d1c5cca706199de4)
- Removed Packet.send() [`4a65f52`](https://github.com/craigerl/aprsd/commit/4a65f52939b38eff8c664742c58b62e69ca24a51)
- Fix Rain reporting in WeatherPacket send. [`bbcd7c8`](https://github.com/craigerl/aprsd/commit/bbcd7c8a5bc3e457bbce2138029b236a7607c61e)
- Added rain formatting unit tests to WeatherPacket [`ce3b29f`](https://github.com/craigerl/aprsd/commit/ce3b29f99023964b4922806d476ddc2678edeee8)
- Removed references to old custom config [`7ccfc25`](https://github.com/craigerl/aprsd/commit/7ccfc253cf4d881b4888c3b4040dc9e119fb74dc)
- Added missing conf [`f4a6dfc`](https://github.com/craigerl/aprsd/commit/f4a6dfc8a0ccff5d6cdf3abf511eaae537e60eaa)
- Fix some unit tests and loading of CONF w/o file [`e9a954a`](https://github.com/craigerl/aprsd/commit/e9a954a8fd79059995f8e44832bea040c9a5320a)
- Dockerfile now produces aprsd.conf [`02e4f78`](https://github.com/craigerl/aprsd/commit/02e4f78d0e3be5098333263cfafb2cc3debdff81)
- Decouple admin web interface from server command [`ff39239`](https://github.com/craigerl/aprsd/commit/ff392395ed9e4eb8fcc46e8ec475ff82f033c45b)
- Update documentation and README [`c929689`](https://github.com/craigerl/aprsd/commit/c929689647159804209f1bd3711a563ba395cb18)
- Change ordering of starting up of server command [`83d2e70`](https://github.com/craigerl/aprsd/commit/83d2e708ebb68ce743a1b3db9e9bea42f3bcda32)
- Update regex processing and regex for plugins [`3d0bb8a`](https://github.com/craigerl/aprsd/commit/3d0bb8ae8e92c7a23352f06aa951c6b18a0c2da0)
- Added ObjectPacket [`ed284a4`](https://github.com/craigerl/aprsd/commit/ed284a42cc0b29357c1f2f3182db029874394216)
- Updated docker/bin/run.sh to use new conf [`79e7ed1`](https://github.com/craigerl/aprsd/commit/79e7ed1e915e62ed2392fed27d79da8619f3eef0)
- Updated Healthcheck to use rpc to call aprsd [`c5acdba`](https://github.com/craigerl/aprsd/commit/c5acdba6dee13bba189af106925cb33c8adf078e)
- Removed url option from healthcheck in dev [`fe2f7b5`](https://github.com/craigerl/aprsd/commit/fe2f7b5b71d3aba24f9530e3371450b800f8cc81)
- Added new docs files for 3.0.0 [`29b8764`](https://github.com/craigerl/aprsd/commit/29b8764124894f25849750890074a7e5a571000a)
- reworked usage of importlib.metadata [`a5520b2`](https://github.com/craigerl/aprsd/commit/a5520b2cd3b977079f1971f2ce6f383340304884)
- Cleaned up KISS interfaces use of old config [`0758a58`](https://github.com/craigerl/aprsd/commit/0758a581013fe0c3f0b69bb3d8d3087969e20673)
- Fixed pep8 failure [`6391c7e`](https://github.com/craigerl/aprsd/commit/6391c7eed691f912de49de0aa3e0a0fdb5a2edc2)
- Fixed save directory default [`233d49b`](https://github.com/craigerl/aprsd/commit/233d49bb4c3cf96f4979aa8e878635376cffad5b)
- Ensure server command main thread doesn't exit [`c5aba17`](https://github.com/craigerl/aprsd/commit/c5aba17ad1eee81bfbdae33ccfd375c0b92a2411)
- Update Changelog for 3.0.0 [`4a10511`](https://github.com/craigerl/aprsd/commit/4a10511d8bb58b9b7785f4469db6543e731f1418)

#### [v2.6.1](https://github.com/craigerl/aprsd/compare/v2.6.0...v2.6.1)

> 16 December 2022

- Collections fix [`#105`](https://github.com/craigerl/aprsd/pull/105)
- Update workflow [`40f23dc`](https://github.com/craigerl/aprsd/commit/40f23dcb482f39ba2fe233578bbb36f5d2da17b7)
- Fix for Collections change in 3.10 [`9d19502`](https://github.com/craigerl/aprsd/commit/9d19502dd80133d74b516a09addfd38bc088c241)
- remove armv7 build RUST sucks [`321c5a2`](https://github.com/craigerl/aprsd/commit/321c5a2c25cc88a93dc60c3ef351413473c76517)
- Add unit tests for webchat [`19e5cfa`](https://github.com/craigerl/aprsd/commit/19e5cfa9cc7605ee39be6869efb40261c33e4efb)
- Try and fix broken 32bit qemu builds on 64bit system [`87cbcaa`](https://github.com/craigerl/aprsd/commit/87cbcaa47fc52be03d7f6763e5d2142dc7d350a1)
- Fixed position report for webchat beacon [`9571b0b`](https://github.com/craigerl/aprsd/commit/9571b0bb38f444f5b52d3b36b9efd2e8e7a331d5)

#### [v2.6.0](https://github.com/craigerl/aprsd/compare/v2.5.9...v2.6.0)

> 12 December 2022

- change from device-detector to user-agents [`#103`](https://github.com/craigerl/aprsd/pull/103)
- Remove twine from dev-requirements [`#102`](https://github.com/craigerl/aprsd/pull/102)
- Add support for mobile browsers for webchat [`#101`](https://github.com/craigerl/aprsd/pull/101)
- Send GPS Beacon from webchat interface [`#100`](https://github.com/craigerl/aprsd/pull/100)
- Remove email validation [`#99`](https://github.com/craigerl/aprsd/pull/99)
- Small refactor [`#91`](https://github.com/craigerl/aprsd/pull/91)
- Update docs on using Docker [`#98`](https://github.com/craigerl/aprsd/pull/98)
- Bump dependencies to fix python 3.10 [`#89`](https://github.com/craigerl/aprsd/pull/89)
- Fix #92 (PyPI scraping) [`#96`](https://github.com/craigerl/aprsd/pull/96)
- README formatting fixes [`#93`](https://github.com/craigerl/aprsd/pull/93)
- Fix typo on exception [`#94`](https://github.com/craigerl/aprsd/pull/94)
- Fix plugins not installing via docker-compose [`#97`](https://github.com/craigerl/aprsd/pull/97)
- Merge pull request #96 from ranguli/fix-pypi-scraping [`#92`](https://github.com/craigerl/aprsd/issues/92)
- for 2.5.9 [`03a20eb`](https://github.com/craigerl/aprsd/commit/03a20ebb5caf95763fee270c157f6e802c5e68b4)
- Fix logging issue with log messages [`e739441`](https://github.com/craigerl/aprsd/commit/e739441268569748c42e059c02343e92dd00db64)
- Fixed up config option checking for KISS [`1c052a6`](https://github.com/craigerl/aprsd/commit/1c052a63c0ba896d43c06f1a06d73b73d2d2370e)
- Refactor utils to directory [`bed060f`](https://github.com/craigerl/aprsd/commit/bed060f1c5c4e2265c90ac9dbb8db4e81a530e0a)
- Refactored threads.py [`347a6d6`](https://github.com/craigerl/aprsd/commit/347a6d69f7825a408553a4ee08002917c5a6ab73)
- Fixed pep8 errors [`29b84b4`](https://github.com/craigerl/aprsd/commit/29b84b453be5bf1ab4ba0f40bae33bc5057e42c7)
- Moved trace.py to utils [`a628439`](https://github.com/craigerl/aprsd/commit/a62843920a6742cf22c966e6d2a05155f20aeb17)
- Moved log.py to logging [`1ccb2f7`](https://github.com/craigerl/aprsd/commit/1ccb2f76953d113df482902895d7014aee778195)
- Added webchat command [`585d55f`](https://github.com/craigerl/aprsd/commit/585d55f10dca57b8e1dcdadfe26415b1cfa40d7e)
- Fixed access to threads refactor [`5f28788`](https://github.com/craigerl/aprsd/commit/5f2878818006397c79f6438d7dc3fbeb26b2e31e)
- Use new aprsd.callsign as the main callsign [`ad79ed1`](https://github.com/craigerl/aprsd/commit/ad79ed1261702ae0f278e91d7369de02b20a0af3)
- Try sending raw APRSFrames to aioax25 [`2ce50d8`](https://github.com/craigerl/aprsd/commit/2ce50d886149d055357e44a0cbc2fddad81d7824)
- Allow web interface when running in Docker [`b1db08a`](https://github.com/craigerl/aprsd/commit/b1db08a08c3a3b812fcb32829a62218c2d3ae132)
- Merge pull request #95 from ranguli/patch-1 [`74e4e2c`](https://github.com/craigerl/aprsd/commit/74e4e2c4f5242218b17400ee37d12506c31faec1)
- Fix PyPI scraping [`9ffd320`](https://github.com/craigerl/aprsd/commit/9ffd320353a03ab469940f9dec87ad11a1efe9a0)
- Fix typo in docker-compose.yml [`389304c`](https://github.com/craigerl/aprsd/commit/389304c3f2bee31d8c743d6ba8759204b0b80d13)
- Update dev-requirements pip-tools [`7db2242`](https://github.com/craigerl/aprsd/commit/7db2242060d8146ff4d1372fbf72df7741522ad5)
- Added container build action [`b50f343`](https://github.com/craigerl/aprsd/commit/b50f343440febca1d040b2463b68011aa8404526)
- create master-build.yml [`1383352`](https://github.com/craigerl/aprsd/commit/1383352e7566b35b8a14fbe98b8ea1f8d118e382)
- Remove docker build from test [`f9d3bc4`](https://github.com/craigerl/aprsd/commit/f9d3bc433f754b788e2fc5a988f74944239812de)
- Only tag master build as master [`9671dac`](https://github.com/craigerl/aprsd/commit/9671dacb1cf4d3cdd8ed03d530ad07164b1e2449)
- remove linux/arm/v6 from docker platform build [`358aa59`](https://github.com/craigerl/aprsd/commit/358aa5904235adf36dd6ad994ba5b82fa9794537)
- Added rustc and cargo to Dockerfile [`3580425`](https://github.com/craigerl/aprsd/commit/3580425ca3ec9fa9bf6856e39aa58f3512a0dee0)
- remove arm build for now [`ab65836`](https://github.com/craigerl/aprsd/commit/ab6583666f8a3eb7853927f8a196c88a773d5a5b)
- Add remving existing requirements [`e5f60b5`](https://github.com/craigerl/aprsd/commit/e5f60b5ce1800bf1bdb39d7b6eea769a8ff646a4)
- Update packets to use wrapt [`967959e`](https://github.com/craigerl/aprsd/commit/967959e7b3d2d890da9476ca76a0ef1e8a3b163d)
- Update aprsd thread base class to use queue [`9b0c626`](https://github.com/craigerl/aprsd/commit/9b0c626b59406102cdab85b7a9de20cf53563953)
- Added click auto_envvar_prefix [`d717a22`](https://github.com/craigerl/aprsd/commit/d717a22717ac1b0422b253dea052fe405aed8292)
- Got webchat working with KISS tcp [`7d970cb`](https://github.com/craigerl/aprsd/commit/7d970cbe7029610aa2522c1c78bf60bf10b35417)
- Updated requirements [`075078b`](https://github.com/craigerl/aprsd/commit/075078b52029cb0544e2d154e6064b783167b615)
- Dump config with aprsd dev test-plugin [`fc1ca52`](https://github.com/craigerl/aprsd/commit/fc1ca525934c13a72c1e0315898776a57a675814)
- Removed TimeOpenCageDataPlugin [`528bdb9`](https://github.com/craigerl/aprsd/commit/528bdb99e73edb94c984c7db7ca00849128e1dc0)
- change github workflow [`17e7846`](https://github.com/craigerl/aprsd/commit/17e784629e18b8b7ac4275b49f5a50194e71460b)
- Fixed failing unit tests [`5acddbd`](https://github.com/craigerl/aprsd/commit/5acddbd466dca342e7eca03d58485cb1a50471e8)
- Remove python 3.7 from docker build github [`b41e4a9`](https://github.com/craigerl/aprsd/commit/b41e4a9ef3759ac819dc9740cfb276515d090fa7)
- Add support for building linux/arm/v7 [`117f81f`](https://github.com/craigerl/aprsd/commit/117f81f55fe1a3e4e347d1c0dfbdb97e0f553f52)
- Build on the source not released aprsd [`d9b3973`](https://github.com/craigerl/aprsd/commit/d9b39734e6a236485ab08f9c70f215fdd9dbb876)
- Fixed build.sh [`d1a0a98`](https://github.com/craigerl/aprsd/commit/d1a0a988f2cb2cbb015e4c00fa80bfa1db3d8a5f)
- specify Dockerfile-dev [`4111d16`](https://github.com/craigerl/aprsd/commit/4111d16aafe456cba998183db0e745edef4f7777)
- Allow passing in version to the Dockerfile [`d5e56b5`](https://github.com/craigerl/aprsd/commit/d5e56b553eac3f327057cedd5b03c69156e23a1c)
- added workflow for building specific version [`d40927d`](https://github.com/craigerl/aprsd/commit/d40927d1c3f0890f79cb76d8b0c537e0ecf887e6)
- remove linux/arm/v7 for official builds for now [`5add0f9`](https://github.com/craigerl/aprsd/commit/5add0f958d466172aa7a57b44e18bf27c8c0e3db)
- Ignore callsign case while processing packets [`44696fb`](https://github.com/craigerl/aprsd/commit/44696fbc56e57c1a0346074e3416e126ac1897ab)
- Allow werkzeug for admin interface. [`5067f74`](https://github.com/craigerl/aprsd/commit/5067f745ca01be677d012985bd3888f98095e041)
- Allow werkzeug for admin interface. [`98fe9da`](https://github.com/craigerl/aprsd/commit/98fe9daac5cc5c13f29aef401c935925cf8d2198)
- Add GPS beacon to mobile page [`ee96108`](https://github.com/craigerl/aprsd/commit/ee96108324ce729abb3683e94a69c9682ecc503f)
- remove dev setting for template [`726c8f4`](https://github.com/craigerl/aprsd/commit/726c8f4f2f26c8fc5c2b868d1e482e0e662e6ed3)
- Mark packets as acked in MsgTracker [`480094b`](https://github.com/craigerl/aprsd/commit/480094b0d47edeeac23323211147088e1f637d70)
- Refactored threads a bit [`51b80cd`](https://github.com/craigerl/aprsd/commit/51b80cd4eaa4441f4fb6c9344b7c4e99558811ff)
- Update to latest Makefile.venv [`e4f93a2`](https://github.com/craigerl/aprsd/commit/e4f93a2ab4dbc416a93a51ba14650531f17ee02c)
- Added pyopenssl for https for webchat [`6d34d9c`](https://github.com/craigerl/aprsd/commit/6d34d9c514857798f7b3dbc47e2a3e14b95493a0)
- Update Makefile for dev vs. run environments [`576301c`](https://github.com/craigerl/aprsd/commit/576301ca209f59ed621a20c9dbc8b4e55d7a76a3)
- Removed Makefile comment. [`935f820`](https://github.com/craigerl/aprsd/commit/935f820271dff5ee6b851f85becd5fb51d0780f9)
- Update requirements [`68472b0`](https://github.com/craigerl/aprsd/commit/68472b0d8402ddcf48164fcf8e2f11963aff8dd6)
- Prep for 2.6.0 release [`5891c71`](https://github.com/craigerl/aprsd/commit/5891c71483229f3554d7c5b126412e464956e1b3)
- Update Dockerfile and build.sh [`c1db238`](https://github.com/craigerl/aprsd/commit/c1db238719eba7e0834316e5618e220f4458685b)
- Update Dockerfile to 22.04 [`4fe99c3`](https://github.com/craigerl/aprsd/commit/4fe99c35b5ced1e79c679b28292d60c25271685c)
- Update workflow again [`a6015ad`](https://github.com/craigerl/aprsd/commit/a6015adecced632ae56703c95fb51546c9da2902)

#### [v2.5.9](https://github.com/craigerl/aprsd/compare/v2.5.8...v2.5.9)

> 26 January 2022

- update build for 2.5.8 [`79270f9`](https://github.com/craigerl/aprsd/commit/79270f95becc8ecf3912661a5bd3832ab5cd9341)
- Updated build and run for rich lib [`b00c8db`](https://github.com/craigerl/aprsd/commit/b00c8db3d6ddebe7f485a8888a52b87e43d8415a)
- FIX: logging exceptions [`6257c9e`](https://github.com/craigerl/aprsd/commit/6257c9ea908158bc68e37fd8984b0a3119deff0d)

#### [v2.5.8](https://github.com/craigerl/aprsd/compare/v2.5.7...v2.5.8)

> 7 January 2022

- Send Message command defaults to config [`a7bbde4`](https://github.com/craigerl/aprsd/commit/a7bbde4a439258691feb0429e371828d5b024a64)
- Added unit tests for dev test-plugin [`2f6e7e1`](https://github.com/craigerl/aprsd/commit/2f6e7e17e835d7b659cf3186c17d5975dd503019)
- Renamed virtualenv dir to .aprsd-venv [`610e40a`](https://github.com/craigerl/aprsd/commit/610e40aecdd75212249b75f0a23b09f4caa25e79)
- Updated list-plugins [`764730c`](https://github.com/craigerl/aprsd/commit/764730c123e020235615b4be8ab1d26b43fc96be)
- Removed debug code [`e8100d8`](https://github.com/craigerl/aprsd/commit/e8100d8777bc38423e9d20800d2b8cfce345dc14)
- For 2.5.8 [`29a60b7`](https://github.com/craigerl/aprsd/commit/29a60b7ed04a29de00d32e66ca42f4b204238389)

#### [v2.5.7](https://github.com/craigerl/aprsd/compare/v2.5.6...v2.5.7)

> 11 December 2021

- Fixed an KISS config disabled issue [`#79`](https://github.com/craigerl/aprsd/pull/79)
- Unify the logging to file and stdout [`#77`](https://github.com/craigerl/aprsd/pull/77)
- Added new feature to list-plugins command [`#76`](https://github.com/craigerl/aprsd/pull/76)
- Updated README examples [`7c653cc`](https://github.com/craigerl/aprsd/commit/7c653cc1007b3e7698ccde4132b89ebaf937fe92)
- more README.rst cleanup [`28b54c3`](https://github.com/craigerl/aprsd/commit/28b54c330d23f85938d1cebeb0a19839146931e1)
- Fixed a bug with multiple notify plugins enabled [`e57a2e2`](https://github.com/craigerl/aprsd/commit/e57a2e2ffcc4903e191447c5f7c9baaf5f76c34f)
- Updated Changelog [`7530bcf`](https://github.com/craigerl/aprsd/commit/7530bcf55c23e3e7470987edcd139c03db2e9e90)

#### [v2.5.6](https://github.com/craigerl/aprsd/compare/v2.5.5...v2.5.6)

> 7 December 2021

- Unittests [`#75`](https://github.com/craigerl/aprsd/pull/75)
- Rich logging [`#74`](https://github.com/craigerl/aprsd/pull/74)
- Added LOG_LEVEL env variable for the docker [`#73`](https://github.com/craigerl/aprsd/pull/73)
- Added python rich library based logging. [`1d5f76d`](https://github.com/craigerl/aprsd/commit/1d5f76defc3da693ba8b73b7ae655dc6e060ecb0)
- Add tracing for dev command [`1233137`](https://github.com/craigerl/aprsd/commit/1233137caf1c08114a2a87f11004b3e046198ac0)
- Fixed some pep8 errors [`b5b286e`](https://github.com/craigerl/aprsd/commit/b5b286e75c502edc7eee29e3b10450d41dea8d86)
- Fixed the NotifyPlugin [`055835c`](https://github.com/craigerl/aprsd/commit/055835cb3cb116797e10f925a843818d8a9633e6)
- Reduced the APRSIS connection reset to 2 minutes [`d3dd087`](https://github.com/craigerl/aprsd/commit/d3dd08714bb172d8804170e421283d6794a253c7)
- Small cleanup on packet logging [`96cc07d`](https://github.com/craigerl/aprsd/commit/96cc07d15f25f9b1b116d5723a9fea7153175f19)
- Added NotifyPlugin unit tests and more [`0ad791b`](https://github.com/craigerl/aprsd/commit/0ad791bdd917495d8acd43f1895bbd16535af5c6)
- Added py39 to tox for tests [`a5184fb`](https://github.com/craigerl/aprsd/commit/a5184fb98cb286d6fd34df749591944af6e8faf6)
- Updated pytest output [`e0e7514`](https://github.com/craigerl/aprsd/commit/e0e75149a9fb126f255c373bcba87c22b85ea22c)
- Added test_location to test LocationPlugin [`5d6ac5c`](https://github.com/craigerl/aprsd/commit/5d6ac5cf31836da967377bbc15e3aca6c0322a96)
- Added unit tests for USWeatherPlugin, USMetarPlugin [`8ea00e9`](https://github.com/craigerl/aprsd/commit/8ea00e98886db552a83a469441ee4ec8ef644aa4)
- Tightened up the packet logging [`440c8d5`](https://github.com/craigerl/aprsd/commit/440c8d54adbebfdfef77d0a1e0dd757a755f3e51)
- Changelog [`b7791eb`](https://github.com/craigerl/aprsd/commit/b7791eb4fa78878a426d0348ddbfbb36c650671c)

#### [v2.5.5](https://github.com/craigerl/aprsd/compare/v2.5.4...v2.5.5)

> 28 November 2021

- updated docker build [`deec249`](https://github.com/craigerl/aprsd/commit/deec249c45d8e1684212577fe85a9e9fc44f0567)
- fixed the failure during loading for objectstore [`5e50792`](https://github.com/craigerl/aprsd/commit/5e50792e805c0f8f6f034c7dc010f6918e9b64a7)
- Update requirements to use aprslib 0.7.0 [`e27887d`](https://github.com/craigerl/aprsd/commit/e27887db1a58e9c914e6ab24bd2d1806772600aa)

#### [v2.5.4](https://github.com/craigerl/aprsd/compare/v2.5.3...v2.5.4)

> 13 November 2021

- Fixed dev command missing initialization [`6fb6105`](https://github.com/craigerl/aprsd/commit/6fb610582df07b308d862f1af68fd922f9593ccd)
- Updated Changelog [`ade3c49`](https://github.com/craigerl/aprsd/commit/ade3c49e93602bd91c56021abda53da32691cf23)

#### [v2.5.3](https://github.com/craigerl/aprsd/compare/v2.5.2...v2.5.3)

> 12 November 2021

- Fix admin logging tab [`bda2ef0`](https://github.com/craigerl/aprsd/commit/bda2ef00dde8c4e46d931abaf0af133f76ade385)

#### [v2.5.2](https://github.com/craigerl/aprsd/compare/v2.5.1...v2.5.2)

> 12 November 2021

- Updated Changelog [`10e34d8`](https://github.com/craigerl/aprsd/commit/10e34d8634b305e3cf0a73ece77127fc69d084c8)
- Removed requirement for aprs.fi key [`7787dc1`](https://github.com/craigerl/aprsd/commit/7787dc1be4f1115c9b7e6ef6804e1e41eea777d2)
- Fix test failures [`152132b`](https://github.com/craigerl/aprsd/commit/152132b0ed9772d702ad6712ad2f6e7f8caad165)
- Healthcheck command doesn't need the aprsd.yml config [`8842fb1`](https://github.com/craigerl/aprsd/commit/8842fb1b441ed4d2ef441a71a5adc585465d765e)
- Don't require check-version command to have a config [`a8a6b1a`](https://github.com/craigerl/aprsd/commit/a8a6b1aa076d16ba22f9b4754d6f62ed0000ebbc)
- Added new list-plugins command [`446484e`](https://github.com/craigerl/aprsd/commit/446484e631bc70e83017dc9cec5799869a54e2d3)

#### [v2.5.1](https://github.com/craigerl/aprsd/compare/v2.5.0...v2.5.1)

> 9 November 2021

- Removed the stock plugin [`#72`](https://github.com/craigerl/aprsd/pull/72)
- Removed stock plugin. [`9469410`](https://github.com/craigerl/aprsd/commit/9469410929abed2947db41dca03ded7650365566)

#### [v2.5.0](https://github.com/craigerl/aprsd/compare/v2.4.2...v2.5.0)

> 9 November 2021

- Refactor cli [`#71`](https://github.com/craigerl/aprsd/pull/71)
- Fixed a problem with send-message command [`49f3ea8`](https://github.com/craigerl/aprsd/commit/49f3ea83392b98e5d1e362c37282819fb6f8dce7)
- Updated Changelog for 4.2.3 [`30df452`](https://github.com/craigerl/aprsd/commit/30df452e007b023e28dbeb1b7b19d702251bd045)
- Refactor the cli [`7d0006b`](https://github.com/craigerl/aprsd/commit/7d0006b0a6c4b05c14214609fcfe718ae7f0c146)
- Pep8 failures [`2ead6a9`](https://github.com/craigerl/aprsd/commit/2ead6a97da74cd9030f4a730ca2a40ba1d51ef05)
- Removed the need for FROMCALL in dev test-plugin [`3463c6e`](https://github.com/craigerl/aprsd/commit/3463c6eb96e44b7424c392c983c2942dd23d1f41)
- Added healthcheck to the cmds [`82def59`](https://github.com/craigerl/aprsd/commit/82def598f09abe02ad1fe63738040d886e568bf3)
- pep8 [`8287c09`](https://github.com/craigerl/aprsd/commit/8287c09ce5ce871db09d0e70b6b6f5d0e186fd00)
- Ensure common params are honored [`9187b97`](https://github.com/craigerl/aprsd/commit/9187b9781a537ccdc9a3e200a050693c5e6b9587)
- Fixed test-plugin [`617973f`](https://github.com/craigerl/aprsd/commit/617973f56145a96eadce808f2002088106a013d4)
- Reworked all the common arguments [`89727e2`](https://github.com/craigerl/aprsd/commit/89727e2b8e602662f22b6581ac06b6220e4e4631)
- Cleaned up some verbose output & colorized output [`cdcb98e`](https://github.com/craigerl/aprsd/commit/cdcb98e438df407394f95eb11a849cc5a2b066b7)
- Updated Dockerfile's and build script for docker [`059cc86`](https://github.com/craigerl/aprsd/commit/059cc86a1144e57ff8278341f02ceb860991f664)
- Updated for v2.5.0 [`5d17809`](https://github.com/craigerl/aprsd/commit/5d17809895512a033db141384050a00f6dc700a0)

#### [v2.4.2](https://github.com/craigerl/aprsd/compare/v2.4.1...v2.4.2)

> 2 November 2021

- Updated Changelog [`d2e8fe6`](https://github.com/craigerl/aprsd/commit/d2e8fe660f1ba293a11132424963ff775f0e2e81)
- Be more careful picking data to/from disk [`cefb581`](https://github.com/craigerl/aprsd/commit/cefb581bb802ae1d779bd3b895dd0dc8202b219c)
- Updated Changelog [`0d5b716`](https://github.com/craigerl/aprsd/commit/0d5b7166b3b787558b724d457054654965e8ae33)

#### [v2.4.1](https://github.com/craigerl/aprsd/compare/v2.4.0...v2.4.1)

> 25 October 2021

- Fixed email connecting to smtp server [`c8c23e6`](https://github.com/craigerl/aprsd/commit/c8c23e61850302c960dcf1d4993787070ec0fe32)
- Ensure plugins are last to be loaded. [`95fecd2`](https://github.com/craigerl/aprsd/commit/95fecd2394f77d8a64e94b44933cf6b80a9e43b6)

#### [v2.4.0](https://github.com/craigerl/aprsd/compare/v2.3.1...v2.4.0)

> 22 October 2021

- Refactoring/Cleanup [`#70`](https://github.com/craigerl/aprsd/pull/70)
- 2.3.1 Changelog [`65ea332`](https://github.com/craigerl/aprsd/commit/65ea33290ad54093ee5c05b727878e299461eafc)
- Refactor utils usage [`23e3876`](https://github.com/craigerl/aprsd/commit/23e3876e7b5d4a4b68101dd824afb2ec8ade5281)
- Refactored client classes [`270be94`](https://github.com/craigerl/aprsd/commit/270be947b59d47ba577091be119f6c8de522f3fd)
- Fixed email plugin's use of globals [`a6ed7b8`](https://github.com/craigerl/aprsd/commit/a6ed7b894b07d30a26394c3325af68ecca0afcd9)
- Added new Config object. [`491644e`](https://github.com/craigerl/aprsd/commit/491644ece68f251c939fe43483bd39647b4cfa10)
- Fixed notify plugins [`e3c5c7b`](https://github.com/craigerl/aprsd/commit/e3c5c7b4081eb2c6403195f756483f1f8a093cec)
- Updated dev to use plugin manager [`c097c31`](https://github.com/craigerl/aprsd/commit/c097c31258ecf8d2c23193b8045d0b12b227b2a1)
- Increase email delay to +10 [`fdc8c0c`](https://github.com/craigerl/aprsd/commit/fdc8c0cd66f6c4662e60b3a7259b792848deb747)
- Added some server startup info logs [`30671cb`](https://github.com/craigerl/aprsd/commit/30671cbdbc6b6f95af0574fe7fdba8d8d6c3474f)
- Fixed issue with flask config [`f8d87d0`](https://github.com/craigerl/aprsd/commit/f8d87d05bbf5e8f3861c42199907b210c1d9e91b)
- Fixed send-message after config/client rework [`725bb2f`](https://github.com/craigerl/aprsd/commit/725bb2fe35d6adf0cd56e2a866bee0233c46534a)
- removed usage of config.check_config_option [`5b17228`](https://github.com/craigerl/aprsd/commit/5b17228811d303c62fe82d85a4ddf14e15d87934)
- Updated build.sh [`db9cbf5`](https://github.com/craigerl/aprsd/commit/db9cbf51dfff9cee20bd545b06c69375e6e76589)
- Updated aprsd-dev to use config for logfile format [`2bf85db`](https://github.com/craigerl/aprsd/commit/2bf85db21ba23bef40ff2b866a42604ad4f3aecd)
- Added new HelpPlugin [`3b7924b`](https://github.com/craigerl/aprsd/commit/3b7924b13d157bf263a2c8061bfb9508e3a80069)
- Added plugin version to stats reporting [`004795d`](https://github.com/craigerl/aprsd/commit/004795dbf10aa9f747e86159a7b5394a98f87480)
- Added new SeenList [`278bb6e`](https://github.com/craigerl/aprsd/commit/278bb6e8825efec0f507ffa9482b1e78357f4099)
- Only call stop_threads if it exists [`9150f3b`](https://github.com/craigerl/aprsd/commit/9150f3b6ff36e0a836d003f58f5c4915ce3eab8e)
- Added -num option to aprsd-dev test-plugin [`9b22122`](https://github.com/craigerl/aprsd/commit/9b2212245f8c3f53ad4845fe69dffcf708eac7bb)
- Added objectstore Mixin [`4233827`](https://github.com/craigerl/aprsd/commit/4233827dea27277737812003ebeee9c3a98d473d)
- PEP8 cleanup [`135e21c`](https://github.com/craigerl/aprsd/commit/135e21cd8d1795b594660955e7ac22c7d4989513)
- Enable configuring where to save the objectstore data [`0d51634`](https://github.com/craigerl/aprsd/commit/0d51634ec28b5344ccaf279bf16246b339a483ec)
- Added SIGTERM to signal_handler [`8ee8b14`](https://github.com/craigerl/aprsd/commit/8ee8b149f1ca9d5dc82126212071cabf3ebf5e19)
- Ensure PacketList is initialized [`66c5d85`](https://github.com/craigerl/aprsd/commit/66c5d85b89c6edb5f18d283cd09342f7331f0710)
- Make sure SeenList update has a from in packet [`89701c8`](https://github.com/craigerl/aprsd/commit/89701c8a7084cd3b4f535f7741c7e76aca042f28)
- Fixed unit tests [`b0d25a7`](https://github.com/craigerl/aprsd/commit/b0d25a76f7f004936374675b7304b0e069a5e1b9)
- Converted MsgTrack to ObjectStoreMixin [`e009791`](https://github.com/craigerl/aprsd/commit/e009791b754d3ddde52609f836e67330d2f55e20)
- Updated Changelog for 2.4.0 release [`a3a3a5a`](https://github.com/craigerl/aprsd/commit/a3a3a5aa236508f1682fbcead45cc1d20abaf0b9)

#### [v2.3.1](https://github.com/craigerl/aprsd/compare/v2.3.0...v2.3.1)

> 13 September 2021

- Fixed packet processing issue with aprsd send-message [`69b215d`](https://github.com/craigerl/aprsd/commit/69b215d4d8784f00d81591f4063381fd6c35d965)
- Fixed issue of aprs-is missing keepalive [`560e152`](https://github.com/craigerl/aprsd/commit/560e1527425153088d7d10cbdcfa5ec5479898d5)

#### [v2.3.0](https://github.com/craigerl/aprsd/compare/v2.2.1...v2.3.0)

> 8 September 2021

- Send Message via admin Web interface [`#59`](https://github.com/craigerl/aprsd/pull/59)
- Added the ability to use direwolf KISS socket [`#50`](https://github.com/craigerl/aprsd/pull/50)
- Update Dockerfile to use 2.2.1 [`a7d79a6`](https://github.com/craigerl/aprsd/commit/a7d79a6e1b35164d9218ecc8e3abdf7a1503617c)
- New Admin ui send message page working. [`23cbf32`](https://github.com/craigerl/aprsd/commit/23cbf32814368fa504a1c7ce5fc1012fb899cfa0)
- Upgraded the send-message POC to use websockets [`c941379`](https://github.com/craigerl/aprsd/commit/c941379a5c3983568253a09a68613dcb42d68340)
- Cleaned up some pep8 failures [`84ce60b`](https://github.com/craigerl/aprsd/commit/84ce60bc50a6d3123d9a944e0098660e31d32bf9)
- Rebased from master [`54c9a6b`](https://github.com/craigerl/aprsd/commit/54c9a6b55a8a102d44109ae454b4c76240ae0780)
- Got TX/RX working with aioax25+direwolf over TCP [`f4dee4b`](https://github.com/craigerl/aprsd/commit/f4dee4b202c3b29e265f340ae50f2f850f3fb1c8)
- Updated Admin UI to show KISS connections [`ca438c9`](https://github.com/craigerl/aprsd/commit/ca438c9c60dd7152d9b3e5648177cce84988bd8b)
- Updated requirements [`c537b54`](https://github.com/craigerl/aprsd/commit/c537b54df64c9a47dd60764969d54afda9d766c8)
- Added send-message to the main admin UI [`c58031d`](https://github.com/craigerl/aprsd/commit/c58031d77275b5529f5eeb64aa04e466ffb7b85d)
- Removed values from forms [`1635feb`](https://github.com/craigerl/aprsd/commit/1635feb8205d42e36cc15674ab75c68000d18528)
- Fixed email validation [`0f6df5f`](https://github.com/craigerl/aprsd/commit/0f6df5fc05819787a5c57108a39495775d4e6959)
- Fixed issue at startup with notify plugin [`1ea6c05`](https://github.com/craigerl/aprsd/commit/1ea6c05decb736967f6fc9e431c3a72aa2f71871)
- Remove some noisy trace in email plugin [`558710d`](https://github.com/craigerl/aprsd/commit/558710d348fac8f3cb3f90e6326c0e163a7b0dda)
- Fixed a problem with the AVWX plugin not working [`8ada789`](https://github.com/craigerl/aprsd/commit/8ada789d4dd37b12277d74403effde48eaf36454)
- Allow passing in aprsis_client [`62ce84b`](https://github.com/craigerl/aprsd/commit/62ce84b3157968bd3b54a80870f6508d0f15d643)
- Update dev.py [`dfaf3aa`](https://github.com/craigerl/aprsd/commit/dfaf3aa3d1c36c992bee22405ce4625b7e1b11ad)
- Added self creating Makefile help target [`d643ca3`](https://github.com/craigerl/aprsd/commit/d643ca38921f078a11cfeb534ebdf8e83e5ed350)
- Updated Makefile clean target [`4f088e0`](https://github.com/craigerl/aprsd/commit/4f088e0a4a36d313dd87a5819ed1e238f83a6667)
- Added Logfile tab in Admin ui [`d6b3df9`](https://github.com/craigerl/aprsd/commit/d6b3df93f12fb7ce145e5756e776258222549fae)
- Removed fixed size on logging queue [`9eff99d`](https://github.com/craigerl/aprsd/commit/9eff99dde712c2648342323a68d0ee6a1ef295e4)
- Updated Dockerfile to use v2.3.0 [`605911c`](https://github.com/craigerl/aprsd/commit/605911cb841099f5b00af773833e542911dbec23)
- Ensure plugin threads are valid [`7e6dffb`](https://github.com/craigerl/aprsd/commit/7e6dffb34bfca01f1691b3ee8421a03a655c5e2c)
- Added enabled flag for every plugin object [`3faf41b`](https://github.com/craigerl/aprsd/commit/3faf41b203219fb3df237184e02daf2b9191a0ec)
- Enable plugins to return message object [`1b9a993`](https://github.com/craigerl/aprsd/commit/1b9a9935fc96a2ce6192c9408517110e0fcfd5fb)
- Prep 2.3.0 [`4164e89`](https://github.com/craigerl/aprsd/commit/4164e890165130c49a2e996f7040b142432684a9)

#### [v2.2.1](https://github.com/craigerl/aprsd/compare/v2.2.0...v2.2.1)

> 25 August 2021

- Silence some log noise [`ec92b07`](https://github.com/craigerl/aprsd/commit/ec92b07e31c622181f5699692bc8143bc6ef7a99)
- Update Changelog for 2.2.1 [`44c4dd6`](https://github.com/craigerl/aprsd/commit/44c4dd69c636abea7d0fd6dba5156a55d7f56586)

#### [v2.2.0](https://github.com/craigerl/aprsd/compare/v2.1.0...v2.2.0)

> 25 August 2021

- Refactor Message processing and MORE [`#69`](https://github.com/craigerl/aprsd/pull/69)
- Fixed aprsd-dev [`d71b0df`](https://github.com/craigerl/aprsd/commit/d71b0df31469e7ac12d4edcf8a1c8d6c6c74648c)
- Cleanup of the README.rst [`e8ffaa9`](https://github.com/craigerl/aprsd/commit/e8ffaa92b6c37c06d8059ef97b033c4f79ad938d)
- Updated slack channel link [`2b69446`](https://github.com/craigerl/aprsd/commit/2b694462f02eee1448aabc827b5a8e35a7919f25)
- Fixed LOG.debug issue in weather plugin [`f1f8aed`](https://github.com/craigerl/aprsd/commit/f1f8aed8c477f6298fc1a7c471a3cee06844d306)
- Updated tox.ini [`d6643a8`](https://github.com/craigerl/aprsd/commit/d6643a8e965ad5ee2a48ec57e0e2b9667ad2e497)
- Added threads functions to APRSDPluginBase [`86777d8`](https://github.com/craigerl/aprsd/commit/86777d838cdb69b5fdedadf785d81479be94ba4d)
- Added tracking plugin processing [`8e627c9`](https://github.com/craigerl/aprsd/commit/8e627c98b3cbd058417273864bdae8bd2148346d)
- Use Gray instead of Black for code formatting. [`e175f77`](https://github.com/craigerl/aprsd/commit/e175f773474b33750a90ad66b55c3bd90b3fd71f)
- Rebase from master and run gray [`8b5f21e`](https://github.com/craigerl/aprsd/commit/8b5f21eece6618385fbed6c130e17099414d8b73)
- Updated select timeouts [`0f384b0`](https://github.com/craigerl/aprsd/commit/0f384b0e856403611dfb00dd6bce63bbcfb665a9)
- Added days to uptime string formatting [`2e9b42d`](https://github.com/craigerl/aprsd/commit/2e9b42d7af4a96c3abdcab5853ba380ef0adc474)
- Removed TXThread [`61967b5`](https://github.com/craigerl/aprsd/commit/61967b5fe8a088106124c5b0ce35a471be14c795)
- Removed Black code style reference [`daf1e21`](https://github.com/craigerl/aprsd/commit/daf1e21b45a59964614c1575d25b322034d567af)
- Updated overview image [`d5d0064`](https://github.com/craigerl/aprsd/commit/d5d00643fac9f97bf5054f6f473ab0113b6175a3)
- Updated Changelog for v2.2.0 [`8190353`](https://github.com/craigerl/aprsd/commit/81903534edeb804afd547ce564af0b35418fca40)

#### [v2.1.0](https://github.com/craigerl/aprsd/compare/v2.0.0...v2.1.0)

> 13 August 2021

- Enable multiple replies for plugins [`#68`](https://github.com/craigerl/aprsd/pull/68)
- Added showing symbol images to watch list [`be81794`](https://github.com/craigerl/aprsd/commit/be8179415ab205e09c05f116495d0dc87a48f865)
- Updated the charts Added the packets chart [`6740ff8`](https://github.com/craigerl/aprsd/commit/6740ff80be124e9723bd7e046d91001394a51a84)
- Fixed time plugin [`ed4995b`](https://github.com/craigerl/aprsd/commit/ed4995b6eb5726fe756bf6a3ca6b6dc1d040ac3f)
- Put in a fix for aprslib parse exceptions [`840c8a9`](https://github.com/craigerl/aprsd/commit/840c8a990ee1a12ec8f7930cadf1b440da403ace)
- Prep for v2.1.0 [`691b18f`](https://github.com/craigerl/aprsd/commit/691b18fd1cb40f3089294e8786fdf9aa2066bf22)

### [v2.0.0](https://github.com/craigerl/aprsd/compare/v1.6.1...v2.0.0)

> 17 July 2021

- Reworked the notification threads and admin ui. [`#66`](https://github.com/craigerl/aprsd/pull/66)
- Refactor the plugin interface and manager [`#65`](https://github.com/craigerl/aprsd/pull/65)
- Add admin UI tabs for charts, messages, config [`#64`](https://github.com/craigerl/aprsd/pull/64)
- Dump out the config during startup [`#63`](https://github.com/craigerl/aprsd/pull/63)
- Bump urllib3 from 1.26.4 to 1.26.5 [`#61`](https://github.com/craigerl/aprsd/pull/61)
- Added aprsd version checking [`#60`](https://github.com/craigerl/aprsd/pull/60)
- Bump urllib3 from 1.26.3 to 1.26.4 [`#56`](https://github.com/craigerl/aprsd/pull/56)
- Prep for v1.6.1 release [`55862a2`](https://github.com/craigerl/aprsd/commit/55862a279014aeda7225055e14eb6d140415a6fe)
- Update README.rst [`2a5ef58`](https://github.com/craigerl/aprsd/commit/2a5ef5829568fa58a5d92b0859c1c649f9073532)
- Update README.rst [`970b32f`](https://github.com/craigerl/aprsd/commit/970b32f23824c670aae920238b9ef0814f9cd73f)
- Update my callsign [`b8dc6a3`](https://github.com/craigerl/aprsd/commit/b8dc6a329b1cbd9ca0211d16b4cdb32a2ed6b37c)
- Updated INSTALL.txt [`9de0df3`](https://github.com/craigerl/aprsd/commit/9de0df31eb75f9ce2de7ebb0c7f96ffc0613de55)
- Added message counts for each plugin. [`3ae5717`](https://github.com/craigerl/aprsd/commit/3ae571745299e7fda86b588b8140f8e58b9ff435)
- Removed a noisy debug log [`1c66555`](https://github.com/craigerl/aprsd/commit/1c665554507a74999f279d30297266d233b35aca)
- Added messages count to admin messages list. [`5afc7fb`](https://github.com/craigerl/aprsd/commit/5afc7fb6643b932c95b0de554110773f3b7377c1)
- reworked the admin ui to use semenatic ui more [`3c45d8b`](https://github.com/craigerl/aprsd/commit/3c45d8bd0f1d90800df7b1d4367ce12d9bf98b92)
- Add new watchlist feature [`1a1fcba`](https://github.com/craigerl/aprsd/commit/1a1fcba1c4152d2d6a869d306d6450bda087c1ee)
- Fixed the Ack thread not resending acks [`562ae52`](https://github.com/craigerl/aprsd/commit/562ae52c1effcca092ba5cc9451b29cd01c1947d)
- Move version string output to top of log [`7dc4fb3`](https://github.com/craigerl/aprsd/commit/7dc4fb3e7765b42422ced04a93342234d83085fa)
- Updated overview images [`90a44bb`](https://github.com/craigerl/aprsd/commit/90a44bb5ed6179ec2afad5d354a260d6f6bc3c3e)
- Fixed small bug with packets get_packet_type [`3d38402`](https://github.com/craigerl/aprsd/commit/3d38402be241171e92ba8e3b1bf50ee2df5a301e)
- Updated docs for 2.0.0 [`b4713b2`](https://github.com/craigerl/aprsd/commit/b4713b269488bc35740d305da7c466588deef98b)

#### [v1.6.1](https://github.com/craigerl/aprsd/compare/v1.6.0...v1.6.1)

> 5 April 2021

- Added aprsd web index page [`#54`](https://github.com/craigerl/aprsd/pull/54)
- Bump lxml from 4.6.2 to 4.6.3 [`#53`](https://github.com/craigerl/aprsd/pull/53)
- Bump pygments from 2.7.3 to 2.7.4 [`#55`](https://github.com/craigerl/aprsd/pull/55)
- Bump jinja2 from 2.11.2 to 2.11.3 [`#52`](https://github.com/craigerl/aprsd/pull/52)
- Bump urllib3 from 1.26.2 to 1.26.3 [`#51`](https://github.com/craigerl/aprsd/pull/51)
- Updated README docs [`b6ba90d`](https://github.com/craigerl/aprsd/commit/b6ba90de539bf6ff6dd5e384aece0c6e3384c0fd)
- Dockerfile: Make creation of /config quiet failure [`2d5bb85`](https://github.com/craigerl/aprsd/commit/2d5bb85071138813ec261d478a5a5168e2b5cfc8)
- Updated Dockerfile for multiplatform builds [`c177748`](https://github.com/craigerl/aprsd/commit/c1777483405b8c208ae0795e636c1b58390c37df)
- Updated Dockerfile for multiplatform builds [`f0034fc`](https://github.com/craigerl/aprsd/commit/f0034fc517fbb8d35c6067b424333f46e14d1480)
- Updated Dockerfile and build.sh [`9f66774`](https://github.com/craigerl/aprsd/commit/9f66774541404b86ffd3bbea3c68cc3dcf4751a3)
- Added plugin live reload and StockPlugin [`e6cafeb`](https://github.com/craigerl/aprsd/commit/e6cafeb3d27f656ffd0da765db9cb5be3c95c035)
- Require python 3.7 and &gt; [`933917b`](https://github.com/craigerl/aprsd/commit/933917bf9d0ca94969567668832977ecbbfadfbd)
- Added Dockerfile-dev and updated build.sh [`239e784`](https://github.com/craigerl/aprsd/commit/239e784d51f975ec0c62638aa9cabfaf01f4dd46)
- Added log format and dateformat to config file [`0a038da`](https://github.com/craigerl/aprsd/commit/0a038dae4457b9b7c98cdfb438740baab752f05c)
- Updated web stats index to show messages and ram usage [`c7d10f5`](https://github.com/craigerl/aprsd/commit/c7d10f53a36f84304190dea2c7154f827b2cf479)
- Added acks with messages graphs [`f10372b`](https://github.com/craigerl/aprsd/commit/f10372b320ce5ce8403cee849b769ece6f9d4617)
- Make the index page behind auth [`6297ebe`](https://github.com/craigerl/aprsd/commit/6297ebeb670d1ce986795f55ab15750da8ae0f44)
- Provide an initial datapoint on rendering index [`fb979ed`](https://github.com/craigerl/aprsd/commit/fb979eda9427355c0fc8d1d981643c9adc799e40)
- Added showing APRS-IS server to stats [`d1a2a14`](https://github.com/craigerl/aprsd/commit/d1a2a143709fb5be9e9bd7d8179895b1300feb1d)
- Added log config for flask and lnav config file [`34d2c31`](https://github.com/craigerl/aprsd/commit/34d2c31d90269ddcd5341a669eb6051a91801dbb)
- Added callsign to the web index page [`123266c`](https://github.com/craigerl/aprsd/commit/123266c9adbd025f8ad7549709866486183426b8)
- Reworked the stats dict output and healthcheck [`bf8d2c6`](https://github.com/craigerl/aprsd/commit/bf8d2c6088d9c09783b8d68de4c88fe77fbbc9f5)
- Added email messages graphs [`d6806c4`](https://github.com/craigerl/aprsd/commit/d6806c429ce1de162e4fbc9dab311bdb63765795)
- Force all the graphs to 0 minimum [`3ac42ed`](https://github.com/craigerl/aprsd/commit/3ac42edd823723ed06e86de0486de15a111b6275)
- Update Dockerfile-dev to work with startup [`3f21934`](https://github.com/craigerl/aprsd/commit/3f21934c0f271b8de916df4d7abe551c4266f2cd)
- Updated stats output for KeepAlive thread [`7b019d2`](https://github.com/craigerl/aprsd/commit/7b019d24f0af52a599c026af1c1b21a64e6228bb)
- Fixed version unit tests [`23c219f`](https://github.com/craigerl/aprsd/commit/23c219f0d2ef4ac0c65d22ac9810b5a30d99b251)
- Reworked Makefile to use Makefile.venv [`a4a06c9`](https://github.com/craigerl/aprsd/commit/a4a06c9763d30bfd6616b5035100a7b6eb51bedf)
- ignore Makefile.venv [`4aac17d`](https://github.com/craigerl/aprsd/commit/4aac17dc9869564a777f292c486d228893cb7b8a)
- Removed debug log for KeepAlive thread [`fc1ee19`](https://github.com/craigerl/aprsd/commit/fc1ee195163ede96e1c457bdf8fa7844925c116f)

#### [v1.6.0](https://github.com/craigerl/aprsd/compare/v1.5.1...v1.6.0)

> 12 February 2021

- Bump cryptography from 3.3.1 to 3.3.2 [`#49`](https://github.com/craigerl/aprsd/pull/49)
- Branch to stabilize for the 1.6.0 release. [`#47`](https://github.com/craigerl/aprsd/pull/47)
- Bump bleach from 3.2.1 to 3.3.0 [`#48`](https://github.com/craigerl/aprsd/pull/48)
- Added healthcheck app [`#46`](https://github.com/craigerl/aprsd/pull/46)
- Flask [`#45`](https://github.com/craigerl/aprsd/pull/45)
- Allow email to be disabled. [`#44`](https://github.com/craigerl/aprsd/pull/44)
- Reworked the config file and options [`#43`](https://github.com/craigerl/aprsd/pull/43)
- Added openweathermap weather plugin [`#41`](https://github.com/craigerl/aprsd/pull/41)
- Added new time plugins [`#40`](https://github.com/craigerl/aprsd/pull/40)
- Fixed TimePlugin timezone issue [`#38`](https://github.com/craigerl/aprsd/pull/38)
- Added aprsd-dev plugin test cli and WxPlugin [`#35`](https://github.com/craigerl/aprsd/pull/35)
- Updated readme to include readthedocs link [`b9f6fcf`](https://github.com/craigerl/aprsd/commit/b9f6fcfa0c9703e5a27d26042703aa7574dedbf2)
- change query char from ? to ! [`7de2820`](https://github.com/craigerl/aprsd/commit/7de2820caa01df24a71e014c80aecb289d4cc39a)
- fix git with install.txt [`5fb363c`](https://github.com/craigerl/aprsd/commit/5fb363c9e72f77d7181789f4f9e594b6bda722a4)
- remove fortune white space [`ca05676`](https://github.com/craigerl/aprsd/commit/ca05676c98cd8c7b98a190fe1e53564ef5fc7b09)
- First hack at flask [`9630279`](https://github.com/craigerl/aprsd/commit/9630279d14c9e8921bfbbdd260ec7b14f8f3ccd5)
- Fixed extracting lat/lon [`fefb626`](https://github.com/craigerl/aprsd/commit/fefb626c9744952a91fcb3b02640d9dbd228df6b)
- Updated documentation and config output [`a35cb04`](https://github.com/craigerl/aprsd/commit/a35cb04ca725eacda5473dd38c0760934ca5957c)
- Added Flask web thread and stats collection [`5c94934`](https://github.com/craigerl/aprsd/commit/5c949343ec868f341c6ad3ebcff7a350afe0d620)
- Add flask and flask_classful reqs [`cae8746`](https://github.com/craigerl/aprsd/commit/cae87466903de55623c16f2f72138bd6f773ec89)
- updated .gitignore [`8bfdefd`](https://github.com/craigerl/aprsd/commit/8bfdefd5ad7138948c80122557d2e39b43f79c22)
- Cleaned up the KeepAlive output [`51894bb`](https://github.com/craigerl/aprsd/commit/51894bbab88bada9622c4cf31f1d928943ed8ac5)
- Fixed an issue with LocationPlugin [`0d18e54`](https://github.com/craigerl/aprsd/commit/0d18e54969d79842666a79a9f7f5b7ae895fa02e)
- Added flask messages web UI and basic auth [`aa29069`](https://github.com/craigerl/aprsd/commit/aa290692abf927ca2398344506a401614d19acde)
- Fixed resend email after config rework [`c1e6792`](https://github.com/craigerl/aprsd/commit/c1e67927218a9d55466f4a7f43dd0e44f7656fcc)
- debug around EmailThread hanging or vanishing [`3ca0eef`](https://github.com/craigerl/aprsd/commit/3ca0eeff56946b4cff5937d6980743f254c88fa3)
- more debug around email thread [`cfb1724`](https://github.com/craigerl/aprsd/commit/cfb172481d6ea4a8e4b97258fc7c4adbd0a69919)
- Enable debug logging for smtp and imap [`030b025`](https://github.com/craigerl/aprsd/commit/030b02551fc1c23882a4ef625a92718e62b67af2)
- duplicate email messages from RF would generate usage response [`57d768e`](https://github.com/craigerl/aprsd/commit/57d768e0107e9e22efca1809b7c527d85462d08d)
- Fixed email login issue. [`94bad95`](https://github.com/craigerl/aprsd/commit/94bad95e26c5b7420d48b4f0eadf832f09c3b45c)
- Added tracing facility [`af48c43`](https://github.com/craigerl/aprsd/commit/af48c43eb2461d644e7d13bcd92c6b1477d65c1c)
- Fixed tox pep8 failure for trace [`0b44fc0`](https://github.com/craigerl/aprsd/commit/0b44fc08eb66d58e7e9ee4cf62107526ad7b4d04)
- Added memory tracing in keeplive [`db2b537`](https://github.com/craigerl/aprsd/commit/db2b537317b35795380f1d0d8390b6314e162a21)
- EmailThread was exiting because of IMAP timeout, added exceptions for this [`47135c6`](https://github.com/craigerl/aprsd/commit/47135c60862852d71be0f9873f474f48fac6f7dd)
- Wrap all imap calls with try except blocks [`a5cc274`](https://github.com/craigerl/aprsd/commit/a5cc274ff54b0bee51c3a901f7c9efc287b9a471)
- Wrap another server call with try except [`131919b`](https://github.com/craigerl/aprsd/commit/131919bdfbf122e33d482bddc0978a16ac68572f)
- Removed some noisy debug log. [`9ba44a0`](https://github.com/craigerl/aprsd/commit/9ba44a076ca243922bb7149169d56cf6c294334b)
- Moved docker related stuffs to docker dir [`24edcad`](https://github.com/craigerl/aprsd/commit/24edcad60a5218dcafaf38115524dc471ad4b874)
- Updated path of run.sh for docker build [`7df6462`](https://github.com/craigerl/aprsd/commit/7df6462d91300fc034779995891aefbc388bd836)
- 1.6.0 release prep [`a266c98`](https://github.com/craigerl/aprsd/commit/a266c987fd898518c4a783666d6531ed109381d5)

#### [v1.5.1](https://github.com/craigerl/aprsd/compare/v1.5.0...v1.5.1)

> 15 January 2021

- Update INSTALL.txt [`47ccce5`](https://github.com/craigerl/aprsd/commit/47ccce53ea60d71b678b1f67b6a514d4a83c8a78)
- Updated README to fix pypi page [`98e3c24`](https://github.com/craigerl/aprsd/commit/98e3c246adaaf450a9b06b0589011cd940d5bb4c)
- Updated Changelog for v1.5.1 [`658e6b6`](https://github.com/craigerl/aprsd/commit/658e6b62027b300909e9e9e7cf131f4f93d66ca1)

#### [v1.5.0](https://github.com/craigerl/aprsd/compare/v1.1.0...v1.5.0)

> 15 January 2021

- add null reply for send_email [`#33`](https://github.com/craigerl/aprsd/pull/33)
- Updated README with more workflow details [`#31`](https://github.com/craigerl/aprsd/pull/31)
- Added Makefile for easy dev setup [`#34`](https://github.com/craigerl/aprsd/pull/34)
- backout my patch that broke tox, trying to push to craiger-test branch [`#32`](https://github.com/craigerl/aprsd/pull/32)
- Threads [`#26`](https://github.com/craigerl/aprsd/pull/26)
- Reworked messaging lib [`9768003`](https://github.com/craigerl/aprsd/commit/9768003c2a384389a0b6427a7e761efc5675a2ea)
- reworked threading [`f65707c`](https://github.com/craigerl/aprsd/commit/f65707cb8cc10c84a3cc0faafdc871de93d20ee9)
- Added some plugin unit tests [`171703a`](https://github.com/craigerl/aprsd/commit/171703ac1a603661debda12278133ca14cc10c6f)
- Added FortunePlugin unit test [`9d3ede6`](https://github.com/craigerl/aprsd/commit/9d3ede6e71313dd5800c091c67b11b9682057ae4)
- Creation of MsgTrack object and other stuff [`2e90c0b`](https://github.com/craigerl/aprsd/commit/2e90c0bdbb2ee37923b61eb6cc5cdd695d99f53d)
- Added support to save/load MsgTrack on exit/start [`2659a0b`](https://github.com/craigerl/aprsd/commit/2659a0b3b945bcbf82605a3ac0384919ee73676b)
- Added QueryPlugin [`28f3daf`](https://github.com/craigerl/aprsd/commit/28f3daf6d07e82ccb77ebd985726790ebc4cd854)
- Added QueryPlugin resend all delayed msgs or Flush [`af0d449`](https://github.com/craigerl/aprsd/commit/af0d4491c39bec3a8837c90b14db80b4e4c8c45b)
- Update Changelog for v1.5.0 [`8bd8b95`](https://github.com/craigerl/aprsd/commit/8bd8b95b3550d65414ef7c75398ba35af246919f)
- Added pre-commit hooks [`75f610d`](https://github.com/craigerl/aprsd/commit/75f610d9710e155beb3b32f679514d2d8c482064)
- Updated README to include development env [`25d948b`](https://github.com/craigerl/aprsd/commit/25d948b0ee95f9bd30d9688345ba54d41587e180)
- Added more pre-commit hook tests [`4c0150d`](https://github.com/craigerl/aprsd/commit/4c0150dd975fc6c2303e9eae937abafc6a5f33bc)
- don't tell radio emails were sent, ack is enuf [`99c5867`](https://github.com/craigerl/aprsd/commit/99c58671626f65d2b1b6a39c6094404e8ee1188e)
- Fixed failures caused by last commit [`e83ee31`](https://github.com/craigerl/aprsd/commit/e83ee31310d2984321c67f1de3b74adb17dd09d9)
- Cleaned out old ack_dict [`dbc891f`](https://github.com/craigerl/aprsd/commit/dbc891f7385f03d4b8871007fd3bd9492128b580)
- Lots of fixes [`231c15b`](https://github.com/craigerl/aprsd/commit/231c15b1af4bb384644efcfded90d0bc6c0e8ec2)
- removed double-quote-string-fixer [`a7c2043`](https://github.com/craigerl/aprsd/commit/a7c20430fe0611af7c757900adccd98c26cb4c94)
- Fixed email shortcut lookup [`9f4cc27`](https://github.com/craigerl/aprsd/commit/9f4cc27a11966b9fe6d9ce3503a7100c44258569)
- Updated Makefile [`c51a945`](https://github.com/craigerl/aprsd/commit/c51a9452d94fc9a4879eb698eaf648a81bbd0d5f)
- refactor Plugin objects to plugins directory [`a385d17`](https://github.com/craigerl/aprsd/commit/a385d171bd43291f8ed3346169a358f59b002d52)
- refactor Plugin objects to plugins directory [`d5a34b4`](https://github.com/craigerl/aprsd/commit/d5a34b4d11dd8350b6b27d1a70b349544f929160)
- Added Sphinx based documentation [`ee2aeb5`](https://github.com/craigerl/aprsd/commit/ee2aeb5157344ea02852c61e6acb25c3e7272f28)
- swap Query command characters a bit [`a334623`](https://github.com/craigerl/aprsd/commit/a33462327a25ff807a6df2d50222b1cc79475729)
- undo git disaster [`45dd3f0`](https://github.com/craigerl/aprsd/commit/45dd3f0205e851bd50bfbcf74864f31960496816)
- Fix broken test [`1763e94`](https://github.com/craigerl/aprsd/commit/1763e94f937258c96bd321e1ee817b67b71ac39b)
- switch command characters for query plugin [`e7f2ebf`](https://github.com/craigerl/aprsd/commit/e7f2ebf17ed47e7acd0b4b2511a325603f437580)
- Updated build for docs  tox -edocs [`bd35a61`](https://github.com/craigerl/aprsd/commit/bd35a610ffe4a3cdccd123d10a0a39e61ad261ed)
- Added some more badges to readme files [`7423df6`](https://github.com/craigerl/aprsd/commit/7423df6b25d358f3c170f51b32762ccb98f7684a)
- Disable MX record validation [`e6dee3a`](https://github.com/craigerl/aprsd/commit/e6dee3a5b052cca12b98dc63dc102cb84520ad3a)
- Added APRSD system diagram to docs [`cc0d0fd`](https://github.com/craigerl/aprsd/commit/cc0d0fd523a4029ef66d50351114ef8c0f2bf9ed)
- change query character syntax, don't reply that we're resending stuff [`0aa7fe7`](https://github.com/craigerl/aprsd/commit/0aa7fe7a14790326a9c6cbf4c50b3c87d548b233)
- Updated MsgTrack restart_delayed [`1ce2a56`](https://github.com/craigerl/aprsd/commit/1ce2a56140566b1f1fccc7eff3f0b84b45c01578)
- Added unit test for QueryPlugin [`68e6f5b`](https://github.com/craigerl/aprsd/commit/68e6f5b98619e4bd5480accc5c8961bcd729264a)
- update query plugin to resend last N messages. syntax:  ?rN [`d9141dc`](https://github.com/craigerl/aprsd/commit/d9141dc2d086f06c228751732fa58edcd1754f22)
- expect different reply from query plugin [`e1a292d`](https://github.com/craigerl/aprsd/commit/e1a292d8e0b03dbab6e705280decd79d87c6cb07)
- Extend APRS.IS object to change login string [`ac4c3d6`](https://github.com/craigerl/aprsd/commit/ac4c3d6562b9a6802ae069c21023d4016c146c7d)
- Extend APRS.IS object to change login string [`5de1b3e`](https://github.com/craigerl/aprsd/commit/5de1b3e305b4afacf417e7cff7a06e067ae16f80)
- getting out of git hell with client.py problems [`76bbdfc`](https://github.com/craigerl/aprsd/commit/76bbdfc728d01965a684be885add49853c643d21)
- Fixed fortune plugin failures [`7ab2613`](https://github.com/craigerl/aprsd/commit/7ab26135c2410422ca17f87efa278049146515da)
- Fixed unit test for fortune plugin [`9470802`](https://github.com/craigerl/aprsd/commit/94708024da3e5db16dd67ad3582b111f705b1d89)
- Added a fix for failed logins to APRS-IS [`3dd23fa`](https://github.com/craigerl/aprsd/commit/3dd23fa2ad1d248c815df4b60915a79bd01a2203)
- Added new config for aprs.fi API Key [`bdeaf63`](https://github.com/craigerl/aprsd/commit/bdeaf6348a5fa48c4aa65f9c8c4f9bf65d7d7689)
- Added send-message login checking and --no-ack [`90c4c6c`](https://github.com/craigerl/aprsd/commit/90c4c6c59dbfc773087111c1a6a73e04c9883d23)
- Fixed --quiet option [`f022a3e`](https://github.com/craigerl/aprsd/commit/f022a3e42158ff0d84fc354191ce2088351c7fe6)
- Added --raw format for sending messages [`54072a2`](https://github.com/craigerl/aprsd/commit/54072a2103d9833dd3aadc3b9e200842b2cea7f5)
- Updated docker run.sh script [`264b753`](https://github.com/craigerl/aprsd/commit/264b7536b431ea17aa86e01342eea80318e1f542)
- Added the ability to add comments to the config file [`cdde9c2`](https://github.com/craigerl/aprsd/commit/cdde9c290b2aaae12c819ced5a103aa252bfbc05)
- Fixed comments [`42b2e22`](https://github.com/craigerl/aprsd/commit/42b2e227e17a2065963e1c44d966d04a3b29fe3b)
- make sample config easier to interpret [`e11a84b`](https://github.com/craigerl/aprsd/commit/e11a84bf053485ee0ce7367d5b9715114cd4d8ae)
- fixed sample-config double print [`18acd64`](https://github.com/craigerl/aprsd/commit/18acd64334e0218bdffbc4d10da0b1559f65cf0b)
- get rid of some debug noise from tracker and email delay [`7e3b95f`](https://github.com/craigerl/aprsd/commit/7e3b95fd01628c3e7bb50536193f86cd6c4f1b23)
- Fixed latitude reporting in locationPlugin [`4ca5c29`](https://github.com/craigerl/aprsd/commit/4ca5c29d49c8a15884f08c6aa21880f45238f97e)
- fix query command syntax  ?,  ?3,  ?d(elete),  ?a(ll) [`0b5c9da`](https://github.com/craigerl/aprsd/commit/0b5c9dacf030dd39e8ee130ecde6a780205d74cd)
- fix plugin tests to expect new strings [`e7dc537`](https://github.com/craigerl/aprsd/commit/e7dc5379009ee0982138881eb82a5de268ef2e02)
- Changed default log level to INFO [`0aa905e`](https://github.com/craigerl/aprsd/commit/0aa905ebba802e2f8cecc2b9c98caa72edc15a41)
- Removed flask code [`72fa550`](https://github.com/craigerl/aprsd/commit/72fa550250dcaef2c4badfe9aa755464aafcd659)
- Fixed the queryPlugin unit test [`74be4f8`](https://github.com/craigerl/aprsd/commit/74be4f853ed4b4e9705445a22ae281614a5d485c)
- test plugin expect responses update to match query output [`3be373d`](https://github.com/craigerl/aprsd/commit/3be373d7fc7f47d3b97f51fd6b95c410bbdf91e1)
- Fixed main server client initialization [`7486770`](https://github.com/craigerl/aprsd/commit/7486770bdc2e9670bb803ee064d08708ddcc55b7)
- Enabled some emailthread messages and added timestamp [`d81bfd6`](https://github.com/craigerl/aprsd/commit/d81bfd6fd5b238157eee13809ba7fafae61b7d4d)
- fix usage statement [`f538fb2`](https://github.com/craigerl/aprsd/commit/f538fb26aed62871c31bc47024b3041e2a15bb4a)
- Fix tox tests. [`0e9cfdd`](https://github.com/craigerl/aprsd/commit/0e9cfdd847aeb87a29e30e2b443cab9d8911442f)
- Updated Changelog for v1.5.0 release [`33a0e6c`](https://github.com/craigerl/aprsd/commit/33a0e6c18d7adbe979bcb49708f9730dd3f5ccec)

#### [v1.1.0](https://github.com/craigerl/aprsd/compare/v1.0.1...v1.1.0)

> 21 December 2020

- Update .gitignore [`#25`](https://github.com/craigerl/aprsd/pull/25)
- Major refactor [`#23`](https://github.com/craigerl/aprsd/pull/23)
- Updated the Dockerfile to use alpine [`#24`](https://github.com/craigerl/aprsd/pull/24)
- Big patch [`fa51f8f`](https://github.com/craigerl/aprsd/commit/fa51f8fdf20bd5578353009cb49cf4fdf7ed71fb)
- Fixed send-message with email command and others [`3261710`](https://github.com/craigerl/aprsd/commit/3261710bf8d5b3dc8d038016825af39fa1cdbf98)
- Updated README.rst [`6a61765`](https://github.com/craigerl/aprsd/commit/6a61765eba9cd2f3ad0c4f104f011e82e0f86029)
- Updated the aprsd-slack-plugin required version [`0992ab8`](https://github.com/craigerl/aprsd/commit/0992ab817696a2aa97604e0c4571350e4bd368a3)
- Fixed issue when RX ack [`d3ee1b7`](https://github.com/craigerl/aprsd/commit/d3ee1b78bc62dd57be6b505eb1269a70cdbb7242)
- Added Changelog [`6d2160c`](https://github.com/craigerl/aprsd/commit/6d2160c7b740d8508c9fc5daebf58659c2d4595f)
- Updated docker-compose [`c39fdde`](https://github.com/craigerl/aprsd/commit/c39fddef67f25bb73e128a47576e33cdf9db9d04)
- Ensure fortune is installed [`18b269a`](https://github.com/craigerl/aprsd/commit/18b269a39d91feeea7329ac1df61df21a29c49f4)
- Added fix for an unknown packet type [`b260954`](https://github.com/craigerl/aprsd/commit/b2609548f23430d850a365796fc519e6798b7576)
- Update README with version 1.1.0 related info [`8161719`](https://github.com/craigerl/aprsd/commit/8161719697d04b02b00a2bd6b6ef32606602489c)
- Refactored the main process_packet method [`1d898ea`](https://github.com/craigerl/aprsd/commit/1d898ea20fb739e50d190f35b2e8bac909d4f127)

#### [v1.0.1](https://github.com/craigerl/aprsd/compare/v1.0.0...v1.0.1)

> 15 December 2020

- Fix unknown characterset emails [`#22`](https://github.com/craigerl/aprsd/pull/22)
- Readme [`#21`](https://github.com/craigerl/aprsd/pull/21)
- Updates for building containers [`#19`](https://github.com/craigerl/aprsd/pull/19)
- Don't use the dirname for the plugin path search [`#18`](https://github.com/craigerl/aprsd/pull/18)
- Reworked Plugin loading [`#17`](https://github.com/craigerl/aprsd/pull/17)
- Fixed an issue with weather plugin [`eba093b`](https://github.com/craigerl/aprsd/commit/eba093b62a7d100fe0f88850c9e9b3b6f50d3a2e)
- Updated README with development information [`3ffa416`](https://github.com/craigerl/aprsd/commit/3ffa4165f01153f67102c835508bf6dd5a9a30bc)
- Updated README with a TOC [`21253ff`](https://github.com/craigerl/aprsd/commit/21253ff6e798356aff97479ca0d80326bcf0e9b3)
- Updated loggin timestamp to include [] [`8a62738`](https://github.com/craigerl/aprsd/commit/8a6273867cc9bd341f4c4ed628048c932320cf8e)

#### v1.0.0

> 14 December 2020

- Fixed the usage string after plugins introduced [`#16`](https://github.com/craigerl/aprsd/pull/16)
- Created plugin.py for Command Plugins [`#15`](https://github.com/craigerl/aprsd/pull/15)
- Refactor networking and commands [`#14`](https://github.com/craigerl/aprsd/pull/14)
- Update tox environment to fix formatting python errors [`#13`](https://github.com/craigerl/aprsd/pull/13)
- Click [`#12`](https://github.com/craigerl/aprsd/pull/12)
- Fixed all pep8 errors and some py3 errors [`#11`](https://github.com/craigerl/aprsd/pull/11)
- Added tox support [`#10`](https://github.com/craigerl/aprsd/pull/10)
- Fixed SMTP settings [`#9`](https://github.com/craigerl/aprsd/pull/9)
- removed ASS [`#8`](https://github.com/craigerl/aprsd/pull/8)
- Added port and fixed telnet user [`#7`](https://github.com/craigerl/aprsd/pull/7)
- Require ~/.aprsd/config.yml [`#6`](https://github.com/craigerl/aprsd/pull/6)
- Added reading of a config file [`#5`](https://github.com/craigerl/aprsd/pull/5)
- First stab at migrating this to a pypi repo structure [`#4`](https://github.com/craigerl/aprsd/pull/4)
- Added password, callsign and host [`#3`](https://github.com/craigerl/aprsd/pull/3)
- Cleaned up trailing whitespace [`#2`](https://github.com/craigerl/aprsd/pull/2)
- Added standard python main() [`#1`](https://github.com/craigerl/aprsd/pull/1)
- Initial commit [`8cea620`](https://github.com/craigerl/aprsd/commit/8cea620fcc738e1f6e00cf79ed204ea58ea3ae0c)
- Add files via upload [`51579d7`](https://github.com/craigerl/aprsd/commit/51579d7c2350a85f755e3ee039bc76278da62a59)
- Update README.md [`38d2e51`](https://github.com/craigerl/aprsd/commit/38d2e516de18876b911213f373d76fddff3d6115)
- Update README.md [`6db4e6f`](https://github.com/craigerl/aprsd/commit/6db4e6fd5e7d35b21bf3dde1c18a50cbacc99232)
- Update README.md [`7947d54`](https://github.com/craigerl/aprsd/commit/7947d54fd7b75d41c29915084d8d93b38d601bfc)
- Update README.md [`66f8f82`](https://github.com/craigerl/aprsd/commit/66f8f8269a9e466618ea48ce30f0a9adafb0fd36)
- Update README.md [`538e2fe`](https://github.com/craigerl/aprsd/commit/538e2fef29ba547b980d63865573cc0491db858b)
- Update README.md [`e2d9478`](https://github.com/craigerl/aprsd/commit/e2d9478e272a047f0dd1d2e6ffa5f9c3f9f3d269)
- Update README.md [`a3f1d34`](https://github.com/craigerl/aprsd/commit/a3f1d34bc05c8443d419fee2db5a75312528e394)
- Update README.md [`d31d3bd`](https://github.com/craigerl/aprsd/commit/d31d3bdf0d192c63dc22c0256d6ee14d738e6007)
- Update README.md [`7e409c7`](https://github.com/craigerl/aprsd/commit/7e409c79fbe18e1e3efa62ee15543728f4b2d92a)
- Update README.md [`ce66908`](https://github.com/craigerl/aprsd/commit/ce6690842ad5c2a182ecdd57359aa1bccd4d9dc4)
- Update README.md [`d9b9fd9`](https://github.com/craigerl/aprsd/commit/d9b9fd9a47f6d487e63847dbcd9c3c0787be2f5d)
- Update README.md [`134a555`](https://github.com/craigerl/aprsd/commit/134a5558d4332e92241c4013fcef7e9f173cd609)
- Update aprsd.py [`2330523`](https://github.com/craigerl/aprsd/commit/2330523853855e0b722e0ee51164af932ffae196)
- Update README.md [`821a34b`](https://github.com/craigerl/aprsd/commit/821a34b12d97b4521cfbc1de9c39f6248f0ea512)
- Add files via upload [`471af76`](https://github.com/craigerl/aprsd/commit/471af76595407ded6a25c6ac4f24ea91e0fa872c)
- Update aprsd.py [`230cf45`](https://github.com/craigerl/aprsd/commit/230cf453591e55c632aa2b672b6a9fd40ed9ef74)
- Update README.md [`04269b3`](https://github.com/craigerl/aprsd/commit/04269b39ba4b295943efa80e5fad2d6343756f5f)
- Update README.md [`aa184a3`](https://github.com/craigerl/aprsd/commit/aa184a34ac94f17810f5059d144bdf0d427df752)
- de-localize [`fcef019`](https://github.com/craigerl/aprsd/commit/fcef0195b03a1d6397a5dbaf25454ba2b4c87ccb)
- Update README.md [`34d4da8`](https://github.com/craigerl/aprsd/commit/34d4da8f0d32da286cda1faf0a8af74f981523aa)
- Update README.md [`e3a1841`](https://github.com/craigerl/aprsd/commit/e3a18417f1fb9b78056c4d2b1327b0011e53c5ab)
- Update README.md [`e74fd4f`](https://github.com/craigerl/aprsd/commit/e74fd4fd6dc748cb1cc68158df75ffecd1e7e720)
- Update README.md [`7cfde54`](https://github.com/craigerl/aprsd/commit/7cfde5425050ba049ba34342f824d8710ad638e1)
- de-localize [`149580e`](https://github.com/craigerl/aprsd/commit/149580e8c434bf7b7beaef88723e73995cb7b8b2)
- mapme [`48036f9`](https://github.com/craigerl/aprsd/commit/48036f9ffdabce9be1b9faa4e4db37c6a0c57486)
- added weather and location [`7b74138`](https://github.com/craigerl/aprsd/commit/7b74138cbaf016e770b3879d36740c2a57fcc585)
- added weather and location 2 [`2fbc0e3`](https://github.com/craigerl/aprsd/commit/2fbc0e305c21ab45ff6c0443794447d1686422e5)
- added weather and location 3 [`f1d25c0`](https://github.com/craigerl/aprsd/commit/f1d25c06aafc08f87c1618b71260dd12545e8e70)
- sanitize readme [`de6ca53`](https://github.com/craigerl/aprsd/commit/de6ca53fc8887248d936eb45f2a4a126bdac6876)
- sanitize readme a bit more [`b6356ce`](https://github.com/craigerl/aprsd/commit/b6356ce90142dc4c24ff564182baa9e61bedf1d5)
- sanitize readme a bit more [`19e747d`](https://github.com/craigerl/aprsd/commit/19e747d3dce0f5c291795ebfc950928dcfea2090)
- drop virtenv on first line [`f3e386c`](https://github.com/craigerl/aprsd/commit/f3e386c485fd45cc4c6e371a5222134eb87de516)
- tweaks to readme [`8a1c5e0`](https://github.com/craigerl/aprsd/commit/8a1c5e0db2ea070187ef902b547ecbcfbe151f82)
- make tn a global [`d9caac6`](https://github.com/craigerl/aprsd/commit/d9caac64d7b3e0e7c63d64a3562a4789d6c49f0d)
- add tweaked fuzzyclock [`7dc1c5d`](https://github.com/craigerl/aprsd/commit/7dc1c5d8fdab0543f0e655ea79887d87cedb713f)
- comments [`174da13`](https://github.com/craigerl/aprsd/commit/174da13ddacd421468fadd1213db55b5ece4830c)
- Added argparse for cli options [`8b61116`](https://github.com/craigerl/aprsd/commit/8b61116fceef117a5d2faa86bde5e8244878f88d)
- First stab at migrating this to a pytpi repo [`ecd797d`](https://github.com/craigerl/aprsd/commit/ecd797d91e56a3444e79a9e67d552c602fffa772)
- First stab at migrating this to a pytpi repo [`a2b5908`](https://github.com/craigerl/aprsd/commit/a2b5908b1670251bb4a4250db8bbf8d75da646fd)
- readme update [`4a8181c`](https://github.com/craigerl/aprsd/commit/4a8181ce303b173116704bf8c0a0eccf76aa6690)
- readme [`d3e5d35`](https://github.com/craigerl/aprsd/commit/d3e5d35d1c0c952a495b030a9658cf28b781857e)
- readme again [`5ac718d`](https://github.com/craigerl/aprsd/commit/5ac718dfab7eafb3e00982ec4e0cfeadcd506782)
- readme again again [`20c43b4`](https://github.com/craigerl/aprsd/commit/20c43b4e85b712f9e7d78a492084eb1a3db4f169)
- readme again again [`d98af66`](https://github.com/craigerl/aprsd/commit/d98af66dba29be731d18eaa572919862dbdc8be2)
- sanitize readme [`8390419`](https://github.com/craigerl/aprsd/commit/8390419292188e9abae4d7c86dacbb47b3ecb747)
- update readme [`c36b14b`](https://github.com/craigerl/aprsd/commit/c36b14b4de56783562f2ea698e42a988df53efcb)
- update readme [`b3435c0`](https://github.com/craigerl/aprsd/commit/b3435c0053116e5986f0189a82e8d376a2d45c87)
- added exit if missing config file [`e3964c5`](https://github.com/craigerl/aprsd/commit/e3964c5426245e71a9689196b9e0402fdab376d5)
- added test to ensure shortcuts in config.yml [`8d1d293`](https://github.com/craigerl/aprsd/commit/8d1d2933e886abb9b2ce72d364413b86917f7e63)
- updated README for install and usage instructions [`4eff52f`](https://github.com/craigerl/aprsd/commit/4eff52f24589852404f7a6cd1581fd58c110ae43)
- Added a try block around imap login [`89d038e`](https://github.com/craigerl/aprsd/commit/89d038e93d32ff63526335aed72859099641edcd)
- select inbox if gmail server [`7abc470`](https://github.com/craigerl/aprsd/commit/7abc47098b873ec10fe8c1720eb326bd958807f7)
- Created fake_aprs.py [`bd47a2b`](https://github.com/craigerl/aprsd/commit/bd47a2bdea43566bf63cb497d3b57996c2751d04)
- Update README.md [`1f31ba0`](https://github.com/craigerl/aprsd/commit/1f31ba0fc754f5f543e977facffcfd093796cbb5)
- fix INBOX [`78add91`](https://github.com/craigerl/aprsd/commit/78add91f3ccd8d2398a79890bf6f0f2520b38641)
- fix bugs after beautification and yaml config additions. Convert to sockets.  case insensitive commands [`abc6379`](https://github.com/craigerl/aprsd/commit/abc63791f135b75cd71ce0fcce002fee386a258e)
- INSTALL.txt for the average person [`f175f7e`](https://github.com/craigerl/aprsd/commit/f175f7e6e31f41fd0dd9eb6fbb40bd2aea8b4cfb)
- fix check_email_thread to do proper threading, take delay as arg [`b552f96`](https://github.com/craigerl/aprsd/commit/b552f9611f0f0c02d65804aeb03128383e16917c)
- fix check_email_thread to do proper threading, take delay as arg [`e171e16`](https://github.com/craigerl/aprsd/commit/e171e16854862e3cbc743b9c5d526f0895d54b19)
- socket reconnect on timeout testing [`5e96706`](https://github.com/craigerl/aprsd/commit/5e96706f7adf74c955fa4006228ea76a68b42f1e)
- socket reconnect on timeout testing [`712d66c`](https://github.com/craigerl/aprsd/commit/712d66c389c068cb84738bae0e26a7904c5e1c73)
- Reconnect on socket timeout [`b553987`](https://github.com/craigerl/aprsd/commit/b553987350723887c094a87638c49c3f93e26d03)
- Reconnect on socket timeout [`ecd0e8f`](https://github.com/craigerl/aprsd/commit/ecd0e8f95eeadf9582075e15e1120f9999ca068a)
- Reconnect on socket timeout [`766acbb`](https://github.com/craigerl/aprsd/commit/766acbb777a59150da5e77d2d5c7725621dfc01e)
- socket timeout of 300 instead of 60 [`32e146d`](https://github.com/craigerl/aprsd/commit/32e146d105dc47ab591f200b4d0df89209d45b77)
- added decaying email check timer which resets with activity [`cf73add`](https://github.com/craigerl/aprsd/commit/cf73add2db7ac6e85ee65e3d3e038dd709ce19f2)
- George Carlin profanity filter [`3ae7a05`](https://github.com/craigerl/aprsd/commit/3ae7a056b62f751498d653b39d8b68a9aa9d86e3)
- Update INSTALL.txt [`89069af`](https://github.com/craigerl/aprsd/commit/89069af58a03427f45f255109ecbee9ff0b3a351)
- Update INSTALL.txt [`ef132d8`](https://github.com/craigerl/aprsd/commit/ef132d8037087c647d35e1f39d7cd44a5b924c54)
- Update INSTALL.txt [`d1ab8bc`](https://github.com/craigerl/aprsd/commit/d1ab8bc27d3977f5b8ca1f9280d8857602414900)
- main loop went into tight loop, added debug print before every continue [`b597228`](https://github.com/craigerl/aprsd/commit/b5972287196130ea873ee00a8713cf56e5d543b3)
- main loop went into tight loop, more debug prints [`a4faa76`](https://github.com/craigerl/aprsd/commit/a4faa7614c646b8698908c54f21f97e5b3122c1f)
- Update INSTALL.txt [`54a2c01`](https://github.com/craigerl/aprsd/commit/54a2c016c9f08c35b1860b70473204970b7dfe68)
- more debugging messages trying to find rare tight loop in main [`3d7e3a4`](https://github.com/craigerl/aprsd/commit/3d7e3a4e542bab8edfb48f1804136873077e34f1)
- Update INSTALL.txt [`22f7123`](https://github.com/craigerl/aprsd/commit/22f7123e17724331e669c7b5ecf52edefdfb1693)
- can detect closed socket and reconnect now [`b8f37fa`](https://github.com/craigerl/aprsd/commit/b8f37fac6ed24be4dcf5741f3b85b0f4b0f8b2f8)
- Detect closed socket, reconnect, with a bit more grace [`4b67df2`](https://github.com/craigerl/aprsd/commit/4b67df2907e1ad6e0258aa154facb969217c0936)
- socket timeout 5 minutes [`e6995c3`](https://github.com/craigerl/aprsd/commit/e6995c360582ab5bb21c98ce4c90de43578efa48)
- clean up code around closed_socket and reconnect [`735cb3a`](https://github.com/craigerl/aprsd/commit/735cb3a557650ac207cc70910f082b5f31ae2ecd)
- clean up code around closed_socket and reconnect [`371a7a0`](https://github.com/craigerl/aprsd/commit/371a7a08acbef67cfcc9163888ade88a5e4ae88b)
- fix parse_email unicode probs by using body.decode(errors='ignore') [`44228c6`](https://github.com/craigerl/aprsd/commit/44228c63b3accd72acb92185ac22bc7a2240af5d)
- fix parse_email unicode probs by using body.decode(errors='ignore').. again [`3c16149`](https://github.com/craigerl/aprsd/commit/3c16149e716b9677417731a2651d5a3cb0862b49)
- some failed attempts at getting the first txt or html from a multipart message, currently sends the last [`90fcb99`](https://github.com/craigerl/aprsd/commit/90fcb9973bcc29eb4f1838bd11f6ae2e7cdced32)
- found another .decode that didn't include errors='ignore' [`f69f9a2`](https://github.com/craigerl/aprsd/commit/f69f9a2027f393cfce19336e3bfbb7e17337d387)
- Initial conversion to click [`50fb090`](https://github.com/craigerl/aprsd/commit/50fb0905578171485c6cc69c3f60bc9f4eb3dd91)
- Update INSTALL.txt [`9cd6542`](https://github.com/craigerl/aprsd/commit/9cd65424f85b01eefcee5abb95b683a4ad7a555b)
- imap tags are unicode in py3.  .decode tags [`4b09fad`](https://github.com/craigerl/aprsd/commit/4b09fad8767c8bdb7ddcab2dc4b04a0863d6cdfe)
- switch from urlib to requests for weather, tested in py3 and py2.  still need to update locate, and all other http calls [`00432cf`](https://github.com/craigerl/aprsd/commit/00432cf5bbdfb59bc89d721874d692b79a90d6be)
- cleaned up weather code after switch to requests ... from urllib. works on py2 and py3 [`ad0f96d`](https://github.com/craigerl/aprsd/commit/ad0f96d1aafef080dfaa6f9d5587c965f9115bd2)
- add urllib import back until i replace all calls with requests [`b38f561`](https://github.com/craigerl/aprsd/commit/b38f561b843b831f190f695bdcf643042727cfc7)
- completely off urllib now, tested locate/weather in py2 and py3 [`86bf428`](https://github.com/craigerl/aprsd/commit/86bf42802c36a1415481cb5fe974844f850a1d08)
- lose some logging statements [`c5517a7`](https://github.com/craigerl/aprsd/commit/c5517a7cb5ec005bbf843838614aeeda84530068)
- fixed fortune. yet another unicode issue, tested in py3 and py2 [`2bebd83`](https://github.com/craigerl/aprsd/commit/2bebd8344985d49eda197d87674ddb4107824abd)
- reset default email check delay to 60, fix a few comments [`d3bb44f`](https://github.com/craigerl/aprsd/commit/d3bb44feeca74f37df3a95ab51f308823e2214a7)
- yet another unicode problem, in resend_email fixed [`bb1a2ee`](https://github.com/craigerl/aprsd/commit/bb1a2ee61a7bf7b95821c46d8094a0814512ac7a)
- get rid of some debug statements [`43509ea`](https://github.com/craigerl/aprsd/commit/43509ea9e68bed3923e4d31d1b6854bab48a5d6f)
- Rewrote the README.md to README.rst [`e1edbe6`](https://github.com/craigerl/aprsd/commit/e1edbe6c6287791f6ced2d243c073dbd65c648ea)
