Skip to content

feat(daemonapi): Connection.Info() + Listener/PortAllocator/TunnelRegistry interfaces#4

Merged
TeoSlayer merged 1 commit into
mainfrom
daemonapi-connection-listener-interfaces
May 29, 2026
Merged

feat(daemonapi): Connection.Info() + Listener/PortAllocator/TunnelRegistry interfaces#4
TeoSlayer merged 1 commit into
mainfrom
daemonapi-connection-listener-interfaces

Conversation

@TeoSlayer
Copy link
Copy Markdown
Contributor

Summary

Adds the four missing interfaces plugins need to fully decouple from web4/pkg/daemon. v0.3.0 left them as opaque markers; v0.4.0 gives them the methods runtime+libpilot actually call.

  • Connection.Info() ConnectionInfo — snapshot struct of LocalAddr/LocalPort/RemoteAddr/RemotePort. Struct return avoids Go's field/method name-collision on the concrete *daemon.Connection.
  • Listener — Accept + Port + Close for plugin server loops.
  • PortAllocator — Bind + Unbind.
  • TunnelRegistry — RemovePeer.

Additive; v0.3.0 callers still compile.

🤖 Generated with Claude Code

…lRegistry interfaces

Phase 5: add the missing interfaces plugins need to fully decouple
from web4/pkg/daemon. The previous v0.3.0 release left these as
opaque markers; with v0.4.0 they have the methods runtime and
libpilot actually call.

  Connection.Info() returns a ConnectionInfo struct containing the
  four endpoint quantities — LocalAddr, LocalPort, RemoteAddr,
  RemotePort. Using a struct snapshot avoids the Go-impossible name
  collision between the concrete *daemon.Connection's exported
  struct fields and same-named interface methods.

  Listener gains Accept + Port + Close so runtime/streams.go can
  drive a server loop without holding the concrete *daemon.Listener.

  PortAllocator.Bind / Unbind expose the daemon's port table.

  TunnelRegistry.RemovePeer lets handshake's revoke path tear down
  per-peer tunnel state without importing the concrete tunnel
  manager type.

This is additive — every existing user of the v0.3.0 interfaces
still compiles.
@TeoSlayer TeoSlayer merged commit c45d286 into main May 29, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants