mirror of
https://github.com/openlibrecommunity/olcrtc.git
synced 2026-05-26 07:08:11 +00:00
internal/link and internal/link/direct were a single-implementation abstraction layer where directLink mechanically proxied every method to transport.Transport — only Features() lived above transport.Transport, and even that was a Features() alias. Six layers of plumbing for zero behavioural value. Drop the layer entirely: - muxconn.Conn now takes a transport.Transport directly. - server.Server and client.Client store transport.Transport, call transport.New, and expose Features() through transport.Transport's built-in method. - server.Config and client.Config lose their Link string field. - session.Config loses Link + validateLink + ErrLinkRequired/ErrUnsupportedLink. - config.File and config.Profile lose the link YAML key. - pkg/olcrtc/tunnel.Config loses Link. - mobile drops defaultLink, SetLink, and mobileConfig.link. Two e2e tests that exercised link.New directly are renamed to call transport.New (TestTransportCreatesAllProviderTransportCombinations and TestTransportConnectsFastProviderTransportMatrix); behaviour is unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>