every.channel/evolution/proposals/ECP-0038-share-links.md
2026-02-15 16:17:27 -05:00

1.9 KiB

ECP-0038: Share Links (every.channel://watch) and UI Share Controls

Status: Draft

Problem

Sharing currently exposes a raw MoQ bundle (endpoint addr JSON, broadcast, track) which is copy/paste friendly for developers but awkward for regular users. We also need explicit UI controls for:

  • Sharing via a single link.
  • Sharing to nearby nodes (mDNS).
  • Sharing publicly (DHT address lookup), while still requiring explicit gossip bootstrap peers.

Decision

Introduce a compact share link format:

every.channel://watch?...

and add UI affordances to copy and consume this link.

The link is a convenience wrapper around existing MoQ parameters. No new trust model is introduced here.

Scheme and path:

  • every.channel://watch

Query parameters:

  • remote (required): iroh EndpointAddr JSON string (or id-only string when discovery is enabled).
  • broadcast (required): MoQ broadcast name.
  • track (optional): MoQ track name (default remains chunks in the app).
  • stream_id (optional): key id override (rare; for debugging).
  • secret (optional): network secret hex (only when the publisher used one).
  • discovery (optional): comma-separated discovery modes, currently mdns, dht, dns.

UI (user-facing language)

  • Share card includes:
    • Copyable share link.
    • Copyable node id.
  • Viewer panel exposes:
    • "Nearby (same Wi-Fi)"
    • "Public (internet)"
    • "Show in directory"
    • optional "directory contacts" and "sharing key"
  • "Watch a link" accepts a share link and can parse it to fill hidden advanced fields.

Consequences

  • Sharing becomes one-string shareable without asking recipients to understand the underlying bundle structure.
  • Public announcements still require bootstrap peers; DHT only provides address lookup.

Follow-ups

  • Add an explicit public bootstrap peer list mechanism (governance-controlled).
  • Add optional signing of share links (identity binding) once stream signing is enforced.