- [x] Rewrite the crate layout and dependency baseline for Rust 2024 and modern async Rust.
- [x] Replace the legacy CLI/config path with a typed modern configuration layer and daemon startup flow.
- [x] Rebuild AODV message types and byte codec for RREQ, RREP, RERR, RREP-ACK, and hello handling.
- [x] Implement shared protocol data structures: sequence-number helpers, route entries, precursor tracking, duplicate RREQ cache, and timer metadata.
- [x] Implement route discovery origination and RFC-compliant RREQ processing.
- [x] Implement RREP generation, forwarding, and forward-route installation.
- [x] Implement RERR generation, route invalidation, and inbound RERR processing.
- [x] Implement hello emission/reception and route expiry maintenance timers.
- [x] Build the Tokio UDP daemon that drives the protocol engine over UDP port 654.
- [x] Make the daemon usable on real Linux devices by binding a real UDP socket, supporting interface pinning, and receiving inbound TTL metadata.
- [x] Add unit and integration tests covering packet codec, route discovery, reply forwarding, error handling, and timer behavior.
- [x] Run formatting and the full test suite, then update this task list to match the final reality.
- [x] Add an in-house deterministic multi-node simulation harness for the protocol engine.
- [x] Add a second-layer real-socket integration harness that exercises multiple nodes over UDP.
- [x] Expand routing test coverage with many topology, failure, retry, and timer scenarios.
- [x] Add and verify a static build target for the daemon, including the intended target triple and build instructions.
- [x] Add stricter RFC coverage for local repair and buffered data packets.
- [x] Make the crate compile and build on Linux, macOS, and Windows while preserving Linux-specific AODV socket behavior.
- [x] Expand CI to exercise Linux tests plus macOS and Windows builds.
- [x] Fix the GitHub Actions sudo/rustup test failure.
- [x] Add native macOS and Windows equivalents for interface selection instead of non-Linux placeholders.
- [x] Add tag-gated crates.io publishing in CI and bump the crate to 0.2.0.
- [x] Bump the crate to 0.2.1 for the next crates.io publish.
- [x] Add rootless simulated end-to-end payload forwarding tests.
- [x] Add rootless end-to-end payload tests for changing topologies.
- [x] Add automated CI test coverage report artifacts and local just commands for tests/coverage.
- [x] Add a real daemon data plane instead of only logging buffered packet flush/drop actions.
- [x] Add a Linux TUN overlay backend for userspace IPv4 packet forwarding.
- [x] Add Windows Wintun userspace TUN overlay support.
- [x] Add short CLI aliases for common daemon and TUN options.
- [x] Add a Linux kernel route-table backend for classic AODV route installation/removal.
- [x] Complete RREP-ACK and blacklist handling for unidirectional link detection.
- [x] Add RFC-oriented comments to protocol, daemon, data-plane, and test coverage paths.
- [x] Record unsupported RFC fields explicitly: multicast join and RREP prefix-size subnet routing.
- [ ] Tighten local repair TTL calculation when forwarding-path sender distance is available.
- [x] Document routing modes, TUN setup, kernel route behavior, and required Linux capabilities.
- [ ] Add privileged Linux namespace/TUN integration tests gated behind an explicit opt-in environment variable.
- [ ] Add Windows Wintun smoke testing in CI once a reliable non-interactive driver setup is available.