Followup to #119 (closed 2026-04-19 as completed). Recheck shows the Network::connection_events() impls in crates/network/src/iroh.rs and crates/network/src/mem.rs still return futures_lite::stream::pending() — i.e. the original placeholder is unchanged. The TODO at crates/network/src/traits.rs:161 cites #119, which is now closed, so the link is dead.
Scope
Same as the original #119:
- Option A: wire iroh's underlying connection-state events into a real
ConnectionEvent stream (RelayUp / RelayDown / PeerConnected / PeerDisconnected). For MemNetwork, emit synthetic events when MemHub subscribes/unsubscribes a peer.
- Option B: if no in-tree caller actually consumes the stream, drop the trait method entirely.
Start with a workspace-wide grep for connection_events callers to pick A vs B.
Why this matters
The TODO has been outstanding since the original #119 (filed 2026-04-10). Closing the issue without resolving the placeholder broke the link from code to tracker, making the debt invisible to future audits.
Refs
Followup to #119 (closed 2026-04-19 as completed). Recheck shows the
Network::connection_events()impls incrates/network/src/iroh.rsandcrates/network/src/mem.rsstill returnfutures_lite::stream::pending()— i.e. the original placeholder is unchanged. The TODO atcrates/network/src/traits.rs:161cites #119, which is now closed, so the link is dead.Scope
Same as the original #119:
ConnectionEventstream (RelayUp/RelayDown/PeerConnected/PeerDisconnected). ForMemNetwork, emit synthetic events whenMemHubsubscribes/unsubscribes a peer.Start with a workspace-wide grep for
connection_eventscallers to pick A vs B.Why this matters
The TODO has been outstanding since the original #119 (filed 2026-04-10). Closing the issue without resolving the placeholder broke the link from code to tracker, making the debt invisible to future audits.
Refs
crates/network/src/traits.rs:161