Skip to content

feat(webrtc): Network category + user-chosen ICE servers & serverless manual mode - #64

Merged
slaveofcode merged 1 commit into
developfrom
feat/webrtc-connection-options
Aug 1, 2026
Merged

feat(webrtc): Network category + user-chosen ICE servers & serverless manual mode#64
slaveofcode merged 1 commit into
developfrom
feat/webrtc-connection-options

Conversation

@slaveofcode

Copy link
Copy Markdown
Owner

Builds on the P2P file transfer (#63) to make our server fully optional and user-chosen, and gives the P2P tools their own home.

Network category

User-chosen connection

  • Custom STUN/TURN servers: users enter their own ICE servers (defaults to public STUN). A user-provided TURN server fixes connections on strict/symmetric NAT. (ice.lib, tested)
  • Manual (serverless) signaling: copy-paste offer/answer codes between peers — no signaling server used at all. Automatic link mode stays the default. (manual-sdp.lib + manual.ts, non-trickle ICE)
  • Settings persist to localStorage; shown in an Advanced panel behind the ack gate.

Verification

  • Durable Object relay verified end-to-end via local wrangler dev: correct host/guest roles, peer-joined, offer/answer relay, and room-capacity (2) enforcement — all pass.
  • 539 tests · lint 0 errors · build green.

Promotes to production together with #63 (file transfer reaches prod WITH user-choice connection options).

🤖 Generated with Claude Code

… manual mode

Make the server fully optional and user-chosen for the P2P tools:

- New 'Network' category (cyan) with a note explaining the limited/optional
  server involvement; move P2P File Transfer into it. (Re-applies the category
  change whose earlier push didn't land before the #63 merge.)
- Custom STUN/TURN: users can enter their own ICE servers (ice.lib parseIceConfig
  / effectiveIceServers, tested); defaults to public STUN. A user TURN server
  fixes strict-NAT connections.
- Manual (serverless) signaling: copy-paste offer/answer codes (manual-sdp.lib
  base64 encode/decode, tested; manual.ts non-trickle connection) — NO signaling
  server used at all. Automatic link mode remains the default.
- Settings persisted to localStorage; Advanced panel in the tool. peer.ts now
  accepts custom iceServers. useFileTransfer supports both signaling modes.

Durable Object relay verified end-to-end via local wrangler dev (roles,
peer-joined, offer/answer relay, room-capacity). 539 tests, lint clean, build green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@slaveofcode
slaveofcode merged commit ac00a91 into develop Aug 1, 2026
1 of 2 checks passed
@slaveofcode
slaveofcode deleted the feat/webrtc-connection-options branch August 1, 2026 02:45
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.

1 participant