Parent
#130
What to build
Separate ephemeral Relay connection, client-session, and filter-matching responsibilities into private internal modules while preserving the small existing testing entrypoint.
Acceptance criteria
Blocked by
Delivery
This is cleanup slice 9 of 9. Deliver it on its own branch and non-draft pull request into staging, then merge it before starting the next slice.
Parent
#130
What to build
Separate ephemeral Relay connection, client-session, and filter-matching responsibilities into private internal modules while preserving the small existing testing entrypoint.
Acceptance criteria
Blocked by
Delivery
This is cleanup slice 9 of 9. Deliver it on its own branch and non-draft pull request into staging, then merge it before starting the next slice.