* Implement closed_stream event handling and enable related tests
* Fix linting issues and ensure all tests pass
* Add logging for exception in SwarmConn and create newsfragment for closed_stream feature
- Fix INotifee interface compliance in WebSocket demo
- Fix handler function signatures to be async (THandler compatibility)
- Fix is_closed method usage with proper type checking
- Fix pytest.raises multiple exception type issue
- Fix line length violations (E501) across multiple files
- Add debugging logging to Noise security module for troubleshooting
- Update WebSocket transport examples and tests
- Improve transport registry error handling
- Replaced hardcoded listen address with `get_optimal_binding_address` for improved flexibility.
- Imported address validation utilities in `echo.py` and updated `__init__.py` to include new functions.
- Added `network_discover.py` to demonstrate Thin Waist address handling.
- Introduced `address_validation.py` with functions for discovering available network interfaces, expanding wildcard addresses, and determining optimal binding addresses.
- Included fallback mechanisms for environments lacking Thin Waist support.
* feat: base implementation of dcutr for hole-punching
* chore: removed circuit-relay imports from __init__
* feat: implemented dcutr protocol
* added test suite with mock setup
* Fix pre-commit hook issues in DCUtR implementation
* usages of CONNECT_TYPE and SYNC_TYPE have been replaced with HolePunch.Type.CONNECT and HolePunch.Type.SYNC
* added unit tests for dcutr and nat module and
* added multiaddr.get_peer_id() with proper DNS address handling and fixed method signature inconsistencies
* added assertions to verify DCUtR hole punch result in integration test
---------
Co-authored-by: Manu Sheel Gupta <manusheel.edu@gmail.com>