|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [0.2.0] - 2026-04-03 |
| 9 | + |
| 10 | +### Added |
| 11 | + |
| 12 | +- Flood relay/rebroadcast support in `BleBitChatClient` for transit packets with |
| 13 | + TTL decrement (`ttl - 1`) when relaying. |
| 14 | +- Pluggable message dedupe cache support in both `BleBitChatClient(...)` and |
| 15 | + `create_client(...)` via `dedupe_cache`. |
| 16 | +- New `src/python_bitchat_client/dedupe.py` module containing: |
| 17 | + - `MessageDedupCache` protocol for custom dedupe implementations. |
| 18 | + - `LruTtlDedupeCache` default exact in-memory LRU+TTL dedupe cache. |
| 19 | +- Expanded GitHub automation under `.github/` including CI, CodeQL, Scorecard, |
| 20 | + security workflows, and Dependabot. |
| 21 | + |
| 22 | +### Changed |
| 23 | + |
| 24 | +- `parse_packet(...)` now stores parsed packet TTL on `ParsedPacket.ttl` to |
| 25 | + support relay decisions in client logic. |
| 26 | +- `README.md` now documents relay and dedupe behavior, including custom cache |
| 27 | + injection and trade-offs for probabilistic caches. |
| 28 | + |
| 29 | +### Tests |
| 30 | + |
| 31 | +- Added coverage for default/injected dedupe cache behavior. |
| 32 | +- Added coverage for dedupe factory pass-through in `create_client(...)`. |
| 33 | +- Added LRU+TTL cache behavior tests (expiry and eviction). |
| 34 | +- Added relay behavior tests (TTL decrement, duplicate suppression, and |
| 35 | + non-relay when TTL is 1). |
| 36 | + |
| 37 | +## [0.1.0] - 2026-04-02 |
| 38 | + |
| 39 | +### Added |
| 40 | + |
| 41 | +- Initial release of `python-bitchat-client`: a lightweight, headless Python |
| 42 | + client library for BitChat BLE mesh integrations. |
| 43 | +- Protocol-focused foundations aligned with the BitChat whitepaper and informed |
| 44 | + by observed behavior in the Swift/iOS implementation for ecosystem |
| 45 | + compatibility. |
| 46 | +- Core library modules for packet parsing/building, Noise protocol session |
| 47 | + handling, identity/key material, and client-side message models. |
| 48 | +- A BLE-backed client implementation (`BleBitChatClient`) with a no-op fallback |
| 49 | + (`NullBitChatClient`) for environments where BLE backend support is missing. |
| 50 | +- Interactive terminal harness example for manual send/receive testing. |
| 51 | +- Initial unit test coverage across keys, protocol handling, client behavior, |
| 52 | + and Noise/session paths. |
| 53 | + |
| 54 | +[0.2.0]: https://github.com/BradWhittington/python-bitchat-client/compare/v0.1.0...v0.2.0 |
| 55 | +[0.1.0]: https://github.com/BradWhittington/python-bitchat-client/releases/tag/v0.1.0 |
0 commit comments