- Define Transport interface (Name, Start, Stop, Addresses) at pkg/interfaces/transport/
- Add Transport Manager with ordered startup/shutdown at pkg/transport/
- Create TCP transport (pkg/transport/tcp/) wrapping plain http.Server
- Create TLS transport (pkg/transport/tls/) with ACME + manual certs
- Create Tor transport (pkg/transport/tor/) wrapping existing pkg/tor service
- Replace ~220 lines of inline transport code in app/main.go with manager
- Simplify shutdown handler to single transportMgr.StopAll() call
- Use transportMgr.Addresses() for NIP-11 relay info (replaces torService)
Files modified:
- pkg/interfaces/transport/transport.go: New transport interface
- pkg/transport/manager.go: New transport manager
- pkg/transport/tcp/tcp.go: New TCP transport
- pkg/transport/tls/tls.go: New TLS/ACME transport (moved from app/tls.go)
- pkg/transport/tor/tor.go: New Tor transport wrapper
- app/main.go: Use transport manager for all networking
- app/server.go: Replace torService field with transportMgr
- app/handle-relayinfo.go: Use transportMgr.Addresses()
- app/tls.go: Deleted (moved to pkg/transport/tls/)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>